jquery-weui微信支付報錯問題解決
微信支付報錯問題解決
支付回撥各種報錯,openID、APPID等等原因,列印 console.log(typeof(res.jsApiParameters));
重點把string轉化為Object就ok了。
每次支付請求會生成訂單,根據對應訂單號,修改資料庫訂單狀態才可以完成。
{
"appId":"wx1b35c*********3",
"nonceStr":"nam97dundxjiisasumrevju*******",
"package":"prepay_id=wx***",
"signType":"MD5",
"timeStamp":"1**",
"paySign":"7CD01*****9"
}
//獲取充值套餐
$.ajax({
type: `post`,
url: api.domain + api.recharge_package,
data: {
"access_token": access
},
success : function(res) {
if (res.status == 1) {
var n = res.data.length;
var menu = [];
if(n < 1){
return false;
}
for(var i = 0;i < n;i++){
menu.push(res.data[i].id);
var selected;
//設定預設套餐與價格
if(i == 0){
selected = ` btn-active`;
$(`#money`).html(res.data[i].price);
} else {
selected = ``;
}
var $list = $(`<span class="weui-btn btn-check js-pay ` + selected + `" title="` +
res.data[i].id + `" price="` + res.data[i].price + `">` + res.data[i].name + `</span>`);
$list.appendTo($(`#parent`));
}
$(`#count`).val(menu);
} else {
$.toptip(res.msg,`cancel`);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(`XMLHttpRequest.status = ` + XMLHttpRequest.status);
console.log(`XMLHttpRequest.readyState = ` + XMLHttpRequest.readyState);
console.log(`textStatus = ` + textStatus);
}
});
//點選套餐
$(`body`).on(`click`, `.js-pay`, function(){
var param_b = $(this).attr(`title`);
var menu = $(`#count`).val().split(`,`);
for(var p = 0; p < menu.length;p++) {
if(menu[p] == param_b) {
$(`span[title="` + menu[p] + `"]`).addClass(`btn-active`);
} else {
$(`span[title="` + menu[p] + `"]`).removeClass(`btn-active`);
}
}
$(`#money`).html($(this).attr(`price`));
});
//充值付費
$("#pay").click(function() {
var package = $(`.btn-active`).attr(`title`);
$.ajax({
type: `post`,
url: `/recharge/pay`,
data: {
"access_token": access,
"package_id": package
},
success : function(res) {
console.log(typeof(res));
console.log(res.jsApiParameters);
console.log(typeof(res.jsApiParameters));
if (res.status == 1) {
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener(`WeixinJSBridgeReady`, jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent(`WeixinJSBridgeReady`, jsApiCall);
document.attachEvent(`onWeixinJSBridgeReady`, jsApiCall);
}
}else{
jsApiCall($.parseJSON(res.jsApiParameters),res.order_no);
}
} else {
$.toptip(res.msg,`cancel`);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(`XMLHttpRequest.status = ` + XMLHttpRequest.status);
console.log(`XMLHttpRequest.readyState = ` + XMLHttpRequest.readyState);
console.log(`textStatus = ` + textStatus);
}
});
});
//呼叫微信JS api 支付
function jsApiCall(n,order_no){
console.log(n);
WeixinJSBridge.invoke(
`getBrandWCPayRequest`,
n,
function(res){
WeixinJSBridge.log(res.err_msg);
//alert(res.err_code+res.err_desc+res.err_msg);
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
paySuccess(order_no);
}else if(res.err_msg == "get_brand_wcpay_request:cancel"){
$.toast("支付取消", "cancel");
}else{
$.toast("支付失敗", "forbidden");
} // 使用以上方式判斷前端返回,微信團隊鄭重提示:res.err_msg將在使用者支付成功後返回 ok,但並不保證它絕對可靠。
}
);
}
//微信回撥成功,跳轉成功頁面
function paySuccess(n){
$.ajax({
type: `post`,
url: api.domain + api,
data: {
"access_token": access,
"order_no": n
},
success : function(res) {
if (res.status == 1) {
location.href = `/recharge/success`;
} else {
$.toptip(res.msg,`cancel`);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(`XMLHttpRequest.status = ` + XMLHttpRequest.status);
console.log(`XMLHttpRequest.readyState = ` + XMLHttpRequest.readyState);
console.log(`textStatus = ` + textStatus);
}
});
}
相關文章
- 微信小程式支付全問題解決微信小程式
- 微信支付錯誤兩個問題的解決:curl出錯,錯誤碼:60
- 解決 Inkscape 報錯 Duplicate 問題
- Java 微信支付通知本地除錯解決辦法 Java 微信支付通知如何除錯Java除錯
- 解決eslint空格報錯等問題EsLint
- 設定autotrace的報錯問題解決
- 解決cookies儲存中文報錯問題Cookie
- 安裝vue/cli報錯問題解決Vue
- 使用API28報錯問題及解決API
- matplotlib中文報錯問題及解決方案
- mac 下PyCharm執行報錯問題解決MacPyCharm
- 微信支付返回-1,問題排查
- 微信APP支付-簽名問題APP
- 微信支付技術解決方案
- 解決MMM啟動監控報錯的問題
- 解決vue使用Sass時候的報錯問題Vue
- vm安裝ubuntu後,update報錯問題解決Ubuntu
- 解決mysql_query()報錯的相關問題MySql
- 開發微信小程式之HTTPS報錯常見問題彙總及解決方法微信小程式HTTP
- 解決iOS微信H5支付跳轉微信後不返回App問題(Swift-WKWebview)iOSH5APPSwiftWebView
- ngrok+express解決本地環境中微信介面除錯問題Express除錯
- Uncaught Error: Bootstrap‘s JavaScript requires jQuery報錯問題解決ErrorbootJavaScriptUIjQuery
- 解決element---el-dialog--關閉報錯問題
- Delta Magisk root後解決adb的報錯問題
- 微信登入-6問題解決方案
- react解決ios微信分享的問題ReactiOS
- 解決Vagrant報錯Warning: Authentication failure. Retrying問題AI
- PHP報錯getimagesize(): SSL operation failed with code 1問題解決方案PHPAI
- 使用npm i報錯node-sass失敗問題解決NPM
- 記錄解決HttpServletResponse在引數報錯的問題HTTPServlet
- 若依框架匯入阿里OSS報錯問題解決方案框架阿里
- iOS 微信支付SDK與微信友盟分享兩者同時整合時,出現的問題與解決之路。iOS
- 關於Unsupported major.minor version 52.0報錯問題解決方案
- win7_iis報500.19和500.21錯誤問題解決Win7
- Doris建立表報錯Failed to find enough host with storage medium問題解決AI
- MongoDB報錯"not authorized on root to execute command"問題解決一例MongoDBZed
- 10G RAC DBCA報錯 ORA-27504問題的解決
- 解決 ngrok 的 Domain 錯誤問題AI