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

APP支付(内置)

appPay.js

// 支付宝
function startToPayAB(orderInfoStr, fn) {
	console.log('支付宝支付==111' + JSON.stringify(orderInfoStr))
	var that = this;
	var param = {
		success: function(e) {
			fn(true);
		},
		fail: function(e) {
			fn(false);
		}
	};
	param.provider = "alipay"
	param.orderInfo = orderInfoStr;
	uni.requestPayment(param)
}

// 微信
function startToPayWx(payInfo, fn) {
	console.log('微信支付==111' + JSON.stringify(payInfo))
	var param = {
		success: function() {
			fn(true);
		},
		fail: function(err) {
			fn(false);
		}
	};
	param.provider = "wxpay"
	param.orderInfo = JSON.stringify({
		appid: payInfo.appid,
		prepayid: payInfo.prepayid,
		timestamp: payInfo.timeStamp,
		noncestr: payInfo.nonceStr,
		package: payInfo.package,
		sign: payInfo.sign,
		partnerid: payInfo.partnerId
	})
	uni.requestPayment(param)
}

module.exports = {
	startToPayAB: startToPayAB,
	startToPayWx: startToPayWx
}

微信小程序支付(内置)

mPay.js

/**
 * 微信小程序支付
 * @param : provider(String) ->付款商家
 * @param : timeStamp(String) ->时间戳(当前支付时间)
 * @param : nonceStr(String) ->支付密匙
 * @param : packages(String) ->支付id
 * @param : signType(String) ->加密方式(默认MD5)
 * @param : paySign(String)
 * 小程序支付调用
 * startToPayWx(payInfo, fn)
 */
 
function startToPayWx(payInfo, fn) {
	console.log('微信支付------------------', JSON.stringify(payInfo))
	var param = {
		provider: "wxpay",
		timeStamp: String(Date.now()),
		nonceStr: payInfo.nonceStr,
		package: payInfo.package,
		signType: 'MD5',
		paySign: payInfo.paySign,
		success: function() {
			fn(true);
		},
		fail: function(err) {
			fn(false);
		}
	};

	uni.requestPayment(param)
}
 
 
 
export default startToPayWx;

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

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

pPay.js

/*
    微信支付方法(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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

织_网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值