.NET Core 微信小程序退款步骤——(统一退款)

yizhihongxing

当微信小程序出现退款需求时,可以通过微信支付的接口来进行处理,其中,统一退款是常用的一种方式。下面是关于“.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技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 如何使用php生成zip压缩包

    生成zip压缩包是一个很常用的需求,在PHP中我们可以通过ZipArchive类来轻松实现。下面是使用PHP生成zip压缩包的完整攻略: 步骤1:创建ZipArchive对象 首先,我们需要实例化 ZipArchive 类,并且打开一个新的压缩文件。 $zip = new ZipArchive(); $zipFileName = ‘test.zip’; if…

    PHP 2023年5月26日
    00
  • 【编码】PHP中文路径问题详解

    1. 问题 低版本的PHP可能会遇到不支持中文路径的情况:  (1) require(‘http://localhost/中文路径/test.php’);  (2) require(‘\中文路径\test.php’);  (3) $file = fopen(‘http://localhost/中文路径/test.php’);  (4) $file = fop…

    PHP 2023年4月18日
    00
  • 腾讯乘车卡支持哪些城市 微信腾讯乘车卡开通及使用方法图文教程

    腾讯乘车卡支持哪些城市 腾讯乘车卡目前支持的城市主要集中在中国的一二线城市,包括但不限于: 北京 上海 广州 深圳 杭州 南京 成都 武汉 重庆 如果您不确定自己所在城市是否支持腾讯乘车卡,则可以在微信或QQ中搜索“腾讯乘车卡”,进入相关页面查看城市列表。 微信腾讯乘车卡开通及使用方法图文教程 1. 开通腾讯乘车卡 打开微信或QQ,在搜索框中输入“腾讯乘车卡…

    PHP 2023年5月30日
    00
  • Windows下安装PHP单元测试环境PHPUnit图文教程

    下面是“Windows下安装PHP单元测试环境PHPUnit图文教程”的完整攻略: 安装Composer PHPUnit是使用PHP编写的,而Composer是PHP的依赖管理工具,所以需要先安装Composer,具体安装过程如下: 1.下载Composer-Setup.exe,打开官网 https://getcomposer.org/download/ 进…

    PHP 2023年5月30日
    00
  • PHP多进程编程实例

    下面我来详细讲解“PHP多进程编程实例”的完整攻略。 什么是PHP多进程编程 在PHP中,多进程编程指的是通过创建多个进程来完成任务的一种编程方式。这种编程方式可用于并行处理数据、优化代码执行速度等。 PHP多进程编程通常使用pcntl扩展,它提供了一组函数来创建以及管理进程。可以使用pcntl_fork()函数创建子进程,使用posix_kill()函数结…

    PHP 2023年5月23日
    00
  • php reset() 函数指针指向数组中的第一个元素并输出实例代码

    当我们处理数组时,经常要在数组元素之间移动指针。在PHP中,数组指针表示数组中当前指向元素的位置。PHP中的reset()函数用于将数组指针指向数组中的第一个元素。本文将详细介绍PHP reset()函数,并提供一些示例来说明如何在实际编码中使用该函数。 reset()函数的语法 reset()函数的语法如下: reset(array $array): mi…

    PHP 2023年5月26日
    00
  • 解决php接收shell返回的结果中文乱码问题

    当我们通过PHP的shell_exec或exec函数执行系统命令时,有可能会遇到返回结果中出现乱码的情况,这是因为系统命令返回的结果可能包含了中文字符,但是代码运行的环境不一定支持中文字符编码导致的。下面是解决PHP接收shell返回的结果中文乱码问题的完整攻略: 设置环境变量 首先我们可以设置环境变量来指定命令行的字符集编码,比如我们执行如下命令: put…

    PHP 2023年5月26日
    00
  • php发送post请求的三种方法

    在PHP中,发送POST请求有三种方法:使用内置函数、使用CURL和使用第三方库。下面将分别介绍这三种方法。 使用内置函数 PHP内置了一个名为file_get_contents()的函数,可以用来发送POST请求。具体步骤如下: 构建POST数据 POST请求需要提交数据到目标地址,我们需要将要提交的数据进行处理。对于表单提交的数据,可以使用http_bu…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部