linux怎么查看本机内存大小
372
2022-09-20
iOS 银联支付开发(最新版)
1. 介绍
本文为以前做的项目总结,由于相关支付 SDK 迭代,原文已经不满足需求,故作如下更新,供大家参考,另外增加常见问题总结。
今天我们就主要介绍一下银联控件支付,其他支付介绍后面会尽快更新出来。
集成前首先要看看文档,银联手机控件支付,里面包含需要的库文件和详细的文档。老版本 SDK 藏在了很深的地方,导致很多小伙伴们不容易找到,新版本相对比较明了,送上截图方便下载。
源码获取方法
2. 支付流程介绍
通过支付控件进行交易的流程如下图:
2.1 新版
在新版的流程图中细化了支付中的流程,并且增加了未收到交易结果的处理流程。
新老版本的支付顺序都是一样的,老版本看起来更简洁,有兴趣的可以参考
2.2 旧版
3. 下载银联 SDK
银联手机控件支付SDK
下载 SDK 之后,找到 .h 文件和库文件,使用 UPPaymentControl 需要将 paymentcontrol/inc 目录下 UPPaymentControl.h 文件和 paymentcontrol/libs 目录下的 libPaymentControl.a 文件添加到商户应用的工程中
4. 导入库集成 SDK
4.1 导入SDK库
CFNetwork.frameworkSystemConfiguration.frameworklibzlibPaymentControl.a
4.2 设置 URL Scheme
在工程 info.plist 设置中添加一个 URL Types 回调协议(在 FBYUPPay 工程中使用“ FBYUPPay ”作为协议),用于在支付完成后返回商户客户端。
4.3 请求时,需要在工程对应的 plist 文件中添加NSAppTransportSecurity Dictionary 并同时设置里面NSAllowsArbitraryLoads 属性值为 YES
4.4 添加协议白名单
需要在工程对应的 plist 文件中,添加LSApplicationQueriesSchemes Array 并加入 uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3 五个 item,如下图:
4.5 调用支付接口
在调用银联支付类里面,首先增加头文件引用。
#import "UPPaymentControl.h"
在调起支付的方法中代码如下:
//当获得的tn不为空时,调用支付接口if (tn != nil && tn.length > 0) { [[UPPaymentControl defaultControl] startPay:tn fromScheme:@"FBYUPPay" mode:@"01" viewController:self];}
只需要调用一个方法就行啦!!! 方法中几个参数分别代表的意思如下:
tn: 是交易流水号,服务器端传回来的,客户端只有凭借这个参数才能调用支付控件 进行支付的;fromScheme: 是支付唯一标识mode: 是测试环境,“00” 表示线上环境,“01” 表示测试环境viewController:启动支付控件的viewController
4.6 支付结果回调
在支付成功之后,支付结果返回,需要获取 url,需要在Appdelegate 中完成在 Appdelegate 里面,首先增加头文件引用。
#import "UPPaymentControl.h"
代码如下:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary
返回的代理结果: success、fail、cancel,分别代表:支付成功、支付失败、用户取消支付
5. 常见问题汇总
5.1 支付控件混编问题
由于支付控件使用到了 C、C++ 和 OC 混编的情况,将涉及到引用 UPPaymentControl.h 的源文件的后缀名都改为 .mm
5.2 配置 SDK 库文件路径
由于在 FBYUPPay 工程中添加了自定义的库文件libPaymentControl.a,当编译 Demo工程时,应该检查工程设置 Search Paths 里的 Framework Search Paths、Header Search Paths、Library Search Paths 的路径设置,看设置路径是否正确,另外还要注意里边是否多余一些不确定的路径。
5.3 控件界面无限加载
控件界面无限加载,请参考控件使用指南 iOS 添加 SDK包里添加 -ObjC 宏,特别注意大小写不要弄混。(此步骤操作有问题时也可修改为 -force_load + 空格 + 控件路径,如:-force_load $(PROJECT_DIR)/ libPaymentControl.a)。
5.4 支付后无法返回 App
一般是由于白名单没有设置正确
[[UPPaymentControl defaultControl] startPay:tn fromScheme:@"FBYUPPay" mode:@"01" viewController:self];
上方代码中 fromScheme 参数需要和文章 4.2 设置 URL Scheme中设置的 URL Schemes 相同,这样才能对应返回 App。
5.5 控件闪退异常
控件闪退异常'NSInvalidArgumentException', reason: '-[__NSCFConstantString newSizeWithFont:详略]',如下图:
出现以上问题是由于添加-ObjC宏的地方没有配置正确,如果配-ObjC实在解决不了的话,可尝试去掉-ObjC,改为-force_load+空格+控件路径,如:-force_load $(PROJECT_DIR)/ libPaymentControl.a。
希望可以帮助大家 如果哪里有什么不对或者不足的地方,还望读者多多提意见或建议 iOS技术交流群:668562416
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~