purc.md 5.4 KB

4.消费交易

4.1. 消费交易地址

交易名称 测试地址 生产地址
消费接口 https://testapi.allpayx.com/app/pay https://api.allpayx.com/app/pay

4.2. 消费交易接口

1.接口说明

商户网关将订单信息发送给 ALLPAY 网关,由 ALLPAY 网关进行处理后将交易流水 号,即 tn,返回给商户网关,tn 作为调起手机 app 支付控件的参数。

2.请求报文格式

下面列举的字段为通用字段,每个渠道都需要上送,部分渠道有渠道专属字段,具体字段请到该渠道的专属渠到字段说明处查看

参数 类型 属性 描述
version String(12) M 统一填写为“VER000000002”
charSet String(6) M 统一填写为“UTF-8”
transType String(4) M 消费交易填写“PURC”
orderNum String(60) M 订单号:商户自行定义,需保证同一商户号下订单号不能重复
orderAmount String(12) M 订单金额:如 100 元,表示为 100 或 100.00
orderCurrency String(3) M 订单币种:ISO标准 如:人民币填写“CNY”,美元填写"USD"
frontURL String(400) M app 模式默认填"nil"
backURL String(400) M 支付结果异步通知到该地址
merReserve String(1024) M 商户预留内容,可传任意内容,如购买商品信息、员号等,但不要传特殊符号,如逗号。
merID String(15) M 商户 ID,由AllPay 分配
acqID String(11) M 收单行 ID "99020344"
paymentSchema String(10) M 渠道代码:点击查看详情
goodsInfo String(60) M 商品信息
transTime String(14) M 交易时间,格式:"yyyyMMddHHmmss"
signType String(3) M MD5
signature String(32) M 采用 MD5 签名
  1. 响应报文格式

| 参数 | 类型 | 属性 | 描述 | | ---- | ---------- | ---- | ---------------------------------- | | tn | String(32) | M | 交易流水号,作为调起 sdk 支付的参数 |

4.4. iOS 客户端接入步骤

4.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.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.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 错误详情