引入cordova插件
require("$UI/system/lib/cordova/cordova");
require("cordova!cordova-plugin-device");
require("cordova!com.justep.cordova.plugin.weixin.v3");
require("cordova!com.justep.cordova.plugin.alipay");
require("cordova!cordova-plugin-geolocation");
require("cordova!com.justep.cordova.plugin.baidulocation");
require("cordova!cn.jpush.phonegap.JPushPlugin");
require("cordova!com.justep.cordova.plugin.unionpay");
支付代碼
/**
支付失敗參數(shù):
<0 支付失敗 按照不同支付類(lèi)型 返回值不同
0 貨到付款
1 用戶(hù)采用微信支付付款完成
2 用戶(hù)采用微信應(yīng)用中js-sdk支付付款完成
3 用戶(hù)采用支付寶支付付款完成
4 用戶(hù)采用銀聯(lián)支付付款完成
....未完待續(xù)
**/
Model.prototype.payOrder = function(payType,orderID) {
var payDtd = $.Deferred();
// var payType = this.comp('payTypeSelect').val();
if (payType === "faceToFace" || payType === "") {
payDtd.resolve(0);
} else if (payType === "weixin") {
this.payOrderByWeixin(payDtd, orderID);
} else if (payType == "alipay") {
this.payOrderByAlipay(payDtd, orderID);
} else if (payType == "weixinJSSDK") {
this.payOrderByWeixinJSSDK(payDtd,orderID);
} else if (payType == "union") {
this.payOrderByUnion(payDtd,orderID);
} else {
payDtd.reject(0);
}
return payDtd.promise();
};
/**
-23 當(dāng)前環(huán)境不支持微信支付
-20 微信支付失敗
*/
Model.prototype.payOrderByWeixinJSSDK = function(payDtd, orderID) {
if (!navigator.WxApi) {
payDtd.reject(-33);
return;
}
var tradeNo = orderID;
var notifyUrl = location.origin + "/baas/weixin/weixin/notify";
this.wxApi.chooseWXPay({
body : "x5外賣(mài)",
mchId : "1228613502",
notifyUrl : notifyUrl,
outTradeNo : tradeNo,
totalFee : "1"
}).done(function() {
payDtd.resolve(2);
}).fail(function() {
payDtd.reject(-20);
});
};
/**
* 9000 操作成功。
* 4000 系統(tǒng)異常。
* 4001 數(shù)據(jù)格式不正確。
* 4003 該用戶(hù)綁定的支付寶賬戶(hù)被凍結(jié)或不允許支付。
* 4004 該用戶(hù)已解除綁定。
* 4005 綁定失敗或沒(méi)有綁定。
* 4006 訂單支付失敗。
* 4010 重新綁定賬戶(hù)。
* 6000 支付服務(wù)正在進(jìn)行升級(jí)操作。
* 6001 用戶(hù)中途取消支付操作。
*
當(dāng)請(qǐng)求支付已經(jīng)到alipay應(yīng)用但是失敗 錯(cuò)誤編碼 以 -33 + message(message是非常大的整數(shù)一般都3000+)
-33 當(dāng)前環(huán)境不支持支付寶支付
-30 支付寶支付支付請(qǐng)求被拒絕
*/
Model.prototype.payOrderByAlipay = function(payDtd, orderID) {
console.log('使用alipay支付');
var self = this;
if (!navigator.alipay) {
payDtd.reject(-33);//
return;
}
var notifyUrl = location.origin;
var tradeNo = orderID;
var alipay = navigator.alipay;
alipay.pay({
"seller" : "13697170643", // 賣(mài)家支付寶賬號(hào)或?qū)?yīng)的支付寶唯一用戶(hù)號(hào)
"subject" : self.params.bname, // 商品名稱(chēng)
"body" : '', // 商品詳情
// "price" : self.params.price, // 金額,單位為RMB
"price" : 0.01,
"tradeNo" : self.params.ordernumber, // 唯一訂單號(hào)
"timeout" : "30m", // 超時(shí)設(shè)置
"notifyUrl" : notifyUrl
}, // 服務(wù)器通知路徑
function(message) {
var responseCode = parseInt(message);
if (responseCode === 9000) {
payDtd.resolve(3);
console.log('支付寶付款成功');
} else if (!isNaN(responseCode)) {
payDtd.reject((-33) + responseCode);
console.log('當(dāng)前環(huán)境不支持支付寶支付');
} else {
payDtd.reject(-30);
console.log('支付寶支付支付請(qǐng)求被拒絕');
}
}, function(msg) {
payDtd.reject(-30);
console.log('支付寶支付支付請(qǐng)求被拒絕');
});
};
/**
當(dāng)請(qǐng)求支付已經(jīng)到weixin應(yīng)用但是失敗 錯(cuò)誤編碼 以 -13 + message(message如果為weixin異常一定為負(fù)數(shù))
-13 當(dāng)前環(huán)境不支持微信支付
-12 微信獲取accessToken失敗
-11 微信生成預(yù)支付訂單失敗
-10 微信支付請(qǐng)求被拒絕
*/
Model.prototype.payOrderByWeixin = function(payDtd, orderID) {
var self = this;
if (!navigator.weixin) {
payDtd.reject(-13);
return;
}
var notifyUrl = location.origin;
var traceID = justep.UUID.createUUID();
var traceNo = orderID;
var weixin = navigator.weixin;
weixin.generatePrepayId({
"body" : self.params.bname, // 商品名稱(chēng)
"feeType" : "1",//貨幣類(lèi)型,1表示人民幣
"notifyUrl" : notifyUrl,//后臺(tái)接口
// "totalFee" : self.params.price, // 金額,單位為RMB
"totalFee" : "0.01",
"traceId" : traceID, //猜測(cè)是商戶(hù)賬號(hào)
"tradeNo" : orderID // 唯一訂單號(hào)
}, function(prepayId) {
weixin.sendPayReq(prepayId, function(message) {
var responseCode = parseInt(message);
if (responseCode === 0) {
payDtd.resolve(1);
//支付成功
} else if (!isNaN(responseCode)) {
payDtd.reject((-13) + responseCode);
} else {
payDtd.reject(-10);
}
}, function(message) {
justep.Util.hint("微信支付失敗!");
payDtd.reject(-10);
});
}, function(message) {
justep.Util.hint("微信支付失敗!");
payDtd.reject(-11);
});
};
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。