為公司的PC網(wǎng)站應(yīng)用添加微信支付功能,后臺是C#開發(fā),坑還真是不少,所以感覺有必要分享出來讓大家少走點彎路。第一個坑就是微信支付官方?jīng)]有提供C#的樣例下載,我是百度到網(wǎng)友發(fā)出來的樣例包。微信后臺一堆的申請認(rèn)證OK過了。
接下來的坑就是太過相信微信支付的人性化了,結(jié)果關(guān)鍵節(jié)點的提示讓人抓狂。
用微信支付的模式一(樣例里默認(rèn)的),一堆的參數(shù)填進(jìn)去后,運行生成了二維碼,但是掃碼后錯誤提示”系統(tǒng)繁忙“,反復(fù)查找無果,按網(wǎng)友文章里的說法果斷放棄模式一,啟用模式二。
微信支付的模式二運行生成二維碼,掃碼提示”獲取用戶訂單信息超時或商戶返回httpcode非200“,經(jīng)反復(fù)查找文章后在微信支付后臺添加Native支付回調(diào)鏈接解決。
第三個問題是調(diào)用統(tǒng)一下單接口后返回值的問題,解析code_url報錯,代碼如下(第二行解析報錯了,因為返回值result?里沒有code_url):
WxPayData result = WxPayApi.UnifiedOrder(data);//調(diào)用統(tǒng)一下單接口
string url = result.GetValue("code_url").ToString();//獲得統(tǒng)一下單接口返回的二維碼鏈接
加斷點看了一下result ,報”return_msg, 簽名錯誤,請檢查后再試“,原來我這得用SHA256編碼,有網(wǎng)友說他的得用MD5編碼,可能是跟生成證書時的密鑰設(shè)置有關(guān),解決了,過。
?
接下來還是result報錯”err_code_des, 參數(shù)notify_url無效“,反復(fù)檢查了微信支付后臺添加的地址沒錯呀,查了無數(shù)文章,后來發(fā)現(xiàn)是代碼里的參數(shù)項里也要添加同樣的回調(diào)地址才行(唉,低級錯誤),就在樣例的GetNotifyUrl()里的return里添加即可。
到此,模式二的二維碼生成了,歡快的支付了0.01元完成初步測試。接下來還要做系統(tǒng)接入回調(diào),希望順利。
本文摘自 :https://www.cnblogs.com/