简介
@caldera-digital/ecommerce-stripe-shared 是一个供前端开发使用的 npm 包,旨在简化集成 Stripe API 到电子商务网站中的过程。
该包提供了一个针对 Stripe API 中涉及到创建、读取和更新用户、订单、付款和退款等操作的高度抽象的 JavaScript 类。您可以使用该类来处理 Stripe API 的核心功能,并按照您的需要扩展它。
安装
您可以使用 npm 包管理器安装 @caldera-digital/ecommerce-stripe-shared:
npm install @caldera-digital/ecommerce-stripe-shared
使用
准备工作
要使用 @caldera-digital/ecommerce-stripe-shared,您需要首先从 Stripe 控制台获取所需的 API 密钥。请按照 Stripe 的指南进行操作,获取发布密钥和秘密密钥。Stripe 控制台
初始化
在您的项目中,您需要导入 Stripe 类并使用以下代码初始化:
import { Stripe } from '@caldera-digital/ecommerce-stripe-shared'; const stripe = new Stripe({ publicKey: 'PUBLIC-API-KEY', secretKey: 'SECRET-API-KEY', });
在解释代码之前,让我们看一下 Stripe 的术语表:
- Publishable API key: 用于从您的前端应用程序调用 Stripe API。
- Secret API key: 用于从您的服务器(无论是从前端还是从后端)调用 Stripe API。
当您使用 @caldera-digital/ecommerce-stripe-shared 时,首先需要创建一个 Stripe 实例以引用 Stripe API,其中包含公钥和密钥。在上面的示例中,我们通过传递公钥和私钥初始化了一个名为“ stripe ”的 Stripe 实例。
客户端验证
在创建 Stripe 实例时,您需要向 stripe 对象提供并验证客户端的身份。在这里,我们使用了 stripe 中的 verifyClient 方法,该方法会使用我们在初始化时提供的公钥来验证:
await stripe.verifyClient();
创建客户
Stripe 的客户是指使用电子商务网站的用户。在创建每个新用户时,我们需要向 stripe API 发送请求,以在 stripe 中建立新用户账户。
-- -------------------- ---- ------- ----- -------- - ----- ----------------------- ------ ----------------------- ----- --------- ------ ------ ------------- -------- - ------ -------- ---- --- ------ -------- ---- --- ----- ------- ------ -------- ----------- ------- ------ -------- --------- - ---
创建订单
在创建每个新订单时,我们需要发送请求到 stripe API,以在 stripe 中建立新订单。在订单中,我们通过捕获交易的付款数据来跟踪客户的已购买物品的费用。
-- -------------------- ---- ------- ----- ----- - ----- -------------------- --------- ------ ------- ------- -- ------ -- ----- ------ - - ----- ------ ------- ---------- --------- -- -- -- --------- ---------- ---
创建付款
要处理客户的付款,我们需要按如下步骤执行:
1. 创建一个 PaymentIntent
PaymentIntent 对象表示单个付款尝试。一旦 PaymentIntent 客户端使用所需支付方法正确填写了所有信息,就会发起付款尝试。付款尝试的结果取决于所选支付方法的行为。
在让客户进行付款之前,您需要在 stripe contacts 中建立一个 PaymentIntent 对象,这样您可以自行校验要求的付款数据并检查该用户是否可进行付款。能够使用客户端秘密来签署并验证签名的传输对象。
您可以使用以下代码创建一个 PaymentIntent:
-- -------------------- ---- ------- ----- ------------- - ----- ---------------------------- ------- ------- --------- ------ ------------------- --------- --------- ---------- --------- - --------- ------ -- ---
2. 尝试扣款
在客户的支付方法已经很好地填写并检查好之后,您可以根据所使用的 API 来尝试从客户的帐户余额中扣款。扣款成功时,Stripe 将发送一个回合进行通知,以指示付款成功或失败,具体取决于所选支付方法的行为。
下面是使用 Stripe.js V3 的示例:
-- -------------------- ---- ------- ----- ------ - ------------------------------ ----- - -------------- ----- - - ----- -------------------------- ------------------- - --------------- - ----- ------------ ---------------- - ----- ------ ------- -- -- - --
3. 完成付款
对于许多付款方法(例如银行汇款和支付宝),您会在尝试付款后立即收到付款通知。
许多付款方法需要等待清算才能确定付款是否成功。Stripe 会在付款成功时发送需要清算的 Webhook 通知(例如支付宝和微信支付)。您也可以使用管道检查完成的付款是否已从您的 stripe 帐户中扣除。
示例代码
这里是一个用于集成 Stripe API 的完整代码示例:
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------------------- ----- ------ - --- -------- ---------- ----------------- ---------- ----------------- --- ------ -- -- - --- - ----- ---------------------- ----- -------- - ----- ----------------------- ------ ----------------------- ----- --------- ------ ------ ------------- -------- - ------ -------- ---- --- ------ -------- ---- --- ----- ------- ------ -------- ----------- ------- ------ -------- --------- - --- ----- ----- - ----- -------------------- --------- ------ ------- ------- -- ------ -- ----- ------ - - ----- ------ ------- ---------- --------- -- -- -- --------- ---------- --- ----- ------------- - ----- ---------------------------- ------- ------- --------- ------ ------------------- --------- --------- ---------- --------- - --------- ------ -- --- ----- ------ - ------------------------------ ----- - -------------- ----- - - ----- -------------------------- ------------------- - --------------- - ----- ------------ ---------------- - ----- ------ ------- -- -- - -- - ----- ------- - ------------------- - -----
总结
@caldera-digital/ecommerce-stripe-shared 是一个用于简化集成 Stripe API 到电子商务网站中的 npm 包。 该包提供了高度抽象的 JavaScript 类,可帮助您进行 Stripe API 的核心功能处理,并且可以根据您的需求进行扩展。
在使用 @caldera-digital/ecommerce-stripe-shared 时,请务必遵循 Stripe API 的最佳实践,以确保安全性和可靠性。
我们希望这篇文章可以对您有所帮助。如果您对 Stripe API 、 @caldera-digital/ecommerce-stripe-shared 或本文有任何疑问,请随时联系我们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/caldera-digital-ecommerce-stripe-shared