当微信小程序出现退款需求时,可以通过微信支付的接口来进行处理,其中,统一退款是常用的一种方式。下面是关于“.NET Core 微信小程序退款步骤——(统一退款)”的完整攻略。
1. 准备工作
在进行微信小程序退款之前,需要先在微信支付商户平台开通退款申请权限,并同时获取到以下信息:
- 微信支付商户号(mch_id)。
- 微信支付商户密钥(key)。
- 微信支付证书(cert.p12格式)。
- 微信支付证书密码。
2. 统一下单退款流程
2.1 统一下单
微信支付退款流程中,首先需要进行统一下单操作,该操作是使用统一下单API完成的。下面是完整的C#代码示例:
public async Task<string> Unifiedorder(string body, string openid, string out_trade_no, int total_fee, string notify_url)
{
SortedDictionary<string, object> dict = new SortedDictionary<string, object>();
dict.Add("appid", "微信小程序AppId");
dict.Add("mch_id", "微信支付商户号");
dict.Add("nonce_str", Guid.NewGuid().ToString().Replace("-", ""));
dict.Add("body", body);
dict.Add("out_trade_no", out_trade_no);
dict.Add("total_fee", total_fee);
dict.Add("spbill_create_ip", "127.0.0.1");
dict.Add("notify_url", notify_url);
dict.Add("trade_type", "JSAPI");
dict.Add("openid", openid);
dict.Add("sign", WeChatPayHelper.CreateMd5Sign(dict, "商户支付密钥"));
string xml = XDocHelper.CreateXml(dict);
return await HttpHelper.HttpPost(xml, "https://api.mch.weixin.qq.com/pay/unifiedorder");
}
上述代码中,调用了微信支付统一下单API,其中参数notify_url
为支付成功后的回调接口地址,我们需要在小程序后端自行实现一个用于接收支付结果通知的接口,并处理返回结果。
2.2 退款
接下来,就是退款操作了。在微信支付中,退款申请可以在支付成功后1分钟到7天之内进行,需要注意的是,退款操作是使用退款申请API完成的。下面是完整的C#代码示例:
public string Refund(string out_trade_no, int total_fee, int refund_fee)
{
var nonceStr = Guid.NewGuid().ToString().Replace("-", "");
var dict = new SortedDictionary<string, object>();
dict.Add("appid", "微信小程序AppId");
dict.Add("mch_id", "微信支付商户号");
dict.Add("nonce_str", nonceStr);
dict.Add("out_trade_no", out_trade_no);
dict.Add("out_refund_no", "退款订单号");
dict.Add("total_fee", total_fee);
dict.Add("refund_fee", refund_fee);
dict.Add("op_user_id", "商户号");
dict.Add("sign", WeChatPayHelper.CreateMd5Sign(dict, "商户支付密钥"));
var xml = XDocHelper.CreateXml(dict);
return HttpHelper.SslPost(xml, "https://api.mch.weixin.qq.com/secapi/pay/refund", System.IO.File.ReadAllBytes("证书位置(p12格式)"), "证书密码");
}
上述代码中,我们调用了微信支付退款申请API,其中参数out_trade_no
为订单号,参数refund_fee
为要退款的金额,参数op_user_id
为商户号。
3. 总结
以上就是.NET Core 微信小程序退款步骤——(统一退款)的完整攻略,其中包含了统一下单和退款两个关键步骤。其中,统一下单操作请参照微信支付官方文档,在我们的代码中,主要是调用相关API,并将参数通过xml格式发送给微信支付系统。在退款操作中,主要需要注意参数的选取和传递,尤其是退款金额的计算。最后,需要注意的是,退款申请需要在订单支付成功之后的1分钟到7天之间进行,退款操作一经提交就无法撤回,请慎重操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET Core 微信小程序退款步骤——(统一退款) - Python技术站