开发文档

撤销订单

应用场景(付款码支付使用):

支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,QQ钱包系统会将此订单关闭;如果用户支付成功,QQ钱包系统会将此订单资金退还给用户。

注意:

1、7天以内的交易单可调用撤销,其他正常支付的单如需实现退款功能请调用【申请退款接口】

2、提交支付交易后先调用【订单查询接口】,如多次查询后支付结果仍不明晰再调用【撤销订单接口】;

3、调用支付接口后请勿立即调用【撤销订单接口】

接口地址:

https://api.qpay.qq.com/cgi-bin/pay/qpay_reverse.cgi

是否需要证书:

接口规则

· 为保证交易安全性,采用HTTPS传输

· 采用POST方法提交

· 统一采用UTF-8字符编码

 更多详情见接口规则


请求参数:

变量名

字段名

字段类型

必填

备注

示例

appid

应用ID

String(32)

腾讯开放平台或QQ互联平台审核通过的应用APPID

1007033799

sub_appid

子商户应用ID

String(32)

腾讯开放平台或QQ互联平台审核通过的应用APPID

1007033790

mch_id

商户号

String(32)

QQ钱包分配的商户号

1900000109

sub_mch_id

子商户号

String(32)

子商户号或银行识别码

19000001099000000101

nonce_str

随机字符串

String(32)

随机字符串,不长于32位。

3e5a036cb4bc3a677a38ad9d69eb3feb

sign

商户签名算法规则

String(128)

商户签名,详见商户签名算法规则

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

out_trade_no

商户订单号

String(32)

商户系统内部的订单号,32个字符内、可包含字母,说明见商户订单号  

20150806125346

op_user_id

操作员ID

String(32)

操作员帐号, 默认为商户号

1900000109

op_user_passwd

操作员密码的MD5

String(32)

操作员密码的MD5

e47fefadd66e024bb2b85dfeb5fe86ba

示例如下:

   <xml>

       <mch_id>1301278501</mch_id>

       <nonce_str>b3dd0d076baf72459d7ebe5eb3422cb1</nonce_str>

       <out_trade_no>2016061235213677</out_trade_no> 

       <sign>8bf35c2fd0ca5f0ee0d23a2c0d73f912</sign>

       <op_user_id>1267727601</op_user_id> 

       <op_user_passwd>20A8587EE8FE76C02495344769D73729</op_user_passwd>

   </xml>


返回结果:

变量名

字段名

类型

必填

描述

示例

return_code

返回状态码

String(16)

SUCCESS/FAIL

SUCCESS

return_msg

返回信息

String(128)

返回信息,如非空,为错误原因 

签名失败

retcode

Q CGI原始错误码

String(16)

原始错误码

10025

retmsg

Q CGI原始错误信息

String(128)

原始错误信息

系统繁忙

 

下列字段,在return_code为成功时有返回:

变量名

字段名

类型

必填

描述

示例

appid

应用ID

String(32)

腾讯开放平台或QQ互联平台审核通过的应用APPID

1007033799

sub_appid

子商户应用ID

String(32)

腾讯开放平台或QQ互联平台审核通过的应用APPID

1007033790

mch_id

商户号

String(32)

QQ钱包分配的商户号

1900000109

sub_mch_id

子商户号

String(32)

子商户号或银行识别码

19000001099000000101

sign

商户签名算法规则

String(128)

商户签名,详见商户签名算法规则

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

result_code

业务结果

String(32)

SUCCESS/FAIL

SUCCESS

err_code

错误代码

String(32)

详情见错误代码

SYSTEMERROR

err_code_des

错误代码描述

String(128)

错误返回的信息描述

系统繁忙

nonce_str

随机字符串

String(32)

随机字符串,不长于32位。

3e5a036cb4bc3a677a38ad9d69eb3feb


下列字段,在result_code为成功时有返回:

变量名

字段名

类型

必填

描述

示例

recall

是否重新调用

String(1)

Y 需要重复调用。

N 不需要重复调用。

Y

示例如下:

   <xml>

       <retcode><![CDATA[0]]></retcode>

       <retmsg><![CDATA[ok]]></retmsg>

       <mch_id><![CDATA[1301278501]]></mch_id>

       <nonce_str><![CDATA[b3dd0d076baf72459d7ebe5eb3422cb1]]></nonce_str>

       <result_code><![CDATA[SUCCESS]]></result_code>

       <return_code><![CDATA[SUCCESS]]></return_code>

       <return_msg><![CDATA[SUCCESS]]></return_msg>

       <sign><![CDATA[B46441AB8FFBE83CCCDAD614D24BC30B]]></sign>

       <sign>3E6136FBBE0BBAD3482C9966434AEA74</sign>

       <out_trade_no>2016072208586047</out_trade_no>

       <op_user_id>1267727601</op_user_id>

       <op_user_passwd>20A8587EE8FE76C02495344769D73729</op_user_passwd>

       <recall>N</recall>

   </xml>


错误码:

错误码

描述

原因

解决办法

SYSTEMERROR

系统错误

系统错误

请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。

INVALID_TRANSACTIONID

无效transaction_id

请求参数未按指引进行填写

请求参数错误,检查原交易号是否存在或发起支付交易接口返回失败

PARAM_ERROR

参数错误

请求参数未按指引进行填写

请根据接口返回的详细信息检查您的程序

REQUIRE_POST_METHOD

请使用post方法

未使用post传递参数

请检查请求参数是否通过post方法提交,不要使用GET

SIGNERROR

签名错误

参数签名结果不正确

请检查签名参数和方法是否都符合签名算法要求

REVERSE_EXPIRE

订单无法撤销

订单有7天的撤销有效期,过期将不能撤销

请检查需要撤销的订单是否超过可撤销有效期