stripe支付

 使用第一个示例

1、示例中的PRICE_ID需要去Stripe控制台->产品目录创建产品

1、 添加产品

2、点击查看创建的产品详情

 4、这个API ID就是demo中的PRICE_ID

注意:需要注意的是,测试模式和生产模式中的 $stripeSecretKey 需要对应上。简而言之就是不能生产模式的产品API ID 对应测试模式的密钥

 5、示例中的密钥从,Stripe控制台->开发人员->API密钥->密钥  获取

 2、下载示例:

 1、打开项目查看README.md

2、替换public下checkout.php中的配置

复制代码

 1 $checkout_session = \Stripe\Checkout\Session::create([2   'line_items' => [[3     # Provide the exact Price ID (e.g. pr_1234) of the product you want to sell4     'price' => '对应产品目录的API ID',5     'quantity' => 10, // 数量默认为1,我这边产品单价是1,6   ]],7   'mode' => 'payment',  // 结账模式 付款8   'success_url' => $YOUR_DOMAIN . '/success.html', // 支付成功跳转的页面9   'cancel_url' => $YOUR_DOMAIN . '/cancel.html',     // 取消支付跳转的页面
10   'automatic_tax' => [
11     'enabled' => true,
12   ],
13 ]);

复制代码

3、如果要传递自己的自定义参数metadata传递

复制代码

 1 $checkout_session = \Stripe\Checkout\Session::create([2   'line_items' => [[3     # Provide the exact Price ID (e.g. pr_1234) of the product you want to sell4     'price' => '对应产品目录的API ID',5     'quantity' => 10, // 数量默认为1,我这边产品单价是1,6   ]],7   'mode' => 'payment',  // 结账模式 付款8   'success_url' => $YOUR_DOMAIN . '/success.html', // 支付成功跳转的页面9   'cancel_url' => $YOUR_DOMAIN . '/cancel.html',     // 取消支付跳转的页面
10   'automatic_tax' => [
11     'enabled' => true,
12   ],
13   // 元数据
14    'metadata' => [
15         'order_id' => 'you order id',
16          'product_name' => 'prodct name'
17     ]
18 ]);

复制代码

 5、浏览器访问 http://127.0.0.1:4242/checkout.html

6、$20是页面展示的静态金额这边不做详解

 7、拉取支付,测试模式下,可以用Stripe提供的测试卡号

8、支付成功之后,需要Stripe设置WebHook端点来监听事件,

3、Stripe->开发人员->WebHook

1、创建成功之后,点击进去获取密钥签名(用来验证接收的事件的合法性)

复制代码

 1         // 回调端点密钥,从webhook获取2         $endpointSecret = '端点密钥';3         // 获取参数4         $payload = @file_get_contents('php://input');5         $sigHeader = $_SERVER['HTTP_STRIPE_SIGNATURE'];6         // 签名验证7         try {8             $event = Webhook::constructEvent(9                 $payload,
10                 $sigHeader,
11                 $endpointSecret
12             );
13         } catch (SignatureVerificationException $e) {
14             // 签名验证失败
15             log_message('签名验证失败', 'log', 'pay');
16             http_response_code(400);
17             exit();
18         }
19         // 订单处理
20         if ($event->type != 'checkout.session.completed') {
21             log_message('返回的type是:' . $event->type, 'log', 'pay');
22             http_response_code(400);
23             exit();
24         }
25   
26         // todo 此处处理成功之后的业务逻辑
27         
28         // 处理成功返回200状态码
29         http_response_code(200);
30         

复制代码

3、WebHook 端点返回数据示例:

事件数据中,返回的金额是x100的如果要对订单做比对,记得除于100

复制代码

{"id": "evt_你看不见","object": "event","api_version": "2023-10-16","created": 1709170566,"data": {"object": {"id": "cs_test_你看不见","object": "checkout.session","after_expiration": null,"allow_promotion_codes": null,"amount_subtotal": 1000,"amount_total": 1000,"automatic_tax": {"enabled": true,"liability": {"type": "self"},"status": "complete"},"billing_address_collection": null,"cancel_url": "http://localhost:4242/cancel.html","client_reference_id": null,"client_secret": null,"consent": null,"consent_collection": null,"created": 1709170549,"currency": "cny","currency_conversion": null,"custom_fields": [],"custom_text": {"after_submit": null,"shipping_address": null,"submit": null,"terms_of_service_acceptance": null},"customer": null,"customer_creation": "if_required","customer_details": {"address": {"city": null,"country": "CN","line1": null,"line2": null,"postal_code": null,"state": null},"email": "你看不见","name": "你看不见","phone": null,"tax_exempt": "none","tax_ids": []},"customer_email": null,"expires_at": 1709256949,"invoice": null,"invoice_creation": {"enabled": false,"invoice_data": {"account_tax_ids": null,"custom_fields": null,"description": null,"footer": null,"issuer": null,"metadata": {},"rendering_options": null}},"livemode": false,"locale": null,"metadata": {"order_id": "you order id","product_name": "prodct name"},"mode": "payment","payment_intent": "pi_你看不见","payment_link": null,"payment_method_collection": "if_required","payment_method_configuration_details": {"id": "pmc_你看不见","parent": null},"payment_method_options": {},"payment_method_types": ["card","alipay","wechat_pay","link"],"payment_status": "paid","phone_number_collection": {"enabled": false},"recovered_from": null,"setup_intent": null,"shipping_address_collection": null,"shipping_cost": null,"shipping_details": null,"shipping_options": [],"status": "complete","submit_type": null,"subscription": null,"success_url": "http://localhost:4242/success.html","total_details": {"amount_discount": 0,"amount_shipping": 0,"amount_tax": 0},"ui_mode": "hosted","url": null}},"livemode": false,"pending_webhooks": 1,"request": {"id": null,"idempotency_key": null},"type": "checkout.session.completed"
}

复制代码

注意:如果使用Custom payment flow这个示例的话,webhook需要侦听的是 payment_intent.succeeded 事件端点,Custom payment flow示例可以直接定义,不需要创建产品API ID

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

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

相关文章

AI实景自动无人直播软件:引领直播行业智能化革命;提升直播效果,无人直播软件助力智能讲解

随着科技的快速发展,AI实景自动无人直播软件正在引领直播行业迈向智能化革命。它通过智能讲解、一键开播和智能回复等功能,为商家提供了更高效、便捷的直播体验。此外,软件还支持手机拍摄真实场景或搭建虚拟场景,使直播画面更好看…

如何将数据导入python

Python导入数据的三种方式: 1、通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件。这个类库中的reader()函数用来导入CSV文件。当CSV文件被读入后,可以利用这些数据生成一个NumPy数组,用来训练算法模型。 from csv import…

如何使用dockerfile文件将项目打包成镜像

要根据Dockerfile文件来打包一个Docker镜像,你需要遵循以下步骤。这里假设你已经安装了Docker环境。 1. 准备Dockerfile 确保你的Dockerfile文件已经准备就绪,并且位于你希望构建上下文的目录中。Dockerfile是一个文本文件,包含了用户可以调…

软件系统工程建设全套资料(交付清单)

软件全套精华资料包清单部分文件列表: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书&#xff0c…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

多行字符串水平相加

题目来源与2023河南省ccpc ls [ ........ ........ .0000000 .0.....0 .0.....0 .0.....0 .0.....0 .0.....0 .0000000 ........ , ........ ........ .......1 .......1 .......1 .......1 .......1 .......1 .......1 ........, ......... ......... .2222222. .......2. .…

扩展学习|一文读懂知识图谱

一、知识图谱的技术实现流程及相关应用 文献来源:曹倩,赵一鸣.知识图谱的技术实现流程及相关应用[J].情报理论与实践,2015, 38(12):127-132. (一)知识图谱的特征及功能 知识图谱是为了适应新的网络信息环境而产生的一种语义知识组织和服务的方…

什么是SSL?SSL安全证书一定要有吗?

什么是SSL证书? SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发&…

基于POSIX标准库的读者-写者问题的简单实现

文章目录 实验要求分析保证读写、写写互斥保证多个读者同时进行读操作 读者优先实例代码分析 写者优先示例代码分析 实验要求 创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制…

AI模型:windows本地运行下载安装ollama运行Google CodeGemma【自留记录】

AI模型:windows本地运行下载安装ollama运行Google CodeGemma【自留记录】 1、下载: 官网下载:https://ollama.com/download,很慢,原因不解释。 阿里云盘下载:https://www.alipan.com/s/jiwVVjc7eYb 提取码…

工业级POE交换机的POE供电功能有哪些好处

工业级POE交换机的POE供电功能是一种高效、方便、安全的供电方式。POE技术能够通过Ethernet网线传输电力和数据,无需额外的电源线路,从而简化了设备的安装和布线工作。在工业环境中,特别是一些远距离、高墙壁或者天花板安装位置不便的地方&am…

聚苯胺纳米纤维膜的制备过程

聚苯胺纳米纤维膜是一种由聚苯胺(PANI)纳米纤维构成的薄膜材料。聚苯胺是一种具有优良导电性、氧化还原性和化学稳定性的高分子材料,因此聚苯胺纳米纤维膜也具备这些特性,并展现出广阔的应用前景。 在制备聚苯胺纳米纤维膜时&…

RLC防孤岛负载测试的案例和实际应用经验有哪些?

RLC防孤岛负载测试是用于检测并防止电力系统出现孤岛现象的测试方法,孤岛现象是指当电网因故障或停电而与主电网断开连接时,一部分电网仍然与主电网保持连接,形成一个孤立的电网。这种情况下,如果电力系统不能及时检测到孤岛并采取…

Pascal Content数据集

如果您想使用Pascal Context数据集,请安装Detail,然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作: git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…

一、vue3专栏项目 -- 1、项目介绍以及准备工作

这是vue3TS的项目,是一个类似知乎的网站,可以展示专栏和文章的详情,可以登录、注册用户,可以创建、删除、修改文章,可以上传图片等等。 这个项目全部采用Composition API 编写,并且使用了TypeScript&#…

4G工业路由器快递柜应用案例(覆盖所有场景)

快递柜展示图 随着电商的蓬勃发展,快递行业迎来高速增长。为提高快递效率、保障快件安全,智能快递柜应运而生。但由于快递柜部署环境复杂多样,网络接入成为一大难题。传统有线宽带难以覆盖所有场景,而公用WiFi不稳定且存在安全隐患。 星创易联科技有限公司针对这一痛点,推出了…

视频断点上传

什么是断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成&#xf…

Docker安装部署一本通:从Linux到Windows,全面覆盖!(网络资源精选)

文章目录 📖 介绍 📖🏡 说明 🏡⚓️ 相关链接 ⚓️📖 介绍 📖 随着容器技术的飞速发展,Docker已成为现代软件开发和运维不可或缺的工具。然而,不同平台下的Docker安装部署方式各异,这常常让初学者感到困惑。本文将为您详细梳理各平台下Docker的安装部署方法,帮…

spring boot 集成kafka ,并且实现 发送信息,进行消费信息(亲测有效)

目录 1 目标2 实现 1 目标 有一个spring boot 项目,现在要集成kafka ,并且要实现 生产者,消费者信息; 前提是我们要有一个kafka 软件,也就是kafka 是一个软件,我们得安装成功,并且可以访问 k…

算法课程笔记——二维DP

算法课程笔记——二维DP