1. 程式人生 > >error Code:410 Error Message:appid and openid not match 威富通技術支援,興業銀行微信支付接入支援

error Code:410 Error Message:appid and openid not match 威富通技術支援,興業銀行微信支付接入支援

error Code:410 Error Message:appid and openid not match

----------------------------------------------------------------------------------
代理商給的資料

公眾號支付流程是先呼叫介面文件

6.1一節初始化請求介面獲取到相應的返回值token_id和pay_info

關於這兩個返回引數的說明,請求引數中傳了is_raw這個引數,並且值為1才返回pay_info,否則只會返回token_id),

返回引數按 XML 的格式示例如下圖,圖中是請求引數中有is_raw的情況下,pay_info(對應的值是json格式字串)引數和token_id引數都返回了

然後下一個步驟分為了兩個不同的模式:6.2一節原生態js支付和6.3一節公眾賬號JS支付

6.2一節原生態js支付

呼叫微信jspai方法,此方法只能在微信內建瀏覽器呼叫,在其他瀏覽器中無效,示例如下(注:示例程式碼中appId這六個引數有大小寫,對應的值就是初始化請求介面中返回引數pay_info的值):

function jsApiCall()

                   {       

                            WeixinJSBridge.invoke(

                                     'getBrandWCPayRequest',{

                                               "appId": "wx1111111", //公眾號名稱,由商戶傳入

                                               "timeStamp":"1468591622013", //時間戳,自1970 年以來的秒數

                                               "nonceStr": "1468591622013", //隨機串

                                               "package": "prepay_id=wx201607152207013ae4e376760784153308",

                                               "signType": "MD5", //微信簽名方式:

                                               "paySign": "111111111111111" //微信簽名,

                                     },function(res){

                                               if(res.err_msg== "get_brand_wcpay_request:ok" ) {

                                                        //此處可以使用此方式判斷前端返回,微信團隊鄭重提示:res.err_msg 將在使用者支付成功後返回ok,但並不保證它絕對可靠,。

                                                        document.location.href="pay_success.jsp";

                                               }

                                               /*for(var i in res){

                                                        alert(res[i]);

                                               }*/

                                     }

                            );

                   }

最後在網頁程式碼裡呼叫這個js方法就可調起微信支付比如:

<buttontype="button" onclick="jsApiCall()" >微信支付</button>

但想正常彈出支付密碼框,商戶方開發人員必須提供自己的支付授權目錄由服務商配置好,支付授權目錄即為jspai方法程式碼所在頁面的檔案路徑,如http://xxxx.com/zhifu/jsapi.html,授權目錄就是http://xxxx.com/zhifu/如果沒有配置授權目錄的話,支付時會無法彈出密碼框或者提示當前頁面URL未註冊

效果如圖

6.3一節公眾賬號JS支付

這種模式是由我們進行了封裝,用6.1一節初始化請求介面獲取到的token_id值組裝成https://pay.swiftpass.cn/pay/jspay?token_id=1315838a57d0c83df0b62816220da070&showwxtitle=1這樣的連結在手機微信中調起支付(使用者點選頁面中的微信支付按鈕時實際上就是點選的這個連結,可以將連結放在手機微信檔案傳輸助手去點選測試,注意token_id的值要更換有效的),這種模式不用實現jsapi方法,也不要提供支付授權目錄

效果如下圖:

對比6.2一節原生態js支付,直接點選連結的這個形式在支付彈出確認支付的彈出框時會多一個上面綠色下面白色背景頁面,

實際上這個背景頁面是我們封裝好的支付授權目錄頁面

這也是不用商戶提供支付授權目錄的原因所在。

總的來說,封裝的連結形式開發時簡單些,且無需商戶提供自己的授權目錄(由我們固定配置https://pay.swiftpass.cn/pay/),但體驗可能沒有原生態js支付好,商戶可以自行決定最終使用哪種。





------------- 原生----------------------------------------------------------------------