业务说明

应用场景

本接口用于快捷支付流程中,商户系统调用该接口发起快捷支付申请,翼码平台会向持卡人在银行预留的手机号发送短信验证码。

商户需要开通快捷支付业务,并且完成绑卡,商户系统已获取到了持卡人用户号(user_yima_id)和绑卡序列号(card_token_no)。

交易请求报文

JSON:

  1. {
  2. "request_type": "online_quickpay_apply_request",
  3. "isspid": "39493002",
  4. "pos_id": "0001",
  5. "store_id": "0001",
  6. "pos_seq": "qpa_20240301235959000001",
  7. "user_id": "user01",
  8. "system_id": "8888",
  9. "memo": "订单备注",
  10. "device_ip": "127.0.0.1",
  11. "device_type": "4",
  12. "device_mac": "0C-96-E6-84-1E-11",
  13. "device_imei": "460030912121001",
  14. "device_imsi": "460030912121001",
  15. "device_icc_id": "898600680113F0123014",
  16. "device_wifi_mac": "96-87-78-69-5A-4B",
  17. "latitude": "+37.12",
  18. "longitude": "-121.213",
  19. "online_quickpay_apply_request": {
  20. "user_yima_id": "6666000103803532",
  21. "card_token_no": "10000093623",
  22. "tx_amt": "1",
  23. "order_type": "P",
  24. "time_expire": "20240301235959",
  25. "biz_tp": "100099",
  26. "goods_short_name": "个人电脑",
  27. "gw_chnnl_tp": "01",
  28. "notify_url": "https://www.baidu.com/",
  29. "extend_params": {
  30. "split_flag": "R",
  31. "plan_split_date": "20230418",
  32. "split_info": {
  33. "keep_amt": "800",
  34. "split_list": [
  35. {
  36. "merchant_id": "10000000000001",
  37. "div_amt": "150"
  38. },
  39. {
  40. "merchant_id": "10000000000002",
  41. "div_amt": "50"
  42. }
  43. ]
  44. }
  45. }
  46. },
  47. "sign": "314DA43E7E244105ECBD45F797264854"
  48. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <request_type>online_quickpay_apply_request</request_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>0001</pos_id>
  6. <store_id>0001</store_id>
  7. <pos_seq>qpa_20240301235959000001</pos_seq>
  8. <user_id>user01</user_id>
  9. <system_id>8888</system_id>
  10. <memo>订单备注</memo>
  11. <device_ip>127.0.0.1</device_ip>
  12. <device_type>4</device_type>
  13. <device_mac>0C-96-E6-84-1E-11</device_mac>
  14. <device_imei>460030912121001</device_imei>
  15. <device_imsi>460030912121001</device_imsi>
  16. <device_icc_id>898600680113F0123014</device_icc_id>
  17. <device_wifi_mac>96-87-78-69-5A-4B</device_wifi_mac>
  18. <latitude>+37.12</latitude>
  19. <longitude>-121.213</longitude>
  20. <online_quickpay_apply_request>
  21. <user_yima_id>6666000103803532</user_yima_id>
  22. <card_token_no>10000093623</card_token_no>
  23. <tx_amt>1</tx_amt>
  24. <order_type>P</order_type>
  25. <time_expire>20240301235959</time_expire>
  26. <biz_tp>100099</biz_tp>
  27. <goods_short_name>个人电脑</goods_short_name>
  28. <gw_chnnl_tp>01</gw_chnnl_tp>
  29. <notify_url><![CDATA[https://www.baidu.com/]]></notify_url>
  30. <extend_params><![CDATA[扩展参数(JSONObject)]]></extend_params>
  31. </online_quickpay_apply_request>
  32. </business_trans>

交易请求报文说明

节点名称中文名称类型说明是否必填
sign报文签名String(32)请求报文格式为JSON时必填
计算签名方式请看2.1章节
可空
request_type请求类型String(32)固定值:online_quickpay_apply_request必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
store_id门店号String(20)商户自定义门店号必填
pos_seq支付请求流水号String(32)同一个翼码商户号下唯一,不可重复使用,且大于12位必填
user_id操作员标识String(20)操作员号可空
system_id系统平台号String(4)由翼码提供必填
memo订单备注String(128)可空
device_ip设备IPString(15)设备所在的公网IP,可用于定位所属地区
不是wifi连接时的局域网IP
IPV4格式
必填
device_type设备类型String(1)1:手机
2:平板
3:手表
4:PC
必填
device_mac设备终端的物理地址String(64)必填
device_imei交易设备IMEIString(64)移动终端设备的唯一标识必填
device_imsi交易设备IMSIString(64)必填
device_icc_id交易设备ICCIDString(64)必填
device_wifi_mac交易设备WIFIMACString(64)必填
latitude纬度String(9)交易设备的经纬度信息
纬度格式:+表示北纬,-表示南纬;纬度整数位不超过2位,小数位不超过6位。
必填
longitude经度String(9)交易设备的经纬度信息
经度格式:+表示东经,-表示西经;经度整数位不超过3位,小数位不超过5位。
必填
online_quickpay_apply_request
->user_yima_id
持卡人用户号String(32)翼码系统的用户号
对应【快捷绑卡确认】返回节点中的user_yima_id
必填
online_quickpay_apply_request
->card_token_no
绑卡序列号String(64)绑卡序列号
对应【快捷绑卡确认】返回节点中的card_token_no
必填
online_quickpay_apply_request
->tx_amt
交易金额Number(9)支付金额,单位为分,不支持小数点必填
online_quickpay_apply_request
->order_type
订单类型String(1)P:支付
R:充值
必填
online_quickpay_apply_request
->time_expire
订单失效时间String(14)格式yyyyMMddHHmmss
注:工商银行系统针订单失效时间处理比较特殊,订单失效时间有效期时间要大于1.5小时。
必填
online_quickpay_apply_request
->biz_tp
业务种类String(6)取值详见【7.1 业务种类】必填
online_quickpay_apply_request
->goods_short_name
商品简称String(40)不能包含特殊字符
详细字符见下文
必填
online_quickpay_apply_request
->gw_chnnl_tp
网关支付受理渠道String(2)01:电脑浏览器
02:手机浏览器
03:手机应用程序
99:其他
必填
online_quickpay_apply_request
->notify_url
异步通知地址String(256)异步通知文档见4.20
使用XML格式报文时,建议使用CDATA标签包裹内容
可空
online_quickpay_apply_request
->extend_params
扩展参数JSONObject用于扩展一些特殊的支付参数字段,详细参数见下表
使用XML格式报文时,建议使用CDATA标签包裹内容
可空

自定义门店号(store_id)和自定义终端号(pos_id)需经过4.1终端绑定交易接口绑定成功过的值才可以调用,绑定一次即可不需要重复绑定。

goods_short_name 商品简称

不能包含的特殊字符如下:<、>、&、'、"、|、%、#、^、-

extend_params 扩展参数

JSON节点类型说明是否必填范例
split_flagString分账标识
N:不分账
R:实时分账
D:延时分账
不传该节点时,将按控制台配置处理
该节点与分账功能相关具体联系业务确认开通功能
可空R
plan_split_dateString预分账日期,格式:yyyymmdd
仅延时分账类型(split_flag=D)时支持传入
可空20230418
split_infoJSONObject分账信息
仅支持请求实时分账split_flag=R
该节点与分账功能相关具体联系业务确认开通功能
可空 

分账业务相关的特别说明:
1. split_flag=N 不分账时,split_info不允许传入;
2. split_flag=R 实时分账时,split_info必传,其中keep_amt与div_amt叠加必须全额分完整笔订单;
3. split_flag=D 延时分账时,split_info不允许传入,在后续流程中调用延迟交易确认接口完成分账,或使用翼码分账系统界面进行分账。

split_info 分账信息

JSON节点类型说明是否必填范例
is_clean_splitStringN:不使用净值分账
Y:使用净值分账
不传默认为N,即不使用净值分账
净值分账目前仅对部分通道开放,使用此能力前请先与技术支持确认
净值分账仅在交易手续费内扣时才起作用
当使用净值分账时,分账信息和分账明细必须要传分账比例,且分账方自留比例(keep_percentage)与所有分账比例(div_percentage)之和必须要为100%
可空Y
keep_amtString分账方自留金额,单位为分,可传0表示不自留
不使用净值分账(is_clean_split=N)时,该节点必填,分账方自留比例(keep_percentage)节点无效
可空1000
keep_percentageString分账方自留比例,单位为%,最多支持小数点后两位,可传0表示不自留
使用净值分账(is_clean_split=Y)时,该节点必填,分账方自留金额(keep_amt)节点无效
可空50.26
split_listArray分账明细必填 
split_list 分账明细
JSON节点类型说明是否必填范例
merchant_idString分账接收方的分账商户号必填10000000000001
div_amtString分账金额,单位为分,必须大于0
不使用净值分账(is_clean_split=N)时,该节点必填,分账比例(div_percentage)节点无效
可空1000
div_percentageString分账比例,单位为%,最多支持小数点后两位,必须大于0
使用净值分账(is_clean_split=Y)时,该节点必填,分账金额(div_amt)节点无效
可空23.55

若业务涉及100%分账给接收方,请于业务对接人联系申请使用净值分账功能。

extend_params 样例:

  1. {
  2. "split_flag": "R",
  3. "plan_split_date": "20230418",
  4. "split_info": {
  5. "keep_amt": "800",
  6. "split_list": [
  7. {
  8. "merchant_id": "10000000000001",
  9. "div_amt": "150"
  10. },
  11. {
  12. "merchant_id": "10000000000002",
  13. "div_amt": "50"
  14. }
  15. ]
  16. }
  17. }

交易返回报文

JSON:

  1. {
  2. "response_type": "online_quickpay_apply_response",
  3. "isspid": "39493002",
  4. "pos_id": "0001",
  5. "pos_seq": "qpa_20240301235959000001",
  6. "trans_time": "20240301151515",
  7. "sys_seq": "0741136885a748c1",
  8. "avoid_sms_flag": "0",
  9. "result": {
  10. "id": "0000",
  11. "comment": "申请成功"
  12. },
  13. "sign": "F6106656C20AB23B547B0C30DD819793"
  14. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <response_type>online_quickpay_apply_response</response_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>0001</pos_id>
  6. <pos_seq>qpa_20240301235959000001</pos_seq>
  7. <sys_seq>0741136885a748c1</sys_seq>
  8. <trans_time>20240301151515</trans_time>
  9. <avoid_sms_flag>0</avoid_sms_flag>
  10. <result>
  11. <id>0000</id>
  12. <comment>申请成功</comment>
  13. </result>
  14. </business_trans>

交易返回报文说明

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!

节点名称中文名称类型说明是否必填
sign报文签名String(32)返回报文格式为JSON时必填
计算签名方式请看2.1章节
可选
response_type返回类型String(32)固定值:online_quickpay_apply_response必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
pos_seq支付请求流水号String(32)支付请求流水号,和请求报文相同必填
sys_seq随机串号String(16)随机生成串号,仅用于日志跟踪用,不保存必填
trans_time接口返回时间String(14)接口返回时间,格式:yyyyMMddHHmmss必填
avoid_sms_flag免短标签String(1)1:免短信验证码
0:需要短信验证码
后续调用流程详见下文
可空
result
->id
响应码String(4)0000:申请成功
其它表示失败,错误信息说明见“响应码解释”字段
必填
result
->comment
响应码解释String(64)响应码对应中文注解,用于显示提示必填

标准接口会因业务升级需要而新增节点,请在解析返回报文时避免新增未知节点产生的程序出错!

判断响应码与免短标签进行后续调用流程说明

返回响应码(result->id)为“0000”时,表示该笔快捷支付申请成功,此时需进一步判断返回免短标签(avoid_sms_flag)是否为“1”:

1.当avoid_sms_flag=1时,表示该笔交易无需进行短信验证码验证直接会完成扣款,此时不需要调用【快捷支付确认】,进入等待【4.20 支付交易支付结果通知】通知支付结果或主动调用【线上交易查询】查询支付结果的流程;

2.当avoid_sms_flag!=1时,表示该笔交易需要短信验证码验证,此时下一步需要调用【快捷支付确认】上送持卡人手机收到的短信验证码进行验证,验证成功后才会完成扣款,之后再进入等待【4.20 支付交易支付结果通知】通知支付结果或主动调用【线上交易查询】查询支付结果的流程。