uni-app - 支付(app支付、小程序支付、h5(微信端)支付)

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

APP支付(内置)

appPay.js

 

 

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值