1. 程式人生 > >微信公眾號支付JSAPI,提示:2支付缺少引數:appId

微信公眾號支付JSAPI,提示:2支付缺少引數:appId

因為demo中支付金額是定死的,所以需要調整。

所以在使用的JS上添加了引數傳入。這裡的傳入string型別的引數,直接使用是錯誤的,對於方法,會出現appid缺少引數的錯誤

複製程式碼
//呼叫微信JS api 支付
    function jsApiCall(jsStr) {
        WeixinJSBridge.invoke(
        'getBrandWCPayRequest',
         jsStr,//存在問題的
         //jsStr,//josn串
         function (res) {
             WeixinJSBridge.log(res.err_msg);
             
//由於官方申明:使用以上方式判斷前端返回,微信團隊鄭重提示:res.err_msg將在使用者支付成功後返回 ok,但並不保證它絕對可靠。 //所以在返回ok的時候,只進行成功提示(即使是支付失敗,但是返回是ok) $(".flsclose03").click(); if (res.err_msg == "get_brand_wcpay_request:ok") { $(".cmact_blackbg1").stop(true, true).fadeIn("fast"); $(
"#tip_success").stop(true, true).fadeIn("fast"); } else { $(".cmact_blackbg1").stop(true, true).fadeIn("fast"); $("#tip_fail").stop(true, true).fadeIn("fast"); } } ); } function callpay(jsStr) { if (typeof
WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', jsApiCall(jsStr), false); } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', jsApiCall(jsStr)); document.attachEvent('onWeixinJSBridgeReady', jsApiCall(jsStr)); } } else { jsApiCall(jsStr); } }
複製程式碼

微信Demo中的模式是直接返回string parameters = jsApiParam.ToJson();字串的,在前端<%=parameters%>直接調取的

專案中測試的時候,也是照著這種模式來的,只不過這個字串,不是直接呼叫,而是作為js方法中的引數傳入的。導致無法訪問到這一串引數。一直報的是缺少引數appId,但就是不知道原因,改了訪問目錄,亦或是統一下單的引數,耗了幾個小時。

百度查的時候,實際上最早就有這種說法,JSON格式問題,自然也試了一下,不過只是將傳入的那一串打印出來罷了,並沒有真正改。

知道後來實在沒辦法了,就報著試試的心態,將最近的一個數據放到js中

按 Ctrl+C 複製程式碼 按 Ctrl+C 複製程式碼

結果自然,成功了。因為不清楚到底是怎麼產生變化的,所以乾脆就如下寫了,傳個物件,總沒有問題。