WeX5支付宝微信付款

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容