zoukankan      html  css  js  c++  java
  • uni-app

    App支付、小程序支付、h5(微信端)支付

    APP支付(内置)

    appPay.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
     * 5+App支付,仅支持支付宝以及微信支付
     *
     * 支付宝Sdk集成,微信sdk未集成
     *
     * @param : provider(String) ->被支付方
     * @param : orderInfo(String) ->订单信息
     * @param : success,fail(Json) ->回调后的json信息
     *
     */
     
     
    const mPay = (provider, orderInfo, success, fail) => (
        uni.requestPayment({
            provider,
            orderInfo, //订单数据
            success(res) {
                success(JSON.stringify(res));
            },
            fail(err) {
                fail(JSON.stringify(err));
            }
        });
    )
     
    export default mPay;

    微信小程序支付(内置)

    mPay.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    /**
     * 微信小程序支付,仅支持微信支付(后续可能集成网页支付宝支付web-view)
     *
     * @param : provider(String) ->付款商家
     * @param : timeStamp(String) ->时间戳(当前支付时间)
     * @param : nonceStr(String) ->支付密匙
     * @param : packages(String) ->支付id
     * @param : signType(String) ->加密方式(默认MD5)
     * @param : paySign(String)
     *
     *
     *
     * 小程序支付调用
     *
     * wePay(provider, timeStamp, nonceStr, packages, signType, paySign,res=>{},fail=>{})
     */
     
    const wePay = (provider, timeStamp, nonceStr, packages, signType, paySign,success,fail) => (
        uni.requestPayment({
            provider,
            timeStamp,
            nonceStr,
            package: packages,
            signType,
            paySign,
            success(res) {
                success(JSON.stringify(res));
            },
            fail(err) {
                fail(JSON.stringify(err))
            }
        });
    )
     
     
     
    export default wePay;

    公众号支付(如果使用微信官方weixin-js-sdk,请使用跨端兼容方案

    (需要引入模块:jweixin-module),详情见yarn以及npm安装

    pPay.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    /*
        微信支付方法(uni-app h5)适用
        获取微信加签信息
        @param{data}:获取的微信加签
        @param{res}:成功回调
        @param{fail}:失败回调
         
        @warn:因为package为严格模式下的保留字,不能用作变量.
        @use
         
            wPay({
                appId,
                timeStamp,
                nonceStr,
                signature,
                package,
                paySign
            },res=>{
                console.log('调用成功!');
            },fail=>{
                console.log('调用失败!');
            })
    */
    const wx = require('jweixin-module');
    const wexinPay = (data, cb, errorCb) => {
     
        let [appId, timestamp, nonceStr, signature, packages, paySign] = [data.appId, data.timeStamp, data.nonceStr, data.signature,
            data.package, data.paySign
        ];
     
        wx.config({
            debug: false// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId, // 必填,公众号的唯一标识
            timestamp, // 必填,生成签名的时间戳
            nonceStr, // 必填,生成签名的随机串
            signature, // 必填,签名,见附录1
            jsApiList: ['chooseWXPay'// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
        });
     
        wx.ready(function() {
            wx.chooseWXPay({
                timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                nonceStr, // 支付签名随机串,不长于 32 位
                'package': packages, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
                signType: 'MD5'// 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
                paySign, // 支付签名
                success(res) {
                    // 支付成功后的回调函数
                    cb(res);
                },
                fail(res) {
                    errorCb(res);
                }
            });
        });
     
        wx.error(function(res) {
            // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
            /*alert("config信息验证失败");*/
        });
    }
     
    export default wexinPay;
  • 相关阅读:
    函数/方法的活动对象
    Function 详解(一)
    两栏自适应布局延展到多栏自适应布局
    height百分比以及高度自适应问题
    clearfix为什么用display:table,而不用display:block
    Nodejs写的搬家工具知识分享
    终于把自己多年前的百度文章搬到博客园了
    用Razor来生成模板 using razor for template
    一个request,但是controller被执行了多次的问题
    33个好用的图片轮显 jquery图片轮显
  • 原文地址:https://www.cnblogs.com/ydam/p/11405271.html
Copyright © 2011-2022 走看看