国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - 微信支付:H5調(diào)起支付API,直接說支付失敗
巴扎黑
巴扎黑 2017-05-17 10:04:16
0
4
1005
  1. 我在使用java開發(fā)微信的公眾號支付功能,使用的是公眾號內(nèi)部支付功能

第一步,統(tǒng)一下單介面已經(jīng)調(diào)通,可以取得prepay_id(下面會有程式碼貼出),可是在透過JS調(diào)起支付的API的時候,直接回傳的就是失敗,頁面有呼叫微信支付的視窗閃動一下,其實(shí)根本沒調(diào)起來支付控制,也不知道哪裡出了問題,只能在手機(jī)上呼叫查看,也無法進(jìn)行追蹤調(diào)查,alert出來的資料直接就是失敗,具體的JS程式碼如下

#
function onBridgeReady(){
    
    var param = {};
    param.openid = openid;
    param.orderAmount = 11;
    param.stageid = 2007;
    
    console.log(param);
    
    //通過下面接口獲取統(tǒng)一下單接口參數(shù)
    var url = puburl + "/wxpay/createOrderinfo";
    var data = ajaxUtil.ajaxJson(url, JSON.stringify(param));
    console.log(data);
    if(data.code != 0) {
        console.log(data);
        return false;
    }
    
    var result = data.data;
    alert(JSON.stringify(result));
    
    //上面接口已經(jīng)獲取接口需要的數(shù)據(jù),
    //根據(jù)微信官方提供的demo就是通過下面方式進(jìn)行參數(shù)賦值
    WeixinJSBridge.invoke(
       'getBrandWCPayRequest', {
           "appId":result.appId,
           "timeStamp":result.timeStamp,
           "nonceStr":result.nonceStr,
           "package":result.prepay_id,     
           "signType":result.signType,     
           "paySign":result.paySign
        }, function(res){
               
               //可是程序走到這一步
               //打印出 res.err_msg的結(jié)果直接就是:get_brand_wcpay_request:fail
               //只能在手機(jī)上調(diào)試,無法查看具體錯誤原因
               alert(res.err_msg);
            // 使用以上方式判斷前端返回,
            //微信團(tuán)隊(duì)鄭重提示:res.err_msg將在用戶支付成功后返回ok,
            //但并不保證它絕對可靠。
            if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                alert("支付成功!")
            } else if(res.err_msg == "get_brand_wcpay_request:cancel") {
                alert("支付取消!");
            } else if(res.err_msg == "get_brand_wcpay_request:fail") {
                alert("支付失敗!");
            }
        }
    );
}

if (typeof WeixinJSBridge == "undefined"){
   if( document.addEventListener ){
       document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
   }else if (document.attachEvent){
       document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
       document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
   }
}else{
   onBridgeReady();
}

希望各位大神看看有什麼問題,具體如果那裡沒有描述清楚,請指出來我給解釋或貼代碼

補(bǔ)充:配置的支付授權(quán)目錄和付款頁面的路徑是一直的,這個是經(jīng)過仔細(xì)確認(rèn)一直的,沒有任何問題!

巴扎黑
巴扎黑

全部回覆(4)
為情所困

親,你的微信支付授權(quán)URL配置的是否正確?另外,http和https一定要嚴(yán)格配對喲

曾經(jīng)蠟筆沒有小新

調(diào)統(tǒng)一下單成功嗎?要是成功的話,看看簽章對不對,再看看支付目錄配置。微信回傳的提示具體是什麼?

phpcn_u1582

這種情況下,不是簽章錯誤,就是支付路徑不對。
在失敗時,把整個 res 打出來,微信回傳有其他資訊的,不僅僅有err_msg

你的package參數(shù)是不是不對,參數(shù)值是prepay_id=xxx

小葫蘆

timestamp: 0, // 支付簽名時間戳,注意微信jssdk中的所有使用timestamp欄位均為小寫。但最新版的付款後臺產(chǎn)生簽章使用的timeStamp欄位名需大寫其中的S字元

不知道是不是欄位大小寫原因?

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板