接口地址
接口链接:https://api.mch.weixin.qq.com/pay/refundquery
是否需要证书
不需要。
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 公众账号ID | appid | 是 | String(32) | wx8888888888888888 | 微信分配的公众账号ID |
| 商户号 | mch_id | 是 | String(32) | 1900000109 | 微信支付分配的商户号 |
| 设备号 | device_info | 否 | String(32) | 013467007045764 | 商户自定义的终端设备号,如门店编号、设备的ID等 |
| 随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位。推荐随机数生成算法 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名,详见签名生成算法 |
| 微信订单号 | transaction_id | 否 | String(28) | 1217752501201407033233368018 | 微信订单号 |
| 商户订单号 | out_trade_no | 是 | String(32) | 1217752501201407033233368018 | 商户系统内部的订单号 |
| 商户退款单号 | out_refund_no | 否 | String(32) | 1217752501201407033233368018 | 商户退款单号 |
| 微信退款单号 | refund_id | 否 | String(28) | 1217752501201407033233368018 | 微信退款单号 refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为: refund_id>out_refund_no>transaction_id>out_trade_no |
返回数据
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态码 | return_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL |
| 返回信息 | return_msg | 否 | String(128) | 签名失败
| 返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
以下字段在return_code为SUCCESS的时候有返回
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 业务结果 | result_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL SUCCESS退款申请接收成功,结果通过退款查询接口查询 FAIL |
| 错误码 | err_code | 是 | String(32) | SYSTEMERROR | 错误码详见第6节 |
| 错误描述 | err_code_des | 是 | String(32) | 系统错误 | 结果信息描述 |
| 公众账号ID | appid | 否 | String(32) | wx8888888888888888 | 微信分配的公众账号ID |
| 商户号 | mch_id | 是 | String(32) | 1900000109 | 微信支付分配的商户号 |
| 设备号 | device_info | 是 | String(32) | 013467007045764 | 微信支付分配的终端设备号,与下单一致 |
| 随机字符串 | nonce_str | 是 | String(28) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名,详见签名算法 |
| 微信订单号 | transaction_id | 是 | String(32) | 1217752501201407033233368018 | 微信订单号 |
| 商户订单号 | out_trade_no | 是 | String(32) | 1217752501201407033233368018 | 商户系统内部的订单号 |
| 订单总金额 | total_fee | 是 | Int | 100 | 订单总金额,单位为分,只能为整数,详见支付金额 |
| 订单金额货币种类 | fee_type | 否 | String(8) | CNY | 订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 |
| 现金支付金额 | cash_fee | 是 | Int | 100 | 现金支付金额,单位为分,只能为整数,详见支付金额 |
| 货币种类 | cash_fee_type | 否 | String(8) | CNY | 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 |
| 退款金额 | refund_fee | 是 | Int | 100 | 退款总金额,单位为分,可以做部分退款 |
| 代金券或立减优惠退款金额 | coupon_refund_fee | 否 | Int | 100 | 代金券或立减优惠退款金额=订单金额-现金退款金额,注意:满立减金额不会退回 |
| 退款笔数 | refund_count | 是 | Int | 1 | 退款记录数 |
| 商户退款单号 | out_refund_no_$n | 是 | String(32) | 1217752501201407033233368018 | 商户退款单号 |
| 微信退款单号 | refund_id_$n | 是 | String(28) | 1217752501201407033233368018 | 微信退款单号 |
| 退款渠道 | refund_channel_$n | 否 | String(16) | ORIGINAL | ORIGINAL—原路退款 BALANCE—退回到余额 |
| 退款金额 | refund_fee_$n | 是 | Int | 100 | 退款总金额,单位为分,可以做部分退款 |
| 货币种类 | fee_type_$n | 否 | String(8) | CNY | 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 |
| 代金券或立减优惠退款金额 | coupon_refund_fee_$n | 否 | Int | 100 | 代金券或立减优惠退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见代金券或立减优惠 |
| 代金券或立减优惠使用数量 | coupon_refund_count_$n | 否 | Int | 1 | 代金券或立减优惠使用数量 ,$n为下标,从1开始编号 |
| 代金券或立减优惠批次ID | coupon_refund_batch_id_$n_$m | 否 | String(20) | 100 | 批次ID ,$n为下标,$m为下标,从1开始编号 |
| 代金券或立减优惠ID | coupon_refund_id_$n_$m | 否 | String(20) | 10000 | 代金券或立减优惠ID, $n为下标,$m为下标,从1开始编号 |
| 单个代金券或立减优惠支付金额 | coupon_refund_fee_$n_$m | 否 | Int | 100 | 单个代金券或立减优惠支付金额, $n为下标,$m为下标,从1开始编号 |
| 退款状态 | refund_status_$n | 是 | String(16) | SUCCESS | 退款状态: SUCCESS—退款成功 FAIL—退款失败 PROCESSING—退款处理中 NOTSURE—未确定,需要商户原退款单号重新发起 CHANGE—转入代发,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,资金回流到商户的现金帐号,需要商户人工干预,通过线下或者财付通转账的方式进行退款。 |
后台代码:
/// <summary>
/// 查询退款
/// </summary>
/// <param name="trade"></param>
/// <returns></returns>
public JsonResult RefundQuery(TRADE_Model trade)
{
string nonceStr = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetNoncestr();
Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null);
packageReqHandler.SetKey(Key);
packageReqHandler.SetParameter("appid", AppId);
packageReqHandler.SetParameter("mch_id", MchId);
packageReqHandler.SetParameter("nonce_str", nonceStr);
//packageReqHandler.SetParameter("transaction_id", "");//微信订单号
packageReqHandler.SetParameter("out_trade_no", trade.TRADE_NO);//商户系统内部的订单号
//packageReqHandler.SetParameter("out_refund_no", "");//商户退款单号
//packageReqHandler.SetParameter("refund_id", "");//微信退款单号
//注意:refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no
string querysign = packageReqHandler.CreateMd5Sign("key", Key);
packageReqHandler.SetParameter("sign", querysign); //签名
string data = packageReqHandler.ParseXML();
var result = Senparc.Weixin.MP.AdvancedAPIs.TenPayV3.RefundQuery(data);
var res = System.Xml.Linq.XDocument.Parse(result);
string return_code = res.Element("xml").Element("return_code").Value;
Hashtable hashtable = new Hashtable();
return Json(hashtable);
}

1243

被折叠的 条评论
为什么被折叠?



