4.md 4.3 KB

4.iOS 客户端接入步骤

4.1. 接入说明

启动支付控件的接口,接口定义如下:

[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: 接收同步结果通知

4.2. 添加 SDK 包

  1. 将 allpaysdk 下的 AllPaySDK.h,libAllPaySDK.a文件add到项目中
  2. 在 APPDelegate.m 类中导入头文件: #import "allpaysdk/AllPaySDK.h" 并添加如下方法
-(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; 

}
  1. 根据要使用的渠道的专属配置,对项目进行配置

4.3 同步结果通知

[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: 错误详情
参数 说明
state "success"代表成功, "cancel"代表用户取消操作, "fail"代表失败
paymentSchema 印度本地支付:"EB", "APMP"代表支付宝, "WX"代表微信,"APP"代表ApplePay
orderNum 订单号
errorDetail 错误详情

4.5. 异步结果通知

商户需要提供一个 http 协议的接口,包含在参数里传递给 SDK,即 backURL。AllPay 服务器在支付完成后,会以 Get 方式调用 backURL,通知支付结果。

参数如下表:

序号 名称 长度 类型 参数名称 备注
1 版本号 12 文本 version 统一填写为“VER000000002”
2 字符集编码 6 文本 charSet 统一填写为“UTF-8”
3 交易类型 4 文本 transType 消费交易填写“PURC”
4 订单号 60 文本 orderNum 商户自行定义,需保证同一商户号下订单号不能重复
5 订单金额 12 文本 orderAmount 如 100 元,表示为 100 或 100.00
6 订单币种 3 文本 orderCurrency 人民币填写“CNY”,美元填写"USD"
7 清算金额 12 文本 settAmount 如 100 元,表示为 100 或 100.00
8 清算币种 3 文本 settCurrency 符合 ISO 标准,填写数字类型
9 清算汇率 7 文本 rate 实际汇率,7 位有效数字
10 商户预留字段 1024 文本 merReserve 商户预留内容,可传任意内容,如购买商品信息、员号等,但不要传特殊符号,如逗号。
11 GW 交易 ID 32 文本 transID GW 系统生成的交易 ID,每笔交易保持唯一
12 商户代码 15 文本 merID 商户 ID,由AllPay 分配
13 收单行 ID 11 文本 acqID 收单行 ID "99020344"
14 支付渠道代码 10 文本 paymentSchema 支付宝:"APMP"; 微信:"WX"; 境外银联:"UP"; ApplePay 支付:"APP" ;印度本地支付:"EB"
15 交易应答码 2 文本 RespCode 应答码 00-成功
16 应答文字信息 20 文本 RespMsg 应答消息,全部为英文字符
17 交易时间 14 文本 transTime 交易时间,格式:"yyyyMMddHHmmss"
18 GW 处理时间 14 文本 GWTime YYYYMMDDHHMMSS,为 GW 时间,目前为本地交易时间
19 签名类型 3 文本 signType MD5
20 签名 32 文本 signature 采用 MD5 签名