微信小程序:

wx.requestPayment({
							provider: 'wxpay', //支付   类型-固定值
							appId: res.data.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
							nonceStr: res.data.nonceStr, // 随机字符串
							package: res.data.package, // 固定值
							timeStamp: res.data.timeStamp, // 时间戳(单位:秒)
							signType: res.data.signType, // 签名,这里用的 MD5/RSA 签名
							paySign: res.data.paySign,
							success: function(res) {
								uni.showToast({
									title: '支付成功',
									duration: 3000,
									icon: 'none',
								});
							},
							fail: function(err) {
								uni.showToast({
									title: '支付失败',
									duration: 3000,
									icon: 'none',
								});
							}
						});

res内的东西全是向后台返回的,后台创建订单后向前台返回订单信息,然后前台拿到订单信息后向微信调起支付

APP

微信:

同样的,后台返回给res后直接向微信发起支付

this.paymentWechatHandler(res.data)


//订单回调,进行微信支付
			paymentWechatHandler(paymentParams) {
				// 使用微信支付接口
				// paymentParams 后台返回字段 时间戳、随机字符串、签名等都是后台返回的
				uni.requestPayment({
					"provider": 'wxpay', // 服务商
					"orderInfo": {
						"appid": paymentParams.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
						"noncestr": paymentParams.nonceStr, // 随机字符串
						"package": paymentParams.package, // 固定值
						"partnerid": paymentParams.partnerid, // 微信支付商户号
						"prepayid": paymentParams.prepayid, // 统一下单订单号 
						"timestamp": paymentParams.timeStamp, // 时间戳(单位:秒)
						"sign": paymentParams.paySign, // 签名,这里用的 MD5/RSA 签名
					},
					success: () => {
						// 支付成功 执行想要的操作

					},
					fail: (err) => {
						console.log(err);
						uni.hideLoading();
					},
				});
			},

支付宝:

支付宝的比较简单,只需要一个orderInfo就可以拉起

this.paymentAliHandler(res.data)

//订单回调,进行支付宝支付
			paymentAliHandler(paymentParams) {
				// plus.runtime.openURL(paymentParams.qrCode)
				// 使用支付宝支付接口
				// paymentParams 后台返回字段 支付宝小程序支付相对简单,只需要传这两个参数即可
				uni.requestPayment({
					provider: 'alipay',
					orderInfo: paymentParams.orderInfo,
					success: (res) => {
						//支付成功后的操作
						uni.hideLoading();
					},
					fail: (err) => {
						//支付失败后的操作
						uni.hideLoading();
					},
				});
			},

注,以上方法只能用于原生支付,若是后台使用其他第三方支付的话以上方法不适用,推荐跳到小程序进行支付

跳转支付宝小程序支付:

saId=10000007 打开支付宝扫一扫功能
qrcode 请求网址(二维码网址)

Alipay(data) {

				// plus.runtime.openURL(data.qrCode);
				let url = `alipays://platformapi/startapp
saId=10000007&qrcode=${encodeURI(data.qrCode)}?_s=web-other`;
				let platform = uni.getSystemInfoSync().platform; //获取平台判断
				if (platform == 'android') {
					plus.runtime.openURL(url)
				} else if (platform == 'ios') {
					plus.runtime.launchApplication({
						action: url
					})
				}
			},

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