Stripe订阅支付和WebHook事件

(哪里有天才,我是把别人喝咖啡的功夫都用在工作上的。——鲁迅)

在这里插入图片描述

stripe

Stripe是由20多岁的两兄弟Patrick Collison和John Collison创办的Stripe为公司提供网上支付的解决方案。Stripe向服务的公司收取每笔交易的2.9%加上30美分的手续费

订阅支付和WebHook事件实例代码

  • 订阅支付采用stripe官方提供好的sdk,这样就省去了前端的支付页面开发工作
  • 事件推送在stripe账户下添加路径即可,但需要选择对应的事件类型

有关使用测试银行卡号等方法请参阅stripe官方提供的测试卡号等

import Stripe from 'stripe';class StripeSubscribeService {// eslint-disable-next-line @typescript-eslint/no-empty-functionconstructor() {}// 获取stripe订阅支付链接async getStripeSubscribeUrl() {// stripe账户秘钥const STRIPE_ACCOUNT_SK = 'sk_test_xxxxx';// stripe支付成功后的重定向页面const STRIPE_REDIRECT_DOMAIN = 'http://localhost:8000';// 实例化stripe对象const stripe = new Stripe(STRIPE_ACCOUNT_SK, { apiVersion: '2022-11-15' });// 获取stripe订阅支付链接// 这里直接使用stripe提供的sdk链接const result = await stripe.checkout.sessions.create({// 类型固定为支付卡片payment_method_types: ['card'],// price为stripe账户下产品的价格id// quantity为支付的数量line_items: [{price: 'price_xxxx',quantity: 1,},],// 支付的类型 subscription为订阅支付mode: 'subscription',// 支付成功后跳转链接 可以是自己前端服务的链接success_url: `${STRIPE_REDIRECT_DOMAIN}/dashboard/setting/subscribe`,// 取消支付后跳转链接cancel_url: `${STRIPE_REDIRECT_DOMAIN}/dashboard/setting/subscribe`,// 订阅支付的自定义参数,用于后端服务做额外处理,比如记录日志,更改系统内部状态呢个subscription_data: {metadata: {name: 'test',id: 'testId',env: 'local',},},});// stripe订阅支付链接console.log(result.url);}async brandSubscribeWebHook(metadata: any) {const env = metadata.env;// 在stripe添加webhook事件,每次支付成功后都会发起调用// stripe的事件无法做环境区分,所以我们需要在subscription_data中加入环境参数,这样每次收到后可以根据环境进行区分处理if (env !== 'local') {console.log('brandSubscribeWebHook env different', {env,});return;}}
}

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

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

相关文章

[ MySQL ] — 库和表的操作

目录 库的操作 创建数据库 语法: 使用: 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…

增强型Web安全网关在银行的应用

销售,绝不是降低身份去取悦客户,而是像朋友一样给予合理的建议。你刚好需要,我刚好专业!仅此而已! 乔.吉拉德 健康的安全体系,还可以更完善 浙江某商业银行股份有限公司是一家成立多年的商业银行&#xf…

iOS——Block two

Block 的实质究竟是什么呢?类型?变量?还是什么黑科技? Blocks 是 带有局部变量的匿名函数 Blocks 由 OC 转 C 源码方法 在项目中添加 blocks.m 文件,并写好 block 的相关代码。打开「终端」,执行 cd XX…

力扣 62. 不同路径

题目来源:https://leetcode.cn/problems/unique-paths/ C题解1:动态规划。声明二维数组。 确定dp数组(dp table)以及下标的含义。dp[i][j] :表示从(0 ,0)出发,到(i, j) …

Vue 自定义事件绑定与解绑

绑定自定义事件 说到 Vue 自定义事件,那就需要搞清楚一个问题,为啥有这个玩意。 说到自定义事件之前,需要理解 组件基础的概念。理解了基础概念之后,我们就知道 Vue 的父子之间的通信, 一是 父组件通过 Prop 向子组件…

动态规划之树形DP

动态规划之树形DP 树形DP何为树形DP 树形DP例题HDU-1520 Anniversary partyHDU-2196 Computer834. 树中距离之和 树形DP 何为树形DP 树形DP是指在“树”这种数据结构上进行的动态规划:给出一颗树,要求以最少的代价(或取得最大收益&#xff…

1、Spark SQL 概述

1、Spark SQL 概述 Spark SQL概念 Spark SQL is Apache Spark’s module for working with structured data. 它是spark中用于处理结构化数据的一个模块 Spark SQL历史 Hive是目前大数据领域,事实上的数据仓库标准。 Shark:shark底层使用spark的基于…

针对高可靠性和高性能优化的1200V碳化硅沟道MOSFET

目录 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance摘要信息解释研究了什么文章创新点文章的研究方法文章的结论 标题:1200V SiC Trench-MOSFET Optimized for High Reliability and High Performance 摘要 本文详…

Jenkins工具系列 —— 插件 钉钉发送消息

文章目录 安装插件 Ding TalkJenkins 配置钉钉机器人钉钉APP配置项目中启动钉钉通知功能 安装插件 Ding Talk 点击 左侧的 Manage Jenkins —> Plugins ——> 左侧的 Available plugins Jenkins 配置钉钉机器人 点击 左侧的 Manage Jenkins ,拉到最后 钉…

《数据同步-NIFI系列》Nifi配置UpdateAttribute实现字符串时间戳转日期

Nifi配置UpdateAttribute实现字符串时间戳转日期 数据处理流程如下:查询源数据库,将Avro转为Json格式,然后使用EvaluateJsonPath修改字段名,最后使用replaceText将参数组成SQL,最后PutSQL。 一、字段串时间戳导致无法插…

嵌入式开发学习(STC51-13-温度传感器)

内容 通过DS18B20温度传感器,在数码管显示检测到的温度值; DS18B20介绍 简介 DS18B20是由DALLAS半导体公司推出的一种的“一线总线(单总线)”接口的温度传感器; 与传统的热敏电阻等测温元件相比,它是一…

java中javamail发送带附件的邮件实现方法

java中javamail发送带附件的邮件实现方法 本文实例讲述了java中javamail发送带附件的邮件实现方法。分享给大家供大家参考。具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它…