重要:当返回码result->id=9998或接口超时无响应时,请不要更换请求流水(pos_seq)再次请求接口,否则会造成重复退款的风险!!!
此种情况下建议以下两种流程处理:
方案一:不更换流水(pos_seq),使用原报文重发申请
方案二:调用现金退款查询接口进行申请结果确认

交易请求报文

JSON:

  1. {
  2. "request_type": "cash_refund_request",
  3. "isspid": "39493002",
  4. "pos_id": "1511300001",
  5. "store_id": "1511300001",
  6. "pos_seq": "C20200217X100000000010",
  7. "user_id": "user01",
  8. "system_id": "8888",
  9. "cash_refund_request": {
  10. "pay_type": "503",
  11. "tx_amt": "10",
  12. "org_order_id": "123456789",
  13. "payee_account": "2088111111111111"
  14. },
  15. "sign": "79CB18BC49A4D60C457506EA4EF27C14"
  16. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <request_type>cash_refund_request</request_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <store_id>1511300001</store_id>
  7. <pos_seq>C20200217X100000000010</pos_seq>
  8. <user_id>user01</user_id>
  9. <system_id>8888</system_id>
  10. <cash_refund_request>
  11. <pay_type>503</pay_type>
  12. <tx_amt>10</tx_amt>
  13. <org_order_id>123456789</org_order_id>
  14. <payee_account>2088111111111111</payee_account>
  15. </cash_refund_request>
  16. </business_trans>

交易请求报文说明

节点名称中文名称类型说明是否必填
sign报文签名String(32)请求报文格式为JSON时必填
计算签名方式请看2.1章节
可选
request_type请求类型String(32)固定值:cash_refund_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)由翼码提供必填
cash_refund_request
->pay_type
渠道String(3)503:微信必填
cash_refund_request
->org_order_id
原交易订单号String(64)原交易订单号,用户生成账单文件中展示可空
cash_refund_request
->tx_amt
交易金额Number(9)退款金额,单位为分,不支持小数点
支付宝金额需大于0.1元
必填
cash_refund_request
->payee_account
收款人帐号String(32)微信openid必填

交易返回报文

JSON:

  1. {
  2. "request_type": "cash_refund_response",
  3. "isspid": "39493002",
  4. "pos_id": "1511300001",
  5. "pos_seq": "C20200217X100000000010",
  6. "sys_seq": "b7ff9fa5bb4355e2",
  7. "trans_time": "20200701103100",
  8. "pay_type": "503",
  9. "wxpay_res_info": {
  10. "trade_no": "4001172001201604144821605495",
  11. "out_trade_no": "C20200217X100000000010",
  12. "tx_amt": "10"
  13. },
  14. "result": {
  15. "id": "0000",
  16. "comment": "申请成功"
  17. },
  18. "sign": "79CB18BC49A4D60C457506EA4EF27C14"
  19. }

XML:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <business_trans>
  3. <response_type>cash_refund_response</response_type>
  4. <isspid>39493002</isspid>
  5. <pos_id>1511300001</pos_id>
  6. <pos_seq>C20200217X100000000010</pos_seq>
  7. <sys_seq>b7ff9fa5bb4355e2</sys_seq>
  8. <trans_time>20200701103100</trans_time>
  9. <pay_type>503</pay_type>
  10. <wxpay_res_info>
  11. <trade_no>4001172001201604144821605495</trade_no>
  12. <out_trade_no>C20200217X100000000010</out_trade_no>
  13. <tx_amt>10</tx_amt>
  14. </wxpay_res_info>
  15. <result>
  16. <id>0000</id>
  17. <comment>申请成功</comment>
  18. </result>
  19. </business_trans>

交易返回报文说明

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

节点名称中文名称类型说明是否必填
sign报文签名String(32)请求报文格式为JSON时必填
计算签名方式请看2.1章节
可选
response_type返回类型String(32)固定值:cash_refund_response必填
isspid商户号String(8)翼码商户号,由翼码提供必填
pos_id终端号String(20)商户自定义终端号必填
pos_seq终端流水号String(32)终端交易流水号,和请求报文相同必填
sys_seq随机串号String(16)随机生成串号,仅用于日志跟踪用,不保存必填
trans_time接口返回时间String(14)接口返回时间,格式:yyyyMMddHHmmss必填
pay_type渠道String(3)503:微信支付必填
result
->id
响应码String(4)翼码平台返回的处理结果
0000-申请成功
9998-申请结果待确认,请调用现金退款查询
其它响应码为失败,错误信息说明见“响应码解释”字段
必填
result
->comment
响应码解释String(64)响应码对应中文注解,用于显示提示必填
当微信渠道的时返回以下数据
wxpay_res_info
->trade_no
微信单号String(64)交易成功时候,必填可空
wxpay_res_info
->out_trade_no
商户订单号String(64)交易成功时候,必填可空
wxpay_res_info
->tx_amt
交易金额Number(9)与请求节点一致可空

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

重要:当返回码result->id=9998或接口超时无响应时,请不要更换请求流水(pos_seq)再次请求接口,否则会造成重复退款的风险!!!
此种情况下建议以下两种流程处理:
方案一:不更换流水(pos_seq),使用原报文重发申请
方案二:调用现金退款查询接口进行申请结果确认