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);
}
});
}
相關文章
- 微信小程式支付全問題解決微信小程式
- Java 微信支付通知本地除錯解決辦法 Java 微信支付通知如何除錯Java除錯
- 微信支付返回-1,問題排查
- 微信APP支付-簽名問題APP
- 解決 Inkscape 報錯 Duplicate 問題
- 開發微信小程式之HTTPS報錯常見問題彙總及解決方法微信小程式HTTP
- 微信登入-6問題解決方案
- react解決ios微信分享的問題ReactiOS
- 解決iOS微信H5支付跳轉微信後不返回App問題(Swift-WKWebview)iOSH5APPSwiftWebView
- 解決eslint空格報錯等問題EsLint
- keycloak整合微信登陸~解決國內微信整合的問題
- iOS 微信支付SDK與微信友盟分享兩者同時整合時,出現的問題與解決之路。iOS
- 微信支付HTTPS伺服器常見問題HTTP伺服器
- 安裝vue/cli報錯問題解決Vue
- matplotlib中文報錯問題及解決方案
- Android 微信分享後留在微信,沒有回撥的問題解決方案Android
- 使用API28報錯問題及解決API
- 如何解決微信分享大圖報錯
- 微信支付,支付寶支付
- 解決vue使用Sass時候的報錯問題Vue
- Delta Magisk root後解決adb的報錯問題
- 解決MMM啟動監控報錯的問題
- 解決element---el-dialog--關閉報錯問題
- vue+微信支付目錄+JSSDK簽名解決方案VueJS
- 微信H5支付 驗籤失敗 問題H5
- 支付寶、微信支付(.NET)
- 微信小程式報錯微信小程式
- 微信轉錯賬怎麼辦?教你一個微信轉錯賬的解決方法
- Jenkins報錯'Gradle build daemon disappeared unexpectedly'的問題解決JenkinsGradleUIAPP
- 解決fastjson反序列化時報錯的問題ASTJSON
- 記錄解決HttpServletResponse在引數報錯的問題HTTPServlet
- Uncaught Error: Bootstrap‘s JavaScript requires jQuery報錯問題解決ErrorbootJavaScriptUIjQuery
- 配置微信公眾號,token錯誤解決
- 關於微信支付,支付寶支付
- 微信JSAPI支付JSAPI
- 微信App支付APP
- 微信公眾號支付IOS系統能夠喚起,安卓系統不能喚起的問題解決iOS安卓
- 微信域名防紅防封系統,輕鬆解決微信推廣域名被遮蔽問題