作者感言

前面已经把WeChat SDK的支付, AliPay SDK搞得七七八八了, 接下来就是银联支付的Union Pay SDK.

最后:
如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考你们的意见再进行修改, 联系我时, 请备注Union Pay SDK如果觉得好的话, 希望大家也可以打赏一下~嘻嘻~祝大家学习愉快~谢谢~


简介

银联嘛, 用过银行卡的人都懂的, 我们大天朝的产物, 主要是用来联合大天朝各个银行, 实现各个银行互通, 可跨行, 跨区, 跨境使用等等....其实换了一句话来说, 就是中国版的VISAMasterCard, 虽然银联起步的比较晚, 但发展的脚步不比VISAMasterCard要差.


准备工作

在这里, 我不得不吐槽一下, 如果是第一次集成银联的童鞋, 估计一开始还真是够呛的, 或许你连SDK都找不到在哪里下载, 这网站还真的很难找, 所以我在这里贴出来给你们了, 方便各位童鞋们自行去查找下载商家技术服务

这里还有怎么去查找SDK的示例, 大家也看看呗

这里我下载下来的是3.3.3版本, 54.8MB大小, 或许之后银联会继续更新SDK包, 这个的话, 大家看着办吧~~


废话来一段

惯例, 继续来一段废话, 打开我们之前的集成WeChat SDKAliPay SDk的工程, 新建一个工程叫做UnionPay-Objective-C的新工程


配置工程

配置工程的话, 首先我们要引入Union Pay SDK的依赖包, 一共五个, 这或许是第三方支付品台里需要导入最少依赖的.

  • LocalAuthentication.framework
  • SystemConfiguration.framework
  • CoreGraphics.framework
  • CFNetwork.framework
  • libz.tbd

然后呢, 我们需要去到Info.plist里, 添加三个属性

  • App Transport Security Settings

    • Allow Arbitrary Loads
  • Application requires iPhone environment
  • LSApplicationQueriesSchemes
    • uppaysdk
    • uppaywallet
    • uppayx1
    • uppayx2
    • uppayx3

接下来, 我们要去添加URL Schemes了,

最后, 就是我们要把Union Pay SDK导进来了, 这样子就配置好整个工程了, 顺带说一声, 这个SDKpaymentcontrol这个目录下~

差点别忘了把-ObjC这个宏加上, 不然没法跑


布局UI界面

惯例, 这里我们也是只给一个UIButton以及一个Action事件.


补充多一个点

这里还需要补充一个点, 由于银联是采用CC++以及Objective-C混编的, 所以这个有些蛋疼, 官方提供三种方式去适配, 我这里采用了最简单的一种, 直接把.m改成.mm.

第一种

  • 由于支付控件使用到了CC++Objective-C混编的情况,所以商户工程引入UPPaymentControl.h头文件以后可能会出现链接错误,这个时候可以通过以下三种方式解决:

    • 将涉及到引用UPPaymentControl.h的源文件的后缀名都改为.mm

    • 如果商户不想修改源文件的后缀名,可以在工程中添加一个空的继承自NSObject的类,并将文件.m后缀名该改为.mm即可方法为New File -> Objective-C class -> 类名自取 -> 保存 -> 修改后缀名为.mm

    • 将工程的compile source as选项的值设置为Objective–C++

第二种

  • 由于在Demo工程中添加了自定义的库文件libPaymentControl.a ,当编译Demo工程时,应该检查工程设置Search Paths里的Framework Search PathsHeader Search PathsLibrary Search Paths的路径设置,看设置路径是否正确,另外还要注意里边是否多余一些不确定的路径。

第三种

  • Xcode工程中Build Setting -> Apple LLVM compiler Language标签下的C++ Language DialectC++ Standard Library属性值修改为Compiler Default如实在无法解决,尝试添加-ObjC宏的地方修改为-force_load + 空格 + 控件路径,如:-force_load $(PROJECT_DIR)/ libPaymentControl.a,如果还报错,上下文应该会有libPaymentControl.a文件找不到异常,比如ld: file not found: /Users/apple/Desktop/Communication 2/ libPaymentControl.a clang: error: linker command failed with exit code 1 (use -v to see invocation) 请确定libPaymentControl.a文件确实存在于此路径,可能为上下文路径配错。

实现银联支付

集成的时候, 这里我们需要分为两个步骤, 一个是网络, 一个是本地操作.

本地部分

所谓的本地部分, 指的就是弹框, 灭框的一些操作, 还有发起网络一些点击事件等等.

网络部分

银联支付需要用到一个网络交互的流程, 这里的话, 我们直接引用Demo里的代码, 然后再加以修改一丢丢, 就可以了~


测试支付

在测试支付这点上, 微信和银联都做的挺不错的, 唯独支付宝这个连个测试账号都不提供, 真的是蛋疼...疼...疼, 打开银联接入指南, 里面就会有两个测试卡号.

