原文地址:點擊打開鏈接
開發步驟:
1、新用戶微信開放平臺進行註冊,並認證,認證需要300元,https://open.weixin.qq.com/
2、登錄進行創建應用,按照要求填寫IOS的Bundle ID和Android的應用簽名及包名,如此應用就創建好了。
3、申請支付功能,申請條件是服務號或者企業號,申請成功後會收到一個審覈成功的郵件,根據郵件提供是的商戶名和密碼登錄到商戶平臺,點擊賬戶設置-->API安全-->API祕鑰-->設置祕鑰(祕鑰是32位),設置成功後,要記住這個祕鑰,支付的時候需要用上這個東西。具體情況請戳 http://kf.qq.com/faq/140225MveaUz150107UVFNjy.html
4、準備工作就緒後我們開始正式開發了,此時我們一般都進入微信支付開發文檔,根據需求下載demo,和查看文檔接口,看看如何接入到app中,https://pay.weixin.qq.com/wiki/doc/api/index.html
5、下載DEMO後,我們有幾個地方需要注意:(1)替換App_ID爲我們的申請的APPID;(2)替換商戶號爲我們申請支付成功後的商戶號;(3)替換API祕鑰,這是我們在步驟3的時候自己設定的。
6、運行DEMO,返回的結果爲-1,哈哈,是不是覺得應該成功纔對?怎麼會支付失敗呢?我們對應一下支付開發步驟:(1)註冊APP;(2)獲取預支付ID;(3)根據預支付ID進行簽名①;(4)向微信支付進行請求。
反正我用上面的方式,步驟上跟官方文檔一樣,接入的方式也是按照demo來進行的,可是還是失敗的,我相信很多人都會失敗,因爲現在的官方文檔更新過後,很多東西都面目全非了,接下來我將慢慢把我接入到項目中遇上的問題一一列出:
(1)接入到項目中後,遇上的第一個問題就是簽名錯誤,<return_msg><![CDATA[SIGN ERROR]]></return_msg>
(2)時間不一致,
<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[time_expire時間過短,刷卡至少1分鐘,其他5分鐘]]></return_msg>
</xml>
(3)支付返回-1
反反覆覆的測試了好多次,都沒有成功,實在令人心煩,後來我輾轉找到了一個DEMO,跟官方的demo有很大的不同,經過整理後這個demo能支付成功,終於解決了我的這塊心病,真有種支付之難,難於官方文檔胡攪蠻纏,因爲我們太信任官方文檔了,殊不知官方文檔也有欺騙我們的時候,待會我將DEMO上傳後大家一比便知。
順便把列出的問題說說:(1)簽名問題錯誤,原因很多的,比如API_KEY錯誤(其他人把API_KEY換掉),組織簽名的參數沒有按照文檔的規則處理,規則請看官網文檔的要求;(2)時間不一致是需要以UTC時間來換算,且按照要求的間隔時間來計算時間;(3)支付返回-1,這個問題也是說不清道不明的東西,就我遇上的問題說說,可能每個人的情況不一致,如果大家用本人說的方式不能解決的,請繼續Google查查,本人遇上的情況是:①按照demo配置好了,其中某些小細節出的問題,請下載文章末尾提供的demo進行比對,替換相應的參數;②以前是支付成功的,一段時間後,某一天支付的時候返回-1了,解決方案是清除掉緩存,或者把app卸載掉,重新安裝試試;③某天莫名其妙的支付失敗了,提示錯誤是 Failed to find provider info for com.tencent.mm.sdk.plugin.provider 這個問題的解決方案是,微信版本太低,更新到最新的微信版本,支付就解決了。