uni-app app平台支付宝支付

一、App平台支付流程

流程:支付平台功能申请 -> manifest.json 里配置支付参数 -> uni-app 里调用 API 进行支付

二、支付宝App支付功能申请

登录支付宝账号,创建应用接入支付宝App支付能力,包括以下步骤:

  1. 创建应用(获取appid)
  2. 开通App支付功能
  3. 配置密钥(获取公钥、私钥)

具体可参考支付宝官方文档: App支付快速接入

三、在uni-app中manifest.json中:App SDK配置支付

  1. manifest.json - App模块权限选择 中勾选 payment(支付)
  2. manifest.json - App SDK配置 中,勾选需要的支付平台,目前有微信支付、支付宝支付、苹果应用内支付(IAP),其中微信支付需要填写从微信开放平台获取的AppID
    uni-app app平台支付宝支付_第1张图片
  3. 这些配置需要打包生效,真机运行仍然是HBuilder基座的设置,可使用自定义基座调试。离线打包请参考离线打包文档在原生工程中配置。
  4. 配置并打包后,通过uni.getProvider可以得到配置的结果列表,注意这里返回的是manifest配置的,与手机端是否安装微信、支付宝无关。

如果手机端未安装支付宝,调用时会启动支付宝的wap页面登陆,如果已安装相应客户端,会启动其客户端登陆。

在uni-app中manifest.json中:源码视图配置
uni-app app平台支付宝支付_第2张图片
uni-app app平台支付宝支付_第3张图片

//支付宝支付
uni.getProvider({
	service:'payment'	,//获取服务供应商
	success:(res)=>{
		console.log(res.service);	//服务类型:payment
		console.log(res.provider);	//不同服务类型下可能的取值:["alipay","wxpay"]
		if(res.provider.indexOf('alipay') != -1){
			//服务提供商(从服务供应商中获取,是否包含支付宝支付)
			//调取后台接口,获取支付宝支付的订单号
			this.$Z.post(this.$url+'/UserOrderNumber',{
				//你要传给后台的参数(具体看后台要什么参数)
			},{}).then(res=>{
				console.log('支付宝订单号',res)
				//从后台获取的宝支付的订单号
				let orderData = res.data.orderNumber
				//调取后台接口,获取支付宝支付的订单数据
				this.$Z.post(this.$url+'/pay/GroupPay',{
					//把订单号与支付方式传给后台(具体看后台要什么参数)
				},{}).then(res=>{
					let orderInfo = res.data;	//从后台返回的支付宝订单数据
					//统一各平台的客户端支付API
					uni.requestPayment({
					    provider: 'alipay',	//服务提供商(支付宝)(服务提供商,通过uni.getProvider获取)
					    orderInfo: orderInfo, //后台返回的支付宝订单数据
					    success(res){
					        console.log('success:' + JSON.stringify(res));
					    },
					    fail(err){
					        console.log('fail:' + JSON.stringify(err));
					    }
					});
				})
			})
		}
	}
})

上述代码中调取接口方式this.$Z.post()是小编封装好的,详情请参考小编之前文章:uni-app中调取接口的三种方式与封装uni.request()

你可能感兴趣的:(uni-app,web,app,uni-app)