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

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

    PHP 数组基本操作方法详解 本文将介绍 PHP 数组的基本操作方法,包括如何创建、访问、修改和删除数组中的元素。同时也会介绍如何合并和分割数组,以及如何遍历和排序数组。 创建数组 在 PHP 中创建数组很简单,有以下两种方法: 使用 array() 函数: php$arr1 = array(1, 2, 3); 使用 [] 符号: php$arr2 = [1…

    PHP 2023年5月26日
    00
  • php数组随机排序实现方法

    当我们需要对一个 PHP 数组进行随机排序时,可以使用 shuffle() 函数。shuffle() 函数用于将数组的元素随机排序,打乱数组顺序。 下面是对数组进行随机排序的示例代码: // 定义一个需要排序的数组 $my_array = array("苹果", "香蕉", "葡萄", "…

    PHP 2023年5月26日
    00
  • 在Win7 中为php扩展配置Xcache

    以下是在Win7中为PHP扩展配置Xcache的完整攻略,包含两个示例。 步骤一:下载并安装Xcache 在官方网站下载适用于Windows的Xcache扩展。 解压缩下载的压缩包到PHP扩展目录下的ext文件夹中,例如:C:\xampp\php\ext。 步骤二:为Xcache配置php.ini 在PHP目录下找到php.ini文件,例如:C:\xampp…

    PHP 2023年5月27日
    00
  • PHP如何实现HTTP验证

    HTTP验证,也称为基本身份验证(Basic Authentication),是一种常见的网站访问控制方法,它可以让你限制某些页面和资源只有在用户提供正确的用户名和密码时才能访问。在PHP中,可以通过以下步骤来实现HTTP验证。 1. 设置HTTP头 首先,需要设置HTTP头部,以让浏览器弹出身份验证对话框。可以使用PHP的header函数来设置HTTP头:…

    PHP 2023年5月27日
    00
  • VB怎么加密压缩包rar解密程序?

    首先,我们需要了解以下几个概念和技术: 加密和解密:加密是将明文转换为密文,解密是将密文转换为明文。 压缩和解压缩:压缩是将文件或文件夹通过一定算法转换为较小的文件,而解压缩是将压缩后的文件恢复为原始文件或文件夹。 VB语言:Visual Basic(VB)是一种以基于事件驱动的编程为基础的,面向对象的计算机程序设计语言。 下面提供一种示例方式实现VB加密压…

    PHP 2023年5月30日
    00
  • PHP在弹框中获取foreach中遍历的id值并传递给地址栏

    当需要在PHP的弹框中获取Foreach循环所遍历的ID并传递给地址栏时,可以按照以下步骤进行操作: 步骤一:创建HTML页面 在HTML页面中创建一个链接,该链接将打开弹出窗口并传递Foreach循环中的ID。示例代码如下: <html> <head> <title>PHP弹框页面</title> <s…

    PHP 2023年5月27日
    00
  • PHP动态输出JavaScript代码实例

    下面是“PHP动态输出JavaScript代码实例”的详细攻略。 概述 在网页中,有时需要根据用户输入的不同来动态输出JavaScript代码。为了实现这个功能,就需要使用PHP来动态生成JavaScript代码。本文将详细介绍如何使用PHP动态输出JavaScript代码。 代码示例一 以一个简单的表单为例,该表单有一个输入框和一个按钮,用户可以在输入框中…

    PHP 2023年5月23日
    00
  • 详解php中的类与对象(继承)

    详解php中的类与对象(继承) 类和对象 php中的类是一种抽象的概念,用来描述某些具有相同属性和方法的实物,其实例化后就成为了对象。一个类可以包含多个方法和属性,其中方法用于定义能够执行的操作,属性则用来存储对象的状态。 在php中,我们可以使用class关键字定义一个类。例如,下面定义了一个名为Person的类: class Person{ public…

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