unipay为uniCloud开发者提供了简单、易用、统一的支付能力封装。让开发者无需研究支付宝、微信等支付平台的后端开发、无需为它们编写不同代码,拿来即用,屏蔽差异。
uni-app前端已经封装的全端支付 api uni.requestPayment,现在服务端也封装好了unipay for uniCloud,从此开发者可以极快的完成前后一体的支付业务。
目前已封装 App 端(微信支付和支付宝支付)、微信小程序、支付宝小程序的支付能力。
unipay是开源 sdk,可放心使用。本插件还包含示例工程,配置自己在微信和支付宝申请的相关配置后即可运行。
为了更好的体验支付流程可以在插件市场导入unipay的示例项目快速体验,插件市场 unipay (opens new window)。

1.首先使用uniCloud配置云函数(云函数的创建请参考官网)
请添加图片描述

2.从插件市场导入uni-pay,导入后,右键云函数getOrderInfo管理公共模块,勾选uni-pay
请添加图片描述

3.getOrderInfo函数的配置,记得引入unipay,下面是配置支付的配置信息请添加图片描述

4.在业户逻辑调用云函数获取微信的预订单号等信息

uniCloud.callFunction({
					name: 'getOrderInfo',
					data: {
						openId: this.GetUserInfor.openId,
						mchId: '',//商户号
						key: '',//商户平台key
						orderId: this.orderId,
						timestamp: this.timestamp
					}
				})
				.then(res => {
				//res为微信预订单信息
					console.log('209', res);
					uni.requestPayment({
						// #ifdef APP-PLUS
						provider: selectedProvider, // App端此参数必填,可以通过uni.getProvider获取
						// #endif
						// #ifdef MP-WEIXIN
						...res.result.orderInfo,
						// #endif
						// #ifdef APP-PLUS || MP-ALIPAY
						orderInfo: res.result.orderInfo,
						// #endif
						...res.result.orderInfo,
						success: (success)=>  {
							
							let time = uni.$u.timeFormat(this.timestamp, 'yyyy-mm-dd hh:MM:ss');
							//支付成功后调用后端api
							this.$api.postInsertWeChatPayInfo({})
								.then(res => {
									console.log(res);
								});
						},
						fail: (err)=>  {
							console.log(err);
							
						}
					});
				})
				.catch(err => {
					console.log(err);
				});
			// wx.requestPayment()
		}

请添加图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