stripe.js踩坑日记

stripe.js踩坑日记

先附上代码【选择支付方式并唤起对应支付后重定向到支付结果页面】
  • 先安装依赖包
npm install @stripe/stripe-js
  • 代码【vue3语法】
<template><div class="stripe-pay-ment-box"><div id="payment-element"></div><button @click="handlePayment">Pay</button></div>
</template><script setup>
import { ref, onMounted } from "vue";
import { loadStripe } from "@stripe/stripe-js";
import { closeToast } from "vant";let Stripe = null;
const paymentElement = ref(null);
const clientSecret = ref("");
const payOrder = ref({});
let elements = null;onMounted(async () => {Stripe = await loadStripe("pk_test_you_stripe_key");init();
});
const init = async () => {await initialize();};async function initialize() {const appearance = {theme: "stripe",};const options = {layout: "tabs",paymentMethodOrder: ["apple_pay", "google_pay"],};elements = Stripe.elements({clientSecret: 'you clientSecret',appearance,});const paymentElement = elements.create("payment", options);paymentElement.mount("#payment-element");
}async function handlePayment() {Stripe.confirmPayment({elements,confirmParams: {return_url: `${window.location.origin}/PayTest?pay_order_no=${payOrder.value.bizNo || ''}`},}).then(function ({error}) {if (error) {alert('error:' + JSON.stringify(error))}});
}
</script>
附文档地址

stripe官方文档飞机票

总结:需要英文阅读理解能力,直接减少一半时间
  1. 文档英文,前后端文档散乱,没有完善的生态,相关官方回复周期长

  2. 分为预支付和收银台模式

    1. checkout不支持预支付,但是基本是即用的
    2. payment支持
      可以前端使用stripe ui搭建页面
      也采用后端生成方式,全配置化
      页面会自动列举适用的支付方式
  3. 限制条件很多

    1. 支付方式受设备限制,例如需要设备下载Google Pay 或者 Apple Pay
    2. 必须在上户后台配置域名以及激活支付方式
    3. Google支付和apple支付激活钱包支付方式后,需要绑定信用卡且受信用卡地区等限制
  4. 优点

    1. 会自动检测用户环境,给出支持的所有支付方式
    2. 完成所有支付流程,只需要关注回调
    3. 嵌入式界面,减少开发成本(但是文档阅读成本和试错成本很高)
    4. 基本是全配置化的(意味着要熟悉文档)
  5. 一些兼容限制【浏览器、设备、银行卡】

    • 硬件兼容
      在这里插入图片描述
    • 支付方式及浏览器对应支付方式兼容表
      在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库】三、数据库SQL语言命令(基础从入门到入土)

【全文两万多字&#xff0c;涵盖大部分常见情况&#xff0c;建议点赞收藏】 目录 文章目录 目录安装SQL语言1.使用2.DATABASE查看所有库新建数据库修改数据库删除数据库连接数据库 3.TABLE创建表查看库所有表删除表查看表信息重命名表修改表字段&#xff08;列&#xff09;表中…

GUI测试首推!TestComplete 帮助有效缩短 40-50% 测试时长!

TestComplete 是一款自动化UI测试工具&#xff0c;这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎&#xff0c;可以自动记录和回放用户的操作&#xff0c;方便用户进行UI&#xff08;用户界面&…

孩子如何才能学好Scratch

Scratch是一种适合孩子学习编程的可视化编程语言&#xff0c;它通过拖拽积木式的编程方式&#xff0c;让孩子能够轻松地学习编程概念。以下是一些建议&#xff0c;可以帮助孩子更好地学习Scratch&#xff1a; 熟悉Scratch界面和基本功能 首先&#xff0c;让孩子熟悉Scratch的…

WebAssembly 基本了解

现代浏览器朝着第二操作系统一路狂奔&#xff0c;网页在线 PS、3D 地图、音视频编解码、游戏引擎等等应用&#xff0c;都在浏览器实现了&#xff0c;这都是基于 WebAssembly。 什么是 WebAssembly WebAssembly 也简称 wasm&#xff0c;是以.wasm 结尾的文件。我们都知道&…

七分钟“手撕”三大特性<多态>

目录 一、学习多态之前需要的知识储备 二、重写 1.什么是重写 2.重写可以干嘛 3.怎么书写重写 4.重载与重写的区别 三、向上转型 1.什么是向上转型&#xff1f; 2.向上转型的语法 3.向上转型的使用场景 四、多态是什么 六、多态实现 七、多态的好处 八、多态的缺…

人工智能与医疗的定量分析研究论文大纲

人工智能与医疗的定量分析研究 摘要&#xff1a;[论文摘要] 关键词&#xff1a;[论文关键词] 一、引言 研究背景介绍&#xff1a;在信息化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的迅速发展对各行各业产生了深远的影响&#xff0c;医疗领域尤为突出。随着…

