如何確認自己申請的微信版本是V3版 1.基本9月20以后申請的微信支付均為V3版本 2.查看微信發送的郵件 若其中包含以下信息 商戶ID、申請編號、登錄帳號、登錄密碼、商戶API密碼 商戶API證書、證書密鑰、CA證書 即為V3版本的微信支付
由于微信支付V2 跟 V3版的參數不同 支付的流程不同 導致微信支付V2版本跟V3版不兼容,長沙微信公眾號開發...
微信支付V3的 支付流程如下: (JSAPI支付為例)
根據文檔中所寫 采用JSAPI進行支付 則用戶的openid 為必須參數 所以官方給的Demo第一步采用了Oauth 認證獲取用戶的Openid,此處需要注意 在傳遞Oauth認證的回調URL中 應該使用 urlencode()
函數 對URL進行編碼 否則如 &a=1&b=2
類似的URL可能出現找不到的現象.
當然如果你在支付的頁面直接把openid 帶過去了...可以直接去掉支付中的oauth認證這步
2.支付成功后的 notify_url ,無法接受到數據問題. 首先 notify_url 同樣不能使用入如 &a=1&b=2
格式 應使用如下 /a/1/b/2
Pathinfo模式 如果是Linux環境還需要對文件夾有 相應的權限 才能寫入信息.開發者可以在 notify_url 中根據 支付返回的狀態進行一些相應的操作 例如修改訂單狀態...發送模板消息 提醒用戶交易成功等等..
關于支付測試:
1. 登陸微信的公眾平臺后臺(微信公眾平臺)---> 微信支付-->開發者配置 填寫上傳 測試的授權目錄 和 微信測試白名單 注意: 如果需要用到支付中的oauth 還應該去配置下 oauth認證的授權目錄(是不是很麻煩....)
2.如果出現 access_token:not_allow 之類信息 一般都是 支付的授權目錄 不正確.
3.如果下載的是微信支付V3版本的官方Demo,那么請首先修改其中的代碼 curl_setopt($ch, CURLOP_TIMEOUT, $this->curl_timeout);
修改為 curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
分別位于 WxPayPubHelper.php 的 155 821行 ,注釋掉 171行.
4.支付參數解析 配置文件中的 appid 和 appsecret 是開發者模式中的 appid 和 appsecret, mchid 和 key 分別在 微信發送的郵件中可以找到.