文章分享至:https://cainluo.github.io/14740149724404.htmlhtml
前面已经把**
WeChat SDK
**的支付,AliPay SDK
搞得七七八八了, 接下来就是银联支付的Union Pay SDK
. 最后: 若是你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考大家的意见再进行修改, 联系我时, 请备注Union Pay SDK
若是以为好的话, 但愿你们也能够打赏一下~嘻嘻~祝你们学习愉快~谢谢~git
银联嘛, 用过银行卡的人都懂的, 咱们大天朝的产物, 主要是用来联合大天朝各个银行, 实现各个银行互通, 可跨行, 跨区, 跨境使用等等....其实换了一句话来讲, 就是中国版的**
VISA
,MasterCard
, 虽然银联起步的比较晚, 但发展的脚步不比VISA
**, **MasterCard
**要差.github
在这里, 我不得不吐槽一下, 若是是第一次集成银联的童鞋, 估计一开始还真是够呛的, 或许你连**
SDK
都找不到在哪里下载, 这网站还真的很难找, 因此我在这里贴出来给大家了, 方便各位童鞋们自行去查找下载商家技术服务** 这里还有怎么去查找SDK的示例, 你们也看看呗微信
这里我下载下来的是3.3.3版本, 54.8MB大小, 或许以后银联会继续更新SDK包, 这个的话, 你们看着办吧~~网络
惯例, 继续来一段废话, 打开咱们以前的集成**
WeChat SDK
和AliPay SDk
的工程, 新建一个工程叫作UnionPay-Objective-C
**的新工程app
配置工程的话, 首先咱们要引入**
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
导进来了, 这样子就配置好整个工程了, 顺带说一声, 这个SDK
在paymentcontrol
**这个目录下~网站
差点别忘了把**
-ObjC
**这个宏加上, 否则无法跑
惯例, 这里咱们也是只给一个**
UIButton
以及一个Action
**事件.
这里还须要补充一个点, 因为银联是采用**
C
、C++
以及Objective-C
混编的, 因此这个有些蛋疼, 官方提供三种方式去适配, 我这里采用了最简单的一种, 直接把.m
改为.mm
**.
第一种
因为支付控件使用到了**
C
、C++
和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 Paths
、Header Search Paths
、Library Search Paths
**的路径设置,看设置路径是否正确,另外还要注意里边是否多余一些不肯定的路径。
第三种
- 将**
Xcode
工程中Build Setting
** ->Apple LLVM compiler Language
标签下的C++ Language Dialect
和C++ 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