stripe.js踩坑日记

news2024/12/29 11:34:17

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.coloradmin.cn/o/1620329.html

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

相关文章

shopify二次开发在首页调用最新的博客文章

在section分区里面新建一个 article.json {"type": "header","name": "Group name","sections": {"blog-posts": {"type": "blog-posts","disabled": true,"settings":…

移动零 ----双指针

题目链接 题目: 分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 思路: 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块首先让cur 0; dest 0;cur 遍历数组, 如果cur 0, 那么cur…

基于springboot+vue+Mysql的漫画网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

dubbo本地调试说明

1、连接dubbo服务 telnet ip 端口号比如&#xff1a;dubbo的端口你配置的是20980连接本地&#xff1a; telnet localhost 20980连接之后&#xff0c;输入ls进入dubbo命令行&#xff0c;然后invoke接口进行调试了 2、传入单独参数实例 dubbo>invoke com.kaishustory.userx.…

Maven基础篇6

Idea环境中资源上传与下载 具体问题本地仓库如何与私服打交道&#xff1b; 本地仓库向私服上传文件&#xff0c;上传的文件位置在哪里&#xff1f; 访问私服配置相关信息&#xff1a;用户名密码&#xff1b; 下载东西&#xff0c;需要的各种信息&#xff0c;需要的仓库组的…

串口服务器可以直接连接工业路由器吗

串口服务器可以直接连接工业路由器吗 在工业物联网的架构中&#xff0c;串口服务器和工业路由器都是不可或缺的重要组件。串口服务器的主要功能是将串口通信转换为网络通信&#xff0c;实现数据的远程传输和管理&#xff1b;而工业路由器则负责在工业环境中提供稳定、可靠的网…

C语言——联合与枚举

大家好&#xff0c;上篇文章和大家分享了C语言中的自定义类型结构体。接下来&#xff0c;我们再来了解一下其他的自定义类型——联合与枚举&#xff0c;记得三连支持一下哦&#xff01; 一、联合体 像结构体⼀样&#xff0c;联合体也是由⼀个或者多个成员构成&#xff0c;这些…

AI预测福彩3D第9套算法实战化测试第1弹2024年4月24日第2次测试

今天继续进行新算法的测试&#xff0c;今天是第2次测试。好了&#xff0c;废话不多说了&#xff0c;直接上图上结果。 2024年4月24日福彩3D预测结果 6码定位方案如下&#xff1a; 百位&#xff1a;1、0、2、3、6、7 十位&#xff1a;2、4、1、6、0、5 个位&#xff1a;3、2、4、…

企业工商信息查询API接口如何对接

企业工商信息查询API接口指的是输入公司名全称/注册号/社会统一信用代码的任意一种&#xff0c;获得企业工商注册登记中包含的各类重要信息&#xff0c;主要信息包括&#xff1a;注册号&#xff0c;注册资金&#xff0c;登记机关&#xff0c;注册地址&#xff0c;核准时间&…

力扣HOT100 - 543. 二叉树的直径

解题思路&#xff1a; class Solution {int ans;//记录节点数public int diameterOfBinaryTree(TreeNode root) {ans 1;depth(root);return ans - 1;//节点数减 1 就是路径长度}public int depth(TreeNode root) {if (root null) return 0;int l depth(root.left);int r de…

ONLYOFFICE:一站式在线协作办公好选择

&#x1f6f5;前言 随着信息技术的迅猛发展&#xff0c;人们对办公方式的需求也在不断变化。传统的办公软件已经无法满足现代企业的需求&#xff0c;而在线协作办公软件则成为了一个热门选择。 在众多在线协作办公软件中&#xff0c;ONLYOFFICE凭借其强大的功能和灵活的部署方…

【电控笔记5.10】Luenberger估测器

Luenberger估测计 单积分器:pi控制器的补偿 双积分器:使用pid控制器的补偿 除了受控厂跟传感器,其他都在mcu 去掉Rs就是一个PLL锁相环 带宽比PLL更大

【大数据】LSM树,专为海量数据读写而生的数据结构

目录 1.什么是LSM树&#xff1f; 2.LSM树的落地实现 1.什么是LSM树&#xff1f; LSM树&#xff08;Log-Structured Merge Tree&#xff09;是一种专门针对大量写操作做了优化的数据存储结构&#xff0c;尤其适用于现代大规模数据处理系统&#xff0c;如NoSQL数据库&#xff…

ros2 node 之间的通信方式之 —— Topic通信案例

文章目录 ros2 node 之间的通信方式之 Topic通信Topic 通信案例1、创建工作空间2、创建功能包3、编写发布者和订阅者代码3.1 topic_helloworld_pub.cpp3.2 topic_helloworld_sub.cpp 4、编写CMakeLists.txt5、编译工作空间下的功能包6、运行结果 ros2 node 之间的通信方式之 To…

​「Python绘图」绘制小猪佩奇

python 绘制小猪佩奇 一、预期结果 二、核心代码 import turtle print("开始绘制小猪佩奇") pen turtle.Turtle() pen.pensize(4) #pen.hideturtle()pen.speed(1000)pen.color("#ff9bc0","pink") pen.setheading(-30) pen.pu() pen.goto(-100,…

c++ - 空间申请和释放 new/delete

文章目录 一、c/c内存分布二、new/delete 的使用三、malloc/free 和 new/delete 的对比四、new/delete 的实现原理五、匹配问题 一、c/c内存分布 求下面各个变量的位置 // c/c内存分布int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar …

Paddle 1.8 与 Paddle 2.0 API 映射表

安装2.6的paddlepaddle之后总是报fluid的错误&#xff0c;查询得知这个接口已经弃用了&#xff0c;但是一直找不到替换接口&#xff0c;偶然查询报错信息的时候找到了映射表&#xff0c;转存一下。 Paddle 1.8 与 Paddle 2.0 API 映射表

打开IIS网站网页错误提示Argument ‘Key must not be null‘ cannot be null.解决方案 Oracle数据库监听

打开网页异常如下&#xff1a; /“应用程序中的服务器错误。 Argument Key must not be null cannot be null.参数名:Key must not be null 客户端 连接oracle 提示&#xff1a;ORA-12541:TNS:无监听程序 按组合键WindowsR&#xff0c;打开运行 输入命令&#xff1a;lsnrctl s…

道一云与畅捷通T+对接集成获取报销信息列表连通凭证创建(报销差旅费(天水))

道一云与畅捷通T对接集成获取报销信息列表连通凭证创建(报销差旅费&#xff08;天水&#xff09;) 对接源平台:道一云 在道一云坚实的技术基础上&#xff0c;道一云推出全新升级的2.0产品矩阵&#xff0c;分别是低码平台、智能门户、场景应用。基于云原生底座&#xff0c;为企业…

解决DataGrip连接MySQL8时出现时区错误问题

解决办法&#xff1a;在url后面拼接时区参数 ?serverTimezoneAsia/Shanghai