跳转到主要内容
Find the anon key with npx @insforge/cli secrets get ANON_KEY, or in the dashboard: click Install and open API Keys.

概述

TypeScript SDK 为生成的应用前端公开 Razorpay 运行时助手:
  • insforge.payments.razorpay.createOrder(...)
  • insforge.payments.razorpay.verifyOrder(...)
  • insforge.payments.razorpay.createSubscription(...)
  • insforge.payments.razorpay.verifySubscription(...)
  • insforge.payments.razorpay.cancelSubscription(...)
  • insforge.payments.razorpay.pauseSubscription(...)
  • insforge.payments.razorpay.resumeSubscription(...)
Razorpay 不返回托管的 Checkout URL。后端创建 Razorpay 订单或订阅并返回 checkoutOptions。浏览器加载 Razorpay Checkout 并使用这些选项打开它。
有关提供商设置、手动 webhook、数据库表和履行模式,请参见 Razorpay 支付

SDK 设置

SDK 使用当前 InsForge 用户令牌调用 Razorpay 运行时路由。不要使用提供商密钥调用这些路由。

加载 Razorpay Checkout

一次性订单

首先创建一个应用拥有的待处理订单。然后通过 InsForge 创建 Razorpay 订单: Razorpay 订单可以是仅金额的,但为一次性可售产品创建 Razorpay 商品是一个好做法,因为同步的商品使目录在 InsForge 和 Razorpay 中可见。将订单视为付款尝试。
如果您的 webhook 触发器读取 notes.order_id,请在创建订单时传递 notes: { order_id: ... } 打开 Razorpay Checkout 并验证返回的签名:
签名验证保护即时的浏览器回调。持久履行仍应来自已验证的 Razorpay webhook 事件。

订阅

首先创建或同步一个 Razorpay 计划。然后通过 InsForge 创建订阅:
当 webhook 触发器稍后需要应用标识符时,传递 Razorpay 订阅 notes 使用返回的订阅 ID 打开 Razorpay Checkout:

管理订阅

Razorpay 不提供 Stripe 计费门户的等价物。使用后端路由进行订阅管理:
订阅创建检查 payments.razorpay_subscriptions 上的 INSERT 策略。取消、暂停和恢复检查同一表上的 UPDATE 策略。PostgreSQL 还将 SELECT 策略应用于 INSERT/UPDATE ... RETURNING 返回的行,因此当策略探测需要返回行时,为同一计费主体添加匹配的 SELECT 可见性。在为共享主体公开这些控件之前,添加应用特定的 RLS 或服务器端成员资格检查。

履行

不要仅从 Checkout 处理程序标记订单已付款、授予积分或激活订阅。使用 payments.webhook_events 中已验证的 Razorpay webhook 事件。不要将履行触发器附加到提供商镜像表,如 payments.razorpay_subscriptions 创建带有 RLS 的应用拥有的履行表,然后从 webhook 触发器更新它们。有关触发器示例,请参见 Razorpay 支付

生产/测试环境

在开发时将 'test' 作为第一个 SDK 参数传递。仅在开发者明确批准生产 Razorpay 更改并配置了生产商品、计划和 webhook 后才切换到 'live'
永远不要将 Razorpay Key Secret 或 webhook 密钥放在前端代码中。前端仅接收作为 checkoutOptions.key 的公共 Razorpay Key ID。