C# 微信v3退款

1.退款需要退款证书。C#都是用p12的证书,双击证书导入,密码是mch_id(商户号)

2.调用微信退款接口进行退款操作

  

 1 string  resp=string.Empty  
 2 string cert = Server.MapPath("apiclient_cert.p12"); 
 3    string password = mch_id;(商户号)
 4     ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
 5 
 6   //这两句特别注意
 7 
 8   // X509Certificate cer = new X509Certificate(cert, password);//线下发布需要添加的
 9      X509Certificate2 cer = new X509Certificate2(cert, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);//线上发        布需要添加
10 
11    HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);
12         webrequest.ClientCertificates.Add(cer);
13         webrequest.Method = "post";
14         webrequest.ContentType = "application/x-www-form-urlencoded";
15         webrequest.ContentLength = xml.Length;
16         HttpWebResponse response = null;
17    try
18         {
19             StreamWriter swRequestWriter = new StreamWriter(webrequest.GetRequestStream());
20             swRequestWriter.Write(xml);
21 
22             if (swRequestWriter != null)
23                 swRequestWriter.Close();
24 
25             response = (HttpWebResponse)webrequest.GetResponse();
26             using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default))
27             {
28                 resp = reader.ReadToEnd();
29             }
30         }
31  catch (Exception exp)
32         {
33             throw exp;
34         }
35         finally
36         {
37             if (response != null)
38                 response.Close();
39         }

分享几个退款时遇到的问题
1、退款提示:订单号非法
原因:退款的订单号错误导致的
2、退款时提示:基础连接已关闭,或被意外关闭(验证证书的问题)
原因: 首先要通过证书请求退款的接口,其次要把下面的这行语句
 // X509Certificate cer = new X509Certificate(cert, password);//线下发布需要添加的
修改成这样的才可以X509Certificate2 cer = new X509Certificate2(cert, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);//线上发 布需要添加
3、 Miss Parameters
原因:传参数时,参数的名字和文档大小写不一致
4、每次退款,退款的订单号不能相同,否则无法退款

 

转载于:https://www.cnblogs.com/jiaguo648517982/p/4262452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 销毁当前页面重新开启_问:如何强制销毁iOS中的视图控制器?

是否可以在iOS中回收/强制销毁UIViewController?问:如何强制销毁iOS中的视图控制器?我用这github project得到一个定制UIViewControllerTransition:这里是程序的流程:vc1礼物给nav到的rootVc是vc2在vc2有是UIButton。点…

2021 开源社年度报告:开心开源

# 引言 #2020年的开源社年度报告仿佛还在昨天,一转眼,2021年都已经过完了。在去年的年度报告上,我们说2020是动荡不安的一年。结果2021年,简直可以说是动荡加剧,令人应接不暇的一年。迫于疫情的影响,我们一…

luajit日记-FFI库

2019独角兽企业重金招聘Python工程师标准>>> LuaJIT FFI LibraryThe FFI library allows calling external C functions and using C data structures from pure Lua code. The FFI library largely obviates the need to write tedious manual Lua/C bindings in …

linux c之access方法介绍

1、函数介绍 access函数检查调用进程是否可以对指定的文件执行某种操作 api: int access(const char * pathname, int mode) athname:需要检测的文件路劲名 mode:需要测试的操作模式 mode参数介绍: R_OK 测试读许可权 W_OK 测试写许可权 X_OK 测试执行许可…

P4 前端编译器p4c-bm、后端编译器bmv2命令安装 make error问题

参考:Github 安装p4c-bm: sudo pip install -r requirements.txtsudo pip install -r requirements_v1_1.txt //if you are interested in compiling P4 v1.1 programssudo python setup.py install 测试: p4c-bmv2 -h 弹出相关信息&#xff…

机器学习模型 知乎_机器学习-模型选择与评价

交叉验证首先选择模型最简单的方法就是,利用每一种机器学习算法(逻辑回归、SVM、线性回归等)计算训练集的损失值,然后选择其中损失值最小的模型,但是这样是不合理的,因为当训练集不够、特征过多时容易过拟合,那么训练集…

三种查看SqlServer中数据物理pge页的方法

