项目中需要用到银联支付,简单的记录下集成过程与集成中遇到的问题。
一、到银联支付开放平台下载SDK,银联手机控件支付
image.png银联的开发包内容很详细,下载开发包后打开下载文件,找到app开发包文件,我们所需要的都在里面(一个控件开发包文件和一个控件接入指南PDF文件)
image.png
二、按照接入指南PDF文档接入SDK,文档写的非常详细
1.支付流程介绍(了解下支付流程)
image.png流程图说明:
(1)用户在客户端中点击购买商品,客户端发起订单生成请求到商户后台;
(2)商户后台收到订单生成请求后,按照《手机控件支付产品接口规范》组织并推送
订单信息至银联后台; (3)银联后台接收订单信息并检查通过后,生成对应交易流水号(即 TN),并回复至
商户后台(应答要素:交易流水号等);
(4)商户后台接收到交易流水号(TN),将交易流水号返回至客户端; (5)客户端通过交易流水号(TN)调用支付控件;
(6)用户在支付控件中输入相关支付信息后,由支付控件向银联后台发起支付请求; (7)支付成功后,银联后台将支付结果通知给商户后台;
(8)银联后台同时也将支付结果通知支付控件;
(9)支付控件显示支付结果并将支付结果返回至客户端;
2.集成需要的文件
在控件开发包文件下,文件所在目录upmp_iphone/paymentcontrol,包含以下两个文件:
UPPaymentControl.h
libPaymentControl.a
这两个文件就是我们需要导入我们工程的文件
3.添加SDK包
将 paymentcontrol/inc 目录下 UPPaymentControl.h文件和paymentcontrol/libs 目录下的 libPaymentControl.a 文件添加到商户应用的工程中,添加后如图:
image.png
4.工程配置
4.1 添加CFNetork.framework 、SystemConfiguration.framework 、libz、libPaymentControl.a 到工程中,添加后如下图:
image.png
4.2 设置URL Scheme在工程info.plist设置中添加一个URL Types回调协议,用于在支付完成后返回商户客户端。URL Schemes需要是唯一的。
image.png
4.3 http请求设置(ats)在测试环境测试时,需要在工程对应的 plist 文件中添加 NSAppTransportSecurity 并同时设置里面 NSAllowsArbitraryLoads 属性值为 YES,具体设置可参照以下截图:
image.png
发生产环境可删除此设置。向 Apple 发布正式版本时请删除此设置。
4.4 添加协议白名单,在 Xcode7.0 之后的版本中进行开发,需要在工程对应的 plist 文件中,添加LSApplicationQueriesSchemes Array并加入uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3 五个 item,具体设置可参考以下截图:
image.png
或者直接添加如下代码到 plist 文件中:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>uppaysdk</string>
<string>uppaywallet</string>
<string>uppayx1</string>
<string>uppayx2</string>
<string>uppayx3</string>
</array>
image.png
到这里工程就配置完成了,集成文档里写的很详细,按照文档来就可以了
三、我碰到的问题
经过上述步骤后,我的项目报错
image.png
检查前边步骤没有问题,网上找了一些解决办法都没用,产看报错信息
image.png
应该是少导入了库,后来查看下载的银联demo中导入的库进行对比
image.png
查了资料PassKit框架是应用程序中请求和处理Apple Pay付款,创建、分发和更新电子钱包的通行证。
image.png
那就只少了一个libc++,导入进去,问题解决
image.png
剩下的就是调用支付接口了,看开发文档,写的很详细,这里就不过多赘述了。
网友评论