美文网首页
WeX5支付宝微信付款

WeX5支付宝微信付款

作者: AdrianRD | 来源:发表于2016-10-19 16:24 被阅读122次

    引入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");
    

    支付代码

        /**
            支付失败参数:
                   <0 支付失败 按照不同支付类型 返回值不同
                   0 货到付款
               1 用户采用微信支付付款完成
               2 用户采用微信应用中js-sdk支付付款完成
               3 用户采用支付宝支付付款完成
               4 用户采用银联支付付款完成
              ....未完待续 
         **/
        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 当前环境不支持微信支付
            -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外卖",
                mchId : "1228613502",
                notifyUrl : notifyUrl,
                outTradeNo : tradeNo,
                totalFee : "1"
            }).done(function() {
                payDtd.resolve(2);
            }).fail(function() {
                payDtd.reject(-20);
            });
        };
    
        /** 
         * 9000 操作成功。 
         * 4000 系统异常。 
         * 4001 数据格式不正确。  
         * 4003 该用户绑定的支付宝账户被冻结或不允许支付。 
         * 4004  该用户已解除绑定。 
         * 4005  绑定失败或没有绑定。 
         * 4006  订单支付失败。 
         * 4010  重新绑定账户。  
         * 6000 支付服务正在进行升级操作。 
         * 6001 用户中途取消支付操作。
         * 
            当请求支付已经到alipay应用但是失败 错误编码 以 -33 + message(message是非常大的整数一般都3000+)  
            -33 当前环境不支持支付宝支付
            -30 支付宝支付支付请求被拒绝
         */
        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", // 卖家支付宝账号或对应的支付宝唯一用户号
                "subject" : self.params.bname, // 商品名称
                "body" : '', // 商品详情
    //          "price" : self.params.price, // 金额,单位为RMB
                "price" : 0.01,
                "tradeNo" : self.params.ordernumber, // 唯一订单号
                "timeout" : "30m", // 超时设置
                "notifyUrl" : notifyUrl
            }, // 服务器通知路径
            function(message) {
                var responseCode = parseInt(message);
                if (responseCode === 9000) {
                    payDtd.resolve(3);
                    console.log('支付宝付款成功');
                    
                } else if (!isNaN(responseCode)) {
                    payDtd.reject((-33) + responseCode);
                    console.log('当前环境不支持支付宝支付');
                } else {
                    payDtd.reject(-30);
                    console.log('支付宝支付支付请求被拒绝');
                }
            }, function(msg) {
                payDtd.reject(-30);
                console.log('支付宝支付支付请求被拒绝');
            });
        };
        /** 
            当请求支付已经到weixin应用但是失败 错误编码 以 -13 + message(message如果为weixin异常一定为负数) 
            -13 当前环境不支持微信支付 
            -12 微信获取accessToken失败
            -11 微信生成预支付订单失败
            -10 微信支付请求被拒绝
         */
        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, // 商品名称
                "feeType" : "1",//货币类型,1表示人民币
                "notifyUrl" : notifyUrl,//后台接口
    //          "totalFee" : self.params.price, // 金额,单位为RMB
                "totalFee" : "0.01",
                "traceId" : traceID,    //猜测是商户账号
                "tradeNo" : orderID     // 唯一订单号
                
            }, 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);
            });
        };
    
    

    相关文章

      网友评论

          本文标题:WeX5支付宝微信付款

          本文链接:https://www.haomeiwen.com/subject/qsznyttx.html