C# 微信v3退款
1.退款需要退款證書。C#都是用p12的證書,雙擊證書導(dǎo)入,密碼是mch_id(商戶號(hào))
2.調(diào)用微信退款接口進(jìn)行退款操作
??
1 string resp=string.Empty 2 string cert = Server.MapPath("apiclient_cert.p12"); 3 string password = mch_id;(商戶號(hào)) 4 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); 5 6 //這兩句特別注意 7 8 // X509Certificate cer = new X509Certificate(cert, password);//線下發(fā)布需要添加的 9 X509Certificate2 cer = new X509Certificate2(cert, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);//線上發(fā) 布需要添加 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 }分享幾個(gè)退款時(shí)遇到的問(wèn)題
1、退款提示:訂單號(hào)非法
原因:退款的訂單號(hào)錯(cuò)誤導(dǎo)致的
2、退款時(shí)提示:基礎(chǔ)連接已關(guān)閉,或被意外關(guān)閉(驗(yàn)證證書的問(wèn)題)
原因: 首先要通過(guò)證書請(qǐng)求退款的接口,其次要把下面的這行語(yǔ)句 // X509Certificate cer = new X509Certificate(cert, password);//線下發(fā)布需要添加的
修改成這樣的才可以X509Certificate2 cer = new X509Certificate2(cert, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);//線上發(fā) 布需要添加
3、 Miss Parameters
原因:傳參數(shù)時(shí),參數(shù)的名字和文檔大小寫不一致
4、每次退款,退款的訂單號(hào)不能相同,否則無(wú)法退款
?
轉(zhuǎn)載于:https://www.cnblogs.com/jiaguo648517982/p/4262452.html
總結(jié)
- 上一篇: nginx获得response自定义的h
- 下一篇: C# 内存法图像处理