AllPay 为基于移动端 APP 支付的客户提供接入插件(下文简称“SDK”),以帮助客户实现快速、安全、集中式的接入支付渠道。
商户网关将订单信息发送给 AllPay 网关,由 AllPay 网关进行处理后将交易流水号,即 tn,返回给商户网关,tn 作为调起手机 app 支付控件的参数。AllPay 网关对接文档地址
启动支付控件的接口,接口定义如下:
[AllPaySDK pay:[diction objectForKey:@"tn"] mode:NO scheme:@"com.xxx.xxx" ViewController:self onResult: ^(NSDictionary *resultDic) {
//此处处理同步支付结果
}];
参数说明
tn: 是从服务器端获取的流水号; mode:测试环境:NO; 生产环境:YES。
Scheme: 可以为任意值推荐填写成"com.xxx.xxx" 等形式, 有特殊配置的渠道会在渠道专属配置里面说明
ViewController: 调用 SDK 时的 ViewController;
onResult: 接收同步结果通知
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
[AllPaySDK openURL:url]; return YES;
}
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
[AllPaySDK openURL:url]; return YES;
}
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
[AllPaySDK openURL:url]; return YES;
}
[AllPaySDK pay:[diction objectForKey:@"tn"] mode:NO scheme:@"com.xxx.xxx" ViewController:self onResult: ^(NSDictionary *resultDic) {
//此处处理同步支付结果
}];
resultDic,转为 json 字符串,格式如下:
{ "state": "cancel", "paymentSchema": "YL", "orderNum": "604337497032", "errorDetail": "user cancel operation" }
报文说明
参数 | 说明 |
---|---|
state | "success"代表成功, "cancel"代表用户取消操作, "fail"代表失败 |
paymentSchema | 印度本地支付:"EB", "APMP"代表支付宝, "WX"代表微信,"APP"代表ApplePay |
orderNum | 订单号 |
errorDetail | 错误详情 |
1.导入下面框架和链接库
Security.framework
CoreTelephony.framework
SystemConfiguration.framework
libc++.tbd
libz.tbd
libsqlite3.tbd
2.在“Info.plist”中将要使用的 URL Schemes 列为白名单
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
将allpaysdk/AliModule文件夹下的文件add到项目中
在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:
libc++.tbd
libz.tbd
SystemConfiguration.framework
CoreTelephony.framework
QuartzCore.framework
CoreText.framework
CoreGraphics.framework
CFNetwork.framework
CoreMotion. .framework
将allpaysdk/UPModule文件夹下的文件add到项目中
导入下面框架和链接库
CFNetwork.framework
SystemConfiguration.framework
libz.tbd
在工程info.plist设置中添加一个URL Types回调协议,用于在支付完成后返回商户客户端。请注意URL Schemes需要是唯一的,。 设置的Scheme的值要和支付接口中参数scheme的值相同。
需要在工程对应的plist文件中,添加LSApplicationQueriesSchemes Array并加入uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3五个item
<key>LSApplicationQueriesSchemes</key>
<array>
<string>uppaysdk</string>
<string>uppaywallet</string>
<string>uppayx1</string>
<string>uppayx2</string>
<string>uppayx3</string>
</array>
在测试环境测试时,需要在工程对应的plist文件中添加NSAppTransportSecurity Dictionary 并同时设置里面NSAllowsArbitraryLoads 属性值为 YES,发生产环境可删除此设置。向Apple发布正式版本时请删除此设置。
//判读方法为:
if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkChinaUnionPay]] )
{
// app 展示 apple pay 支付图标
}
如果您在调试时遇到问题,请与我们联系:support@allpayx.com