uni-app中使用微信jssdk

引入微信jssdk模块:npm install jweixin-module --save

 

import request from '@/utils/request'
var wx = require('jweixin-module')

function createOrder(data) { // 获取权限配置
	return request({
		url: '/api/open/wx/jsapi-config',
		method: 'post',
		data: {
			url: window.location.href.split('#')[0]
		}
	})
}

const wxApi = {
	/**
	 * [wxRegister 微信Api初始化]
	 * @param  {Function} callback [ready回调函数]
	 */
	wxRegister(callback) {
		// 注册微信权限验证
		createOrder().then(({
			code,
			data,
			msg
		}) => {
			let newData = {}
			if (code === 200) {
				newData = data
				newData.debug = false
				newData.jsApiList = ['chooseWXPay']
				wx.config(newData)
			}
		}).catch((error) => {
			console.log(error)
		})
		wx.ready((res) => {
			// 如果需要定制ready回调方法
			if (callback) {
				callback()
			}
		})
	},
	/**
	 * [ShareAppMessage 微信支付]
	 * @param {[type]} option [分享信息]
	 * @param {[type]} success [成功回调]
	 * @param {[type]} error   [失败回调]
	 */
	chooseWXPay(option) {
		wx.chooseWXPay({
			timestamp: option.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
			nonceStr: option.nonceStr, // 支付签名随机串,不长于 32 位
			package: option.packageStr, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
			signType: option.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
			paySign: option.paySign, // 支付签名
			appId: option.appId,
			success: function(res) {
				// 支付成功后的回调函数
				option.success()
			},
			fail(res) {
				console.log(res)
				alert(res)
			}
		})
	},
	/**
	 * [ShareAppMessage 微信关闭]
	 */
	closeWindow() {
		wx.closeWindow()
	}
}
export default wxApi

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值