测试账号 测试信息
姓名 张三
手机号码 18100000000
证件类型 01身份证
证件号 510265790128303
招商银行卡 6226090000000048
密码 111101
验证码 123456(先点获取验证码之后再输入
测试账号 测试信息
姓名 张三
手机号码 18100000000
证件类型 01身份证
CVN2 248
有效期 1219
证件号 510265790128303
华夏银行贷记卡 6226388000000095
密码 111101
验证码 123456(先点获取验证码之后再输入

最终效果


工程地址

项目地址: https://github.com/CainRun/PayProject

集成 Union Pay - 银联支付的更多相关文章

  1. 集成 Union Pay - 银联支付--ios

    请看这个网址,谢谢谢 http://www.cnblogs.com/oc-bowen/p/6000389.html

  2. iOS支付宝,微信,银联支付集成封装调用(下)

    一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部 ...

  3. iOS支付宝,微信,银联支付集成封装(上)

    一.集成支付宝支付 支付宝集成官方教程https://docs.open.alipay.com/204/105295/ 支付宝集成官方demo https://docs.open.alipay.com ...

  4. iOS----支付(微信支付、支付宝支付、银联支付控件集成支付)(转)

    资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...

  5. 李洪强iOS开发支付集成之银联支付

    iOS开发支付集成之银联支付 银联官网在这里,这里能下载SDK或者是看文档.最新的版本写的简单了很多,看文档一直做下去基本上就没问题了. 首先,SDK在这里下载,里面包含需要的库文件和详细的文档. 银 ...

  6. iOS开发 支付之银联支付集成

    iOS开发之银联支付集成 最近在做支付这一块的东西,就记录下来以便以后参考和各位交流学习,这里是银联支付 银联官网在这里,这里能下载SDK或者是看文档.文档嘛,对银联来说,还是不要看的太仔细的好,以前 ...

  7. Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误

    尽管解决方法很简单,但还是记录一下吧. 最近做银联支付(Android),官方给的demo是eclipse的.按照官方(https://open.unionpay.com/ajweb/product) ...

  8. iOS 集成银联支付(绕过文档的坑,快速集成)-转

    本文是投稿文章,作者:南栀倾寒当初集成支付宝的时候,觉得见了这么丑的代码,加上这么难找的下载地址,在配上几乎为零的文档,寒哥就要吐血了. 下午去集成银联,才知道血吐的早了. 下载地址:https:// ...

  9. iOS 集成银联支付

    下载地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar 其实我找了半个小时 也不知道怎么就下载好了 这个我 ...

随机推荐

  1. Vi编辑器下使用分屏显示【已自己验证所有】

    :new 水平分割出一个新窗口 :vnew,:vne 垂直分割出一个新窗口 :new+文件路径/文件名; 在新的水平分屏中 载入/新建 文件.[文件存在则载入,不存在则在指定的路径新建,下同] :vn ...

  2. [HRBUSTOJ1476]Pairs(FFT)

    题目链接:http://acm-software.hrbust.edu.cn/problem.php?id=1476 题意:给n个数,m次询问,每次询问一个k.问n个数里两数之和严格小于k的数对. 根 ...

  3. bzoj 1467: Pku3243 clever Y 扩展BSGS

    1467: Pku3243 clever Y Time Limit: 4 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 小 ...

  4. js 监听监键盘动作(转)

    主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydo ...

  5. Ext.net 异常统一管理,铥掉可恶的 Request Failure

    Ext.net 异常统一管理,铥掉可恶的 Request Failure 看着这样的框框是不是很不爽 灭他.也不难.. .如果全部页面都有继承一个自定义的父类 ..那整个项目代码量就只有几行了.. 单 ...

  6. Nginx基础知识之————Nginx 环境的搭建?

    本课时主要给大家讲解如何在 Linux 系统下搭建 Nginx 和 Nginx 搭建过程中常见问题的知识,并结合实例让学员掌握 Nginx 环境的搭建. 下载解压: 安装gcc-c++ 从新配置文件: ...

  7. JCO事务管理

    /* * 标准对账单过账 * @account 标准对账单号 * @year 年度 */ public List<String> doAccountStatmentPost(String ...

  8. 应用部署到JBOSS上遇到的问题

    原来应用在WAS7.0下,移植到JBOSS eap5.1.2下后,遇到了一些问题,特此记录: 1.数据源配置 在was中,datasource中获取数据源名称时,直接写was中配置的数据源名称即可.而 ...

  9. Java面向对象深度

    局部内部类 package ch6; /** * Created by Jiqing on 2016/11/21. */ public class LocalInnerClass { // 局部内部类 ...

  10. Docker-网络基础配置

    从外部访问容器 指定容器端口随机映射主机端口 [root@wls12c /]$ docker run -p -d --name web tomcat /bin/bash -c /root/apache ...