????????使用Vue的時候,有兩種模式,hash 和 history 。在做微信公眾號支付的時候,第一步需要做微信授權(quán),而微信授權(quán)會涉及到一個回調(diào)頁面,也就是支付頁面。而hash 模式,因為 “ # ”,會導(dǎo)致回調(diào)頁面失效,也就是獲取不到code,而用history就不會出現(xiàn)這樣的問題。所以,若是線上項目使用的hash模式,有兩種做法,其中一種,用webpack打包的時候,將支付頁面獨立出來,去掉路由,打包后形成一個獨立的html頁面。還有一種,跳轉(zhuǎn)到支付頁面的時候,在路由后面加個 “?”號(這個方法我未試過,只是在輸入域名的時候,手動加一個問號,是可以調(diào)起微信支付的)。具體的webpack配置多頁面的方法:https://segmentfault.com/a/1190000007287998
微信公眾號支付,只需要引入下面的代碼,不需要引入微信sdk。而,微信支付需要的參數(shù),是你在統(tǒng)一下單后(我的做法是進(jìn)入支付頁的跳轉(zhuǎn),其實是跳轉(zhuǎn)到微信授權(quán)鏈接【靜默授權(quán)】,然后授權(quán)后回調(diào)頁面到支付頁【redirect_uri 定義的地址】),此時,地址欄就有了code,獲取code,傳給后臺,然后后臺就可以根據(jù)code,去生成支付所需要的參數(shù)了。至于后臺如何獲取openid,不需要前端關(guān)心。再然后,通過獲取接口的參數(shù),傳到微信支付代碼里面,就可以了。
這是微信官方文檔關(guān)于微信授權(quán)的描述
微信官方文檔關(guān)于微信公眾號支付的代碼