官方所需的必备参数:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 小程序ID | appid | 是 | String(32) | wx8888888888888888 | 微信分配的小程序ID |
| 商户号 | mch_id | 是 | String(32) | 1900000109 | 微信支付分配的商户号 |
| 随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位。推荐随机数生成算法 | |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名生成算法签名生成算法 | |
| 签名类型 | sign_type | 否 | String(32) | HMAC-SHA256 签名类型,目前支持HMAC-SHA256和MD5,默认为MD5 | |
| 微信订单号 | transaction_id | 二选一 String(32) | 1217752501201407033233368018 | 微信生成的订单号,在支付通知中有返回 | |
| 商户订单号 | out_trade_no | String(32) | 1217752501201407033233368018 | 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-*@ ,且在同一个商户号下唯一。transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no | |
| 商户退款单号 | out_refund_no | 是 | String(64) | 1217752501201407033233368018 | 商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-*@ ,同一退款单号多次请求只退一笔。 |
| 订单金额 total_fee | 是 | Int | 100 | 订单总金额, | 单位为分, 只能为整数,详见支付金额 |
| 退款金额 | refund_fee | 是 | Int | 100 | 退款总金额,订单总金额,单位为分,只能为整数,详见支付金额 |
| 货币种类 | refund_fee_type | 否 | String(8) | CNY 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 | |
| 退款原因 | refund_desc | 否 | String(80) | 商品已售完 若商户传入,会在下发给用户的退款消息中体现退款原因注意:若订单退款金额≤1元,且属于部分退款,则不会在退款消息中体现退款原因 | |
| 退款资金来源 | refund_account | 否 | String(30) | REFUND_SOURCE_RECHARGE_FUNDS仅针对老资金流商户使用REFUND_SOURCE_UNSETTLED_FUNDS—未结算资金退款(默认使用未结算资金退款)REFUND_SOURCE_RECHARGE_FUNDS—可用余额退款 | |
| 退款结果通知url | notify_url | 否 | String(256) | https://weixin.qq.com/notify/ | 异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。 |
XML举例如下:
<xml>
<appid>wx2421b1c4370ec43b</appid>
<mch_id>10000100</mch_id>
<nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str>
<out_refund_no>1415701182</out_refund_no>
<out_trade_no>1415757673</out_trade_no>
<refund_fee>1</refund_fee>
<total_fee>1</total_fee>
<transaction_id></transaction_id>
<sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
</xml>
直接贴demo :
# 请求退款地址
refundUrl = 'https://api.mch.weixin.qq.com/secapi/pay/refund'
# 创建小程序对象, 这些东西都是需要事先准备好的,这个是支付用的
# wxrpay = WXAppPay ( appid=APP_ID, mch_id=APP_MCH_ID, partner_key=APP_PARTNER_KEY )
class RefundUrl ( APIView ):
def post ( self, request )

本文详细解析微信支付退款接口的必备参数与使用方法,包括小程序ID、商户号、随机字符串等关键字段,以及如何生成签名并发送XML请求,提供Python代码示例。
最低0.47元/天 解锁文章
786