1.根据数据记录查看当前记录所在的文件编号、page页、以及在页中的插槽。 示例如下: SELECT top 10 %%physloc%%, sys.fn_physlocFormatter (%%physloc%%) AS RID FROM tableName --注意;在64位系统中sys.fn_physlocFormatter 整理出来的格式有时候不…

C#10 和 .NET6 代码跨平台开发

零、前言有数千页长的编程书籍,旨在成为 C# 语言、.NET 库、网站、服务、桌面和移动应用等应用模型的综合参考。这本书不一样。它简洁明了,旨在成为一本轻快有趣的书,每一个主题都有实用的实践演练。总体叙述的广度是以某种深度为代价的&…

文件权限

用户类型:管理员:0一般用户:1-65535系统用户1-499普通用户:500权限管理:owner,group属主:属组:其他:权限:read(读),write&…

linux之tar命令使用总结

1、使用原因 刚才在linux平台需要安装Clion的时候,下载得到CLion-2016.3.2.tar.gz 这个gz的压缩文件,所以需要解压到当前文件夹 2、简单解压到当前文件 解压当前文件夹命令 tar -zxvf CLion-2016.3.2.tar.gz 效果如下 3、tar命令介绍 -c: 建立压缩档案 -x:解压 -t:…

jq取第一个子元素为select_【转】jquery如何获取第一个或最后一个子元素?

【转自】https://www.cnblogs.com/MUMO/p/5938483.html通过children方法,children("input:first-child")$(this).children("input:first-child").val();$(this).children("input:last-child").val();通过>选择器,$(&qu…

基于ASP.NET Core SignalR的流式传输

基于ASP.NET Core SignalR的流式传输SignalR概述SignalR是ASP.NET Core下非常流行的实现Web实时功能的库。微软再文档中列出了适合的应用场景:适合 SignalR 的候选项:需要从服务器进行高频率更新的应用。示例包括游戏、社交网络、投票、拍卖、地图和 GPS…

Leetcode: Palindrome Partition I II

题目一, 题目二 思路 1. 第一遍做时就参考别人的, 现在又忘记了 做的时候使用的是二维动态规划, 超时加超内存 2. 只当 string 左部分是回文的时候才有可能减少 cut 3. 一维动规. 令 cuts[i] 表示string[i, string.size()] 所需的切割数, 那么 状态转移方程为 cuts[i] min(cut…

FatMouse

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1431 解决:641 题目描述:FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food…

linux之安装Clion和运行使用总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程 1、Clion的简单介绍 CLion是以IntelliJ为基础,专为开发C及C++所设计的跨平台IDE,可以在Windows、Linux及MacOS使用,这里我是在ubuntu 16.0.4基础上安装。 2、linux平台…

Tips

1.Unity\Editor\Data\Resources\ScriptTemplates 里的文件是Unity 生成文件的模板. 2.提示文件尾不一致.用VS打开Unity\Editor\Data\Resources\ScriptTemplates里的模板文件.文件->高级保存选项->Windows(CRLF) 3.Scene视图里选择Transform工具,按V可以通过Pivot对齐 4.N…

体验 正式发布 的OSM v1.0.0 版本

2021年10月份发布了OSM 1.0 RC[1],在过去的几个月里,OSM 的贡献者一直在努力为 v1.0.0 版本的发布做准备。2022年2月1日,OSM 团队正式发布 1.0.0 版本[2]。OSM 从最初的发布到现在已经走了很长的路,团队继续专注于社区需要的关键和…

linux c之用命名管道实现进程通信

1、命名管道相关信息介绍 不是很了解命名管道先看这个篇博客 http://blog.csdn.net/u011068702/article/details/55102379 linux c之命名管道简单使用 博客介绍了创建管道的方法,这里还需要介绍 open函数和调用阻塞 FIFO文件也可以使用open调用来打开,mkfifo函数只是创建…

vue表格刷新数据_Vue.js+Layer表格数据绑定与实现更新的实例

一:先使用Vue.js绑定好数据与更新事件使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接取出需要更新的数据选择用户名学号班级操作{{item.UserName}}{{item.Number}}{{item.Class}}删除更新//实例化vue.js(用来给表格提供…

数据流图的画法

数据流图的画法 数据流图也称为数据流程图date flow diagram , DFD,是一种便于用户理解和分析系统数据流程的图形工具,他摆脱了系统和详细内容,精确的在逻辑上描写叙述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组…