linux:后台运行程序的几种方法

文章目录 1. 使用 & 符号2. 使用 nohup 命令3. 使用 disown 命令4. 使用 screen 在 Linux 中&#xff0c;可以使用几种方法将程序在后台运行。 1. 使用 & 符号 在命令行中&#xff0c;在要运行的命令末尾添加 & 符号&#xff0c;可以将该命令放到后台运行。 示例…

zookeeper安装原生开发 C API接口时报错

报出的错误&#xff1a;error: %d directive writing between 1 and 5 bytes into a region of size be 问题原因 %d 格式说明符用于格式化有符号十进制整数。它需要一个与要格式化的整数大小相匹配的缓冲区。如果缓冲区太小&#xff0c;则会导致缓冲区溢出&#xff0c;从而可…

码头船只出行及配套货柜码放管理系统-毕设

毕业设计说明书 码头船只出行及配套货柜码放 管理系统 码头船只出行及配套货柜码放管理系统 摘要 伴随着全球化的发展&#xff0c;码头的物流和客运增多&#xff0c;码头业务迎来新的高峰。然而码头业务的增加&#xff0c;导致了人员成本和工作量的增多。为了解决这一基本问题&…

设计模式- 模板方法模式(Template Method Pattern) 结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

spring-core:理解@AliasFor注解的作用

AliasFor是spring注解体系中一个非常重要且基础的注解。顾名思义&#xff0c;它的基本作用就是为注解字段定义一个别名。 基本作用&#xff1a;字段别名 Testpublic void test3AliasFor() {try {{CasbanScan casbanScan AnnotationUtils.findAnnotation(UserSummy.class, Cas…

Redis篇:缓存更新策略最佳实践

前景&#xff1a; 缓存更新是redis为了节约内存而设计出来的一个东西&#xff0c;主要是因为内存数据宝贵&#xff0c;当我们向redis插入太多数据&#xff0c;此时就可能会导致缓存中的数据过多&#xff0c;所以redis会对部分数据进行更新&#xff0c;或者把他叫为淘汰更合适&a…

代理池项目查询

github.com:jhao104/proxy_pool.git https://github.com/jhao104/proxy_pool/ 如果&#xff0c;可以用 GitHub: Let’s build from here GitHub代替 https://bgithub.xyz/ 仅限学习使用

libssh C++封装(二)

1 概述 libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。 libssh下载地址 3 实现 3.1 Session Session类型管理SSH连接会话 3.1.1 Sessio…

开放式耳机怎样选性价比高?五大性能出色爆款推荐!

在今年的耳机市场&#xff0c;开放式耳机如雨后春笋般涌现&#xff0c;为消费者提供了更多的选择。在这样一个产品繁多的市场中&#xff0c;如何挑选出一款音质上乘、性能卓越的开放式耳机&#xff0c;确实是一个值得探讨的问题。相较于长时间佩戴传统入耳式耳机可能带来的耳朵…

Jenkins 打包报错记录 error: index-pack died of signal 15

问题背景&#xff0c;打包每次到92%时就会报错&#xff0c;试了好几次都是同样的错误 14:56:53 fatal: index-pack failed 14:56:53 14:56:53 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2734) 14:56:53 at org.jenkinsci.plugi…

【UE 材质】水波纹效果

效果 模拟雨水打落在水面上的效果 步骤 1. 下载所需纹理和纹理 纹理2. 新建一个材质&#xff0c;这里命名为“M_WaterRipples” 打开“M_WaterRipples”&#xff0c;添加一个纹理采样节点&#xff0c;纹理使用第一步下载的纹理 将纹理采样节点的R通道连接到基础颜色&#x…

MySQL、Oracle查看最大连接数和当前连接数

文章目录 1. MySQL2. Oracle 1. MySQL -- 查看最大连接数 show variables like max_connections; select max_connections; -- select * from performance_schema.session_variables where VARIABLE_NAME in (max_connections); -- select * from performance_schema.global…

产品推荐 | 基于Intel (Altera) Cyclone IV 打造的水星Mercury CA1核心板

01 产品概述 水星Mercury CA1核心板结合了Intel Cyclone IV FPGA、通用接口如USB 2.0和Gigabit Ethernet&#xff0c;具备大量的LVDS I/O、大容量DDR2 SDRAM和大量硬件乘法器&#xff0c;这些使得水星CA1核心板非常适合数字信号处理、网络、高速I/O以及使用Intel NiosII软处理…

某酒业集团数字化转型规划(169页附下载)

某酒业集团数字化转型项目实施方案建议书(P169).rar是一个极具参考价值的资料&#xff0c;它详细地阐述了如何利用数字化技术来推动企业转型。这份建议书以IBM的先进技术和某酒业集团的实际应用需求为基础&#xff0c;提出了一套全面、系统的数字化转型解决方案。该方案首先对某…