字节抖音小程序,使用 uniapp 调起内置支付

字节抖音小程序,使用 uniapp 调起内置支付

第一步:提交订单

后端通过抖音预下单接口,提交支付订单信息。

预下单接口_小程序_抖音开放平台预下单接口 提交支付订单信息。 ## 使用限制 无 ## 接口说明 预下单接口需要保证同一app_id下每笔订单的out_order_no是唯一的。同一订单(app_id,out_order_no相同)重复请求需要保持请求参数一致,否则接口会报错拦截。沙盒环境使用说明详见担保支付https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/pay后端拿到抖音返回的数据格式是 string ,如果后端转换了数据格式为对象,前端拿到数据还需要拼接成抖音支付需要的 string 格式,其实可以直接返回字符串给前端,前端直接拿来调用支付即可

第二步:调用支付

javascript 复制代码
orderString: "{\"order_token\":\"CgwIARDPKBjKMCABKAESTgpMjyesuDMrdbGEYMdZMJa6lipo/NLLDfJufCDrwNnXUfbIoLoaX/1NKKCzuapPa4p0qj8ogKTO8tRnNoEnxbfVddD6zII4CuekMexkgxoA.W\",\"order_id\":\"7259313669782358306\"}"

调用抖音支付,抖音小程序所需要的 orderInfo 字段必须是 string 类型的数据格式,如上所示。

javascript 复制代码
onShow() {
	uni.getProvider({
		service: 'payment',
		success: function(res) {
			uni.setStorageSync('providerpayment', res.provider[0]);
		}
	});
},
javascript 复制代码
onLoad(option) {
	// #ifdef MP-TOUTIAO
	if (option.orderString) {
		this.opratePay(JSON.parse(option.orderString));
	}
	// #endif
},

methods: {
    opratePay(orderString, orderNo) {
		let _this = this;
		//支付
		uni.requestPayment({
			provider: uni.getStorageSync('providerpayment'),
			// #ifdef MP-TOUTIAO
			orderInfo: orderString,
			service: 5,
			// #endif

			success: function(value) {
				console.log('==== uni.requestPayment success', value);
				// #ifdef MP-TOUTIAO
				let code = value.code
				switch (code) {
					case 0:
						uni.showToast({
							title: '支付成功',
							icon: 'none'
						});
						uni.redirectTo({
							url: `/pages/webview/webview?url=${getApp().globalData.urlPrefix}/orderdetail&id=${orderNo}`
						});
						break;
					case 1:
						uni.navigateBack({
							delta: 1
						});
						uni.showToast({
							title: '支付超时',
							icon: 'none'
						})
						break;
					case 2:
						uni.navigateBack({
							delta: 1
						});
						uni.showToast({
							title: '支付失败',
							icon: 'none'
						})
						break;
					case 3:
						uni.navigateBack({
							delta: 1
						});
						uni.showToast({
							title: '支付关闭',
							icon: 'none'
						})
						break;
					case 4:
						uni.navigateBack({
							delta: 1
						});
						uni.showToast({
							title: '支付取消',
							icon: 'none'
						})
						break;
					default:
						console.log('==== uni.requestPayment success code!=0');
						uni.showToast({
							title: '支付失败',
							icon: 'none'
						})
				}
				// #endif
			},
			fail: function(err) {
				console.log('==== uni.requestPayment err', err);
				uni.showToast({
					title: '支付失败',
					icon: 'none'
				})
				uni.navigateBack({
					delta: 1
				});
			}
		})
	},

},

注意点:

1、抖音沙盒小测试支付调用,必须用沙盒版抖音调试才能正常调起,抖音极速版,抖音商店版都无法正常调起

2、uniapp 如何实现抖音交易支付

相关推荐
专科3年的修炼20 小时前
uni-app移动应用开发第四章
开发语言·javascript·uni-app
q5507071771 天前
uniapp/uniappx实现原生图片编辑涂鸦、贴图、滤镜、旋转、裁剪等
uni-app
计算机学姐2 天前
基于微信小程序的校园失物招领管理系统【uniapp+springboot+vue】
java·vue.js·spring boot·mysql·信息可视化·微信小程序·uni-app
2501_915921432 天前
HTTPS前端劫持 新一代流量劫持解决方案
前端·网络协议·ios·小程序·https·uni-app·iphone
爱怪笑的小杰杰2 天前
优化 UniApp 日历组件的多语言切换:告别 setLocale 引起的 App 重启
java·前端·uni-app
计算机学姐2 天前
基于微信小程序的宠物服务系统【uniapp+springboot+vue】
java·vue.js·spring boot·mysql·微信小程序·uni-app·宠物
2501_915909062 天前
iOS应用签名的三种方法全解析:从官方到第三方工具
android·ios·小程序·https·uni-app·iphone·webview
心中无石马3 天前
uniapp引入tailwindcss4.x
前端·css·uni-app
fix一个write十个3 天前
【uniApp开发】微信小程序 web-view 内嵌 H5 跳转支付踩坑实录
微信小程序·uni-app
wuxianda10303 天前
苹果App上架4.3a被拒解决方案汇报总结
ios·uni-app·objective-c·cocoa·苹果上架·4.3a