H5微信支付所遇到的若干問題
最近做了個H5微信支付的需求,記錄一下所遇到的一些問題。。
cookie 丟失的問題
在H5頁面中,一開始我們是需要拿到微信使用者的資訊。因此需要呼叫獲取使用者的介面。
在第一次呼叫該介面時,需要有一個授權的過程。沒有拿到使用者資訊的話,就需要調取授權讓使用者確認。
然後問題就來了~授權完成後,會發現後端是拿不到cookie
資訊。經過查詢資料後發現原來還是跨域在作祟~
雖然我們解決了基本的跨域問題,即域名(origin)的不同。但是預設情況下跨域請求不會發送cookie
.
這時前端需要設定XHR
的withCredentials: true
, 後端也需要配合設定Access-Control-Allow-Credentials
即可。
以axios
為例,withCredentials: true
與data
平級:
const opt = { url: '/user', method: 'get', data: { name: 'jojo' }, withCredentials: false, } axios(opt).then(res=> console.log(res))
這種情況一般是前後端專案不在同一個域名的情況下,且需要帶憑證的場景需要設定Credentials
。
url未註冊(url not registered)
隨後微信彈了一下url not registered
的錯誤,檢查支付目錄已經正確的被配置。
相關資料
前端:
後端: