倒過來看,微信支付,最終要實現的無非是拉起微信支付jsapi提示用戶輸入密碼支付這筆訂單;
而拉起微信支付jsapi需要的參數有公眾號id,時間戳,隨機字符串,訂單詳情擴展字符串,簽名方式,簽名⑥個;其中我們不知道的只有訂單詳情擴展字符串一個;
訂單詳情擴展字符串是統一下單接口返回的prepay_id(我習慣叫它訂單號)參數值;
所以說,在支付之前需要我們的后端先調用統一下單接口向微信下一筆訂單,將返回的訂單號告訴我們;
然而,后端要下單需要先知道為那個用戶下單,即需要用戶唯一標識openId;
要獲取openid又需要code,獲取code需要前端引導用戶進行授權操作;
這樣就很清楚了,一個最簡單的公眾號網頁支付流程為:用戶進入公眾號=>引導用戶授權=>將code傳給后端=>后端用code獲取openid=>后端下單=>告訴我們訂單號=>拉起微信支付jsapi完成支付;