当前位置: 首页 > article >正文

uniapp Stripe 支付

引入 Stripe  

npm install @stripe/stripe-js

import { loadStripe } from '@stripe/stripe-js';

Stripe 提供两种不同类型组件

Payment Element 和  Card Element:如果你使用的是 Payment Element,它是一个更高级别的组件,能够自动处理多种支付方式(如信用卡、Apple Pay 等),并且不需要你手动指定 payment_method 对象。而 Card Element 则是专门用于收集信用卡信息的低级别组件

 这里用的是 Payment Element Stripe 自动处理支付方式的选择,并且不要手动构造 payment_method 对象

import { loadStripe } from '@stripe/stripe-js';

export default {
  data() {
    return {
      stripe: null,
      elements: null,
      paymentElement: null,
      clientSecret: ''  // 调用后端创建订单接口返回的参数
    };
  },
  async mounted() {
    uni.showLoading({
		title: 'loading...'
    });
    this.stripe = await loadStripe(''); // 替换为你的 Publishable Key
	this.setupElements()
  },
  methods: {
    setupElements(){
        if (!this.stripe || !this.clientSecret) return;
		this.elements = this.stripe.elements({
			 clientSecret: this.clientSecret,
		})
		this.paymentElement= this.elements.create('payment');
		this.paymentElement.mount('#payment-element');
		uni.hideLoading()
    },
	async handleSubmit() {
				if (!this.stripe || !this.paymentElement || !this.clientSecret) {
                    //  自己封装的提示方法
					this.$Common.showToast('Payment setup is incomplete');
					return;
				}
				uni.showLoading({
					title: 'loading...'
				});
				const {
					error,
					paymentIntent
				} = await this.stripe.confirmPayment({
					elements: this.elements,
					confirmParams: {
						// 用户完成支付后的重定向 URL
						return_url: 'http://123:8080/#/pages/pay/orderComplete',
					},
				});
				if (error) {
					console.error('Error:', error.message);
					this.$Common.showToast(error.message);
					uni.hideLoading()
					
				} else {
					if (paymentIntent.status === 'succeeded') {
						uni.hideLoading()
						this.$Common.showToast('Payment succeeded!');
						
						// 这里可以根据业务逻辑跳转到成功页面或执行其他操作
					}
				}
			},
  }
};


http://www.kler.cn/a/465875.html

相关文章:

  • javaEE-网络编程-3 UDP
  • 【数学建模笔记】评价模型-基于熵权法的TOPSIS模型
  • 『SQLite』创建、附加、分离、备份及恢复数据库
  • 现代光学基础6
  • AWS 申请证书、配置load balancer、配置域名
  • Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
  • 解决ubuntu服务器SSH连接卡顿,连上后命令输入也是卡顿以及如何在Ubuntu上杀死不断重启的进程。
  • 【连续3届JPCS出版,EI稳定检索!】第四届能源利用与自动化国际学术会议(ICEUA 2025)
  • [cg] android studio 无法调试cpp问题
  • SQL中的REGEXP正则表达式使用指南
  • 抢先体验:人大金仓数据库管理系统KingbaseES V9 最新版本 CentOS 7.9 部署体验
  • Debian安装配置MariaDB
  • 安卓系统主板_迷你安卓主板定制开发_联发科MTK安卓主板方案
  • 期权懂|期权入门知识:平值期权的杠杆有多少倍数?
  • 基于微信小程序的自修室预约系统
  • Nginx 配置 SSL(HTTPS)详解
  • JVM常见排查问题的命令及可视化工具
  • 以一个实际例子来学习Linux驱动程序开发之“设备类”的相关知识【利用设备类实现对同一设备类下的多个LED灯实现点亮或关闭】
  • 服务器迁移中心——“工作组迁移”使用指南
  • 开源Material Design WPF UI 控件库简单上手
  • 【Python其他生成随机字符串的方法】
  • 《特征工程:自动化浪潮下的坚守与变革》
  • “AI智慧教学系统:开启个性化教育新时代
  • 【QT】增删改查 XML 文件的类
  • 计算机网络•自顶向下方法:链路层介绍
  • Linux性能优化-系列文章-汇总