字节抖音小程序,使用 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 格式,其实可以直接返回字符串给前端,前端直接拿来调用支付即可 

第二步:调用支付

orderString: "{\"order_token\":\"CgwIARDPKBjKMCABKAESTgpMjyesuDMrdbGEYMdZMJa6lipo/NLLDfJufCDrwNnXUfbIoLoaX/1NKKCzuapPa4p0qj8ogKTO8tRnNoEnxbfVddD6zII4CuekMexkgxoA.W\",\"order_id\":\"7259313669782358306\"}"

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

onShow() {
	uni.getProvider({
		service: 'payment',
		success: function(res) {
			uni.setStorageSync('providerpayment', res.provider[0]);
		}
	});
},

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 如何实现抖音交易支付

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/44187.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#实现系统进程的调用,查看进程调用的模块

1.需要使用命名空间:System.Diagnostics; 2.Process.GetProcess()可以获取所有进程 3.获取进程调用的模块 ProcessModuleCollection modules currentProcess.Modules; foreach循环一下FileName就可以查看调用了什么dll文件了 4.有关进程的信息(Process…

Linux Day01

目录 一、Linux终端介绍 二、Linux目录介绍 1.目录结构 2.常见目录说明 3.绝对路径与相对路径 4.家目录 一、Linux终端介绍 二、Linux目录介绍 Linux目录:是从根目录"/"开始的 是一棵倒着的树 1.目录结构 2.常见目录说明 目前记住 bin 存放常用命…

子网划分和计网解题方法

子网的基本概念 子网是计算机网络中的一个逻辑单元,是由多个IP地址组成的网络。在计算机网络中,IP地址是一个32位的二进制数,用于标识网络上的设备。子网划分是将一个大型的IP地址网络划分为多个小的IP地址网络,每个小的IP地址网…

虚拟机里install时发生找不到符号的错误

前提:下载dolphinscheduler源码时,一开始下的是dev版本,install没有问题,后来更改为其他版本,这时install就不好用了。在网上搜索一天后全是jdk版本问题,编译顺序问题,或者依赖配置,…

基于SpringBoot+vue技术的快鞋屋系统的设计与实现【纯干货分享,免费领源码06912】

摘 要 如今,人们的消费水平和购物能力都大大提升,加上互联网技术日新月异的发展,电子商务这种新兴的商业模式,在短短几年里已经开始融入中国社会,成为家哈户晓的热门话题,在网上购物已经成为一种潮流&#…

【教程】查看CPU、GPU架构的拓扑结构和系统信息

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 一些概念 Package:处理器封装。在多处理器系统中,每个物理 CPU 芯片通常被封装在一个单独的封装中,这个封装被称为 Package。一个 Package 可以包含一个或多个物理 CPU 核心。…

Nginx系列之 一 负载均衡

目录 一、Nginx概述 1.1 负载均衡概述 1.2 负载均衡的作用 1.3 四/七层负载均衡 1.3.1 网络模型简介 1.3.2 四层和七层负载均衡对比 1.3.3 Nginx七层负载均衡实现 1.4 Nginx负载均衡配置 1.5 Nginx负载均衡状态 1.6 Nginx负载均衡策略 二、负载均衡实战 2.1 测试服…

机器学习深度学习——softmax回归(上)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——线性回归的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所…

vue项目打包成App

地址一 地址二 一、将项目开发完成后,在vue.config.js 文件中添加路径 publicPath:‘./’ 在router/index.js关闭路由的history模式(默认哈希) 二、npm run build,生成的dist文件目录 三、打开 HBuilder X 开发工具 新建 >…

SAMStable-Diffusion集成进化!分割、生成一切!AI绘画新玩法

自SAM「分割一切」模型推出之后,二创潮就开始了,有想法有行动!飞桨AI Studio开发者会唱歌的炼丹师就创作出SAM进化版,将SAM、Stable Diffusion集成,实现「分割」、「生成」能力二合一,并部署为应用&#xf…

吴恩达ChatGPT《LangChain Chat with Your Data》笔记

文章目录 1. Introduction2. Document Loading2.1 Retrieval Augmented Generation(RAG)2.2 Load PDFs2.3 Load YouTube2.4 Load URLs2.5 Load Notion 3. Document Splitting3.1 Splitter Flow3.2 Character Splitter3.3 Token Splitter3.4 Markdown Spl…

Cisco学习笔记(CCNA)——Open Shortest Path First (OSPF)

Open Shortest Path First (OSPF) 动态路由协议介绍 动态路由协议: 向路由表中添加远程网络 探索网络 更新和维护路由表 自主网络探索: 通过共享路由表信息路由器能探索到新的网络 动态路由协议的分类 内部网关协议(IGP) 适…

基于STM32设计的人体健康监护系统(华为云IOT)

一、设计需求 1.1 设计需求总结 根据需求,要求设计一款基于 STM32 的人体健康监护系统。采用系统模块化思路进行,将多个数模传感器收集到的数据和操作指令一并送至 STM32 中心处理器进行处理分析。 该系统可以实时监测被测者的心率、体温以及周围环境的温度,也同时可以通…

半导体自动化专用除静电设备的特点和功能

半导体自动化专用离子风机是一种用于半导体制造过程中的特殊风机设备。它通过产生带电粒子(离子)的气流来实现静电去除和除尘,以确保半导体制造环境的洁净和无尘。 以下是半导体自动化专用离子风机的一些特点和功能: 1. 静电去除…

【Vue3基础】计算属性

一、需求 二、代码 1、创建项目 创建项目: 1、 npm init vuelatest 2、一路回车 3、输入项目名,不要大写,如vue3bilibili 4、 cd vue3bilibili 5、 npm install 6、npm run dev启动,可以获取网址 2、App.vue文件中:…

Linux文件管理

WINDOWS/LINUX目录对比 Windows: 以多根的方式组织文件 C:\ D:\ E: Linux: 以单根的方式组织文件 / (根目录) Linux目录简介 /目录结构: FSH (Filesystem Hierarchy Standard) [rootlocalhost ~]# ls / bin dev lib media net root srv usr boot etc lib64 misc …

【Spring Boot Admin】介绍以及使用

介绍 概述 Spring Boot Admin是一个监控工具,旨在以一种漂亮且易于访问的方式可视化Spring Boot Actuators提供的信息。 主要功能点 显示应用程序的监控状态应用程序上下线监控查看 JVM,线程信息可视化的查看日志以及下载日志文件动态切换日志级别Http…

技术速览|Meta Llama 2 下一代开源大型语言模型

AI 使用大型语言模型(LLM)来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本,并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭,而现有的开放课程数量十分有限。这就…

机器学习深度学习——预备知识(上)

深大的夏令营已经结束,筛选入营的保研er就筛选了1/3,280多的入营总人数里面双非只有30左右。 最终虽然凭借机试拿到offer了,但是我感受到了自己的明显短板,比如夏令营的舍友就都有一篇核心论文,甚至还有SCI一区一作的。…

Docker数据管理和网络通信 dockerfile

Docker数据管理和网络通信 dockerfile 一:Docker 的数据管理1.数据卷2.数据卷容器 二:端口映射三:容器互联(使用centos镜像)四:Docker 镜像的创建1.基于现有镜像创建2&am…