Mui 微信支付支付宝支付

Posted 橘子味儿的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mui 微信支付支付宝支付相关的知识,希望对你有一定的参考价值。

 

利用mui 发起手机微信和支付宝支付


 

 

payStatement :调起微信支付接口的参数

参考文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2


 

  /**
     * 支付
     * @param {Object} payType  支付类型
     * @param {Object} payStatement  调起支付宝或微信的statment支付订单信息
     */
    paywx(payType, payStatement) {

        /***判断支付通道****/
        //最终的支付通道
        var channel;
        /***
         * 用于标识支付通道: 
         * "alipay" - 表示支付宝;
         * "wxpay" - 表示微信支付; 
         */
        var payId; //支付标识
        if(payType == "ALIPAY_android") {
            payId = "alipay";
        } else {
            payId = "wxpay";
        }

        // 取出支付宝和微信的支付通道
        plus.payment.getChannels(function(channels) {
            mui.each(channels, function(index, element) {
                if(element.id == payId) {
                    channel = element;
                }
            });
            if(!channel) {
                mui.toast(\'获取支付通道失败,请重试!\');
            }
            setTimeout(function() {
                mui.confirm(\'支付已完成\', \'提示\', [\'支付遇到问题\', \'支付完成\'], function(e) {
                    if(e.index == 1) {
                        app.tokenAjax_Get({
                            url: API_URL_GET_ORDER_STATUS + dataSource.orderId,
                            success: function(result) {
                                if(result.status == 1) {
                                    var status = result.data;
                                    if(status == "JUST_CREATED") {
                                        mui.toast(\'订单未支付\');
                                    } else if(status == \'CANCEL\') {
                                        mui.toast(\'订单已被取消\');
                                        //清除定时器
                                        clearInterval(timer);
                                        //打开
                                        plus.webview.currentWebview().close();
                                        plus.webview.getWebviewById("pay").close();
                                        plus.webview.getWebviewById("order").close();
                                    } else {
                                        //清除定时器
                                        clearInterval(timer);
                                        //打开
                                        app.openRefreshOrderListPage();
                                    }
                                }
                            },
                            error: function(xhr) {
                                app.httpError(xhr.status);
                            }
                        });
                    }
                }, \'div\')
            }, 3000);
            //发起支付
            plus.payment.request(channel, payStatement, function(result) {
                mui.toast(\'支付完成\');
                /**
                 *查询订单状态是否已支付
                 * 轮询查询订单状态
                 * 
                 */
                var timer1 = setInterval(function() {
                    app.tokenAjax_Get({
                        url: API_URL_GET_ORDER_STATUS + dataSource.orderId,
                        success: function(result) {
                            if(result.status == 1) {
                                var status = result.data;
                                if(status == "JUST_CREATED") {
                                    mui.toast(\'订单未支付\');
                                } else if(status == \'CANCEL\') {
                                    mui.toast(\'订单已被取消\');
                                    //清除定时器
                                    clearInterval(timer);
                                    clearInterval(timer1)
                                    //打开
                                    plus.webview.currentWebview().close();
                                    plus.webview.getWebviewById("pay").close();
                                    plus.webview.getWebviewById("order").close();
                                } else {
                                    //清除定时器
                                    clearInterval(timer);
                                    clearInterval(timer1)
                                    //打开
                                    app.openRefreshOrderListPage();
                                }
                            }
                        },
                        error: function(xhr) {
                            app.httpError(xhr.status);
                        }
                    });
                }, 1000);

            }, function(error) {
                console.log(JSON.stringify(error));
                mui.toast("支付失败");
            });

        }, function(e) {
            mui.toast("获取支付通道列表失败:" + e.message);
        });

    }

 

更多错误信息请参考支付(Payment)规范文档:http://www.html5plus.org/#specification#/specification/Payment.html

 

注意: (  微信支付提示{"code":-100,"message":"[payment微信:-1]General errors"}  )

  • 微信支付安卓不支持真机调试
  • 需要打包到手机测试, 打包测试需要使用自己的私有证书打包apk

 

以上是关于Mui 微信支付支付宝支付的主要内容,如果未能解决你的问题,请参考以下文章

mui实现支付宝支付功能

spring_boot_pay支付宝,微信,银联支付详细代码案例

微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付)

***单文件搞定微信支付和支付宝支付

apicloud含有微信支付。支付宝支付和苹果内购的代码

微信支付宝各种支付退款