C#.NET ,微信退款证书
微信退款时遇到:基础连接已经关闭 连接被意外关闭。
服务器环境:WIN SERVER 2008 R2. WINDOWS服务承载的WCF服务,基于.NET FRAMEWORK 3.5.
第一笔交易的退款是正常的,第二笔交易的退款就提示这个错误。重新导入证书后正常。再做一笔退款时还是报错。反复如此。
同一环境另一证书一切正常。。。。。。。。
问题代码:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl); req.KeepAlive = false; X509Certificate cer = new X509Certificate(certFullName, password);
在网上搜索了下,有人这样写:
X509Certificate2 certificate = new X509Certificate2(PATH_TO_CERTIFICATE, PASSWORD, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);
也有人这样写:
X509Certificate2 cer = new X509Certificate2(certFullName, password,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
估计是优先从X509KeyStorageFlags.MachineKeySet 这个地方去找证书。
但是没在意他们都用的是:X509Certificate2。而我用的仍是X509Certificate。
“X509Certificate cer = new X509Certificate(certFullName, password);”这段代码是微信官方DEMO里的,如下图:

我以为代码里加下X509KeyStorageFlags即可,即:
X509Certificate cer = new X509Certificate(certFullName, password,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
仍然用的是“X509Certificate”,测试后仍不行。
无意间注意到两者不是同一个类,就去找X509Certificate和X509Certificate2的不同。
在微软文档中:https://msdn.microsoft.com/zh-cn/library/system.security.cryptography.x509certificates.x509certificate(v=vs.90).aspx
有提到:
"ASN.1 DER 是此类支持的唯一证书格式。
在大多数情况下,您应该使用 X509Certificate2 类。"
阿西八,我用的是:X509Certificate.
最后改成:
X509Certificate2 cer = new X509Certificate2(certFullName, password,
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
更新下程序,测试了两个证书的四次退款均正常(每证书两次)。
C#.NET ,微信退款证书的更多相关文章
- 微信退款证书使用c#
微信退款需要证书 data为已封装好的xml数据 具体怎么封装>打开 public string get(string data) { string cert = @"D:\certi ...
- 微信退款验证证书时报错:length too long
由于springboot文件加载时,默认会加载resources目录下的文件,而微信的证书刚好在它之下,加载时就会报这个错误.解决办法: 在pom.xml文件中,添加如下代码: <plugin& ...
- PHP实现微信申请退款(证书权限必须设为可执行)
前期准备: 当然是搞定了微信支付,不然怎么退款,这次还是使用官方的demo.当然网上可能也有很多大神自己重写和封装了demo,或许更加好用简洁,但是我还是不提倡用,原因如下: (1)可能功能不全,或许 ...
- 微信退款 - tp5
原文:http://www.upwqy.com/details/19.html 1 微信退款官方文档 https://pay.weixin.qq.com/wiki/doc/api/app/app.p ...
- 微信小程序支付以及微信退款开发
最近公司项目急着测试,需要开发微信小程序+微信支付+微信退款,本着这几天的一些研究,决定记录一下开发的过程. 本着知识分享的原则,希望对大家有所帮助. 本篇针对的是微信小程序的支付开发,如果有对微信公 ...
- PHP实现微信退款功能
最近在调微信退款接口,发现有许多坑,更大家分享一下 ① 要是在测试的时候,网页提示 curl 58 说明 证书的路径出现问题(这里要填物理路径,也就是绝对路径) ②网页提示curl 52 说明你的证书 ...
- PHP实现微信退款的分析与源码实现
原文:https://blog.csdn.net/jason19905/article/details/78628349 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通 ...
- 微信退款和支付宝退款接口调用(java版)
项目中需要使用到微信和支付宝的退款功能,在这两天研究了一下这两个平台的退款,有很多坑,在开发中需要留意 1.微信退款接口 相对来说我感觉微信的退款接口还是比较好调用的,直接发送httppost请求即可 ...
- node 微信退款
基于node 的微信退款 申请微信退款:微信退款, 1.在前端页面访问 /refund var request = require('request'); var WxPayRefund = req ...
随机推荐
- IE下背景图片 不显示问题
转自:http://www.jb51.net/css/119341.html 在chrome,FF里调试完后,忽然想起ie来,放到Ie里其它还好了,但是有个背景图片显示不出来,具体的写法如下,有类似情 ...
- 精妙无比 8款HTML5动画实例及源码
1.jQuery垂直带小图标菜单导航插件 今天我们要来分享一款jQuery菜单插件,这款jQuery菜单是垂直的样式,鼠标滑过菜单项时会出现一个背景,菜单项的右侧也会出现一个小箭头.另外值得注意的是, ...
- JQuery中的push和join
和JS 中的JOIN 方法一样,将一数组按照JOIN的参数连接起来. 比如: var arr = [ "a", "b", "c", &quo ...
- easyUI分页显示
struts2: http://www.cnblogs.com/huozhicheng/archive/2011/09/27/2193605.html springMVC http://blog.cs ...
- js部分---for循环练习题
1有一张0.0001米的纸,对折多少次可以达到珠穆朗玛峰的高度8848: <script> /*var h=0.0001; var biao=0; for(;;) { h=h*2; if( ...
- leetcode 130. Surrounded Regions----- java
Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A reg ...
- 黑马程序员——JAVA基础之 == 和equals区别
java中 == 和equals区别: java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...
- python 字符串 大小写转换
总结 capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写,如"i love python" ...
- dede模板完全控制攻略
1.使用php代码 @me代表了当前字段的值 {dede:tagname runphp='yes'} @me = "123456";//如果使用了自定义函数 则@me得到的是函数返 ...
- Nginx-SSI
<a href="<!--#include file="/$SERVER_NAME.shtml"-->">点击</a> a