Raims node . js
用于Raims公共API的官方Node.js SDK,带有TypeScript类型, ESM和CommonJS模块,以及按资源组织的方法。
需要Node.js 22或更高版本。使用Node.js HTTP传输,没有生产 依赖关系。在服务器上运行SDK,避免API密钥出现在浏览器中。 版本控制和日志。
安装
在将使用SDK的应用程序中:
npm install @raimshq/raims
包的名称为 @raimshq/raims. 包括TypeScript声明。
保留应用程序的lockfile以复制已安装的依赖版本。
要更新到最新的稳定版本:
npm install @raimshq/raims@latest
读了 发布说明 和测试 更新后的集成。将来的更新不会自动安装。
如果您安装了较早的GitHub归档文件 raims取代这种依赖
与 @raimshq/raims 更新你的 import 和 require 路径。这个 Raims
类和资源方法保持相同的名称。
这个 GitHub版本
还提供了 raims-node.tgz 和 SHA256SUMS. 要安装下载的软件包,
验证其校验和并运行 npm install /path/to/raims-node.tgz.
快速启动
import Raims from '@raimshq/raims';
const apiKey = process.env.RAIMS_API_KEY;
if (!apiKey) throw new Error('Set RAIMS_API_KEY on the server.');
const raims = new Raims(apiKey);
const customers = await raims.customers.list({ page_size: 20 });
for (const customer of customers.list) {
console.log(customer.id);
}
对于CommonJS,使用 const Raims = require('@raimshq/raims'). 命名的导出
Raims 和 RaimsClient 引用同一个构造函数。
基本URL是 https://api.raims.com 在这两种环境中。API密钥
确定公司、环境和权限;客户没有
提供环境选择器。使用沙盒键进行模拟。
创建收费
本例使用一个现有客户。 customerId, chargeDueDate,
chargeIdempotencyKey 应用程序定义和持久化的值是什么
发送请求前的订单。
const charge = await raims.charges.create({
customer_id: customerId,
amount_cents: 15000,
due_date: chargeDueDate,
title: 'Order 1234',
}, {
idempotencyKey: chargeIdempotencyKey,
});
const { statusCode, requestId } = charge.lastResponse;
15000 即150巴西雷亚尔。资源日期使用UTC Unix秒。在失去一个
响应,保留相同的键和每个参数,包括到期日期。
SDK不会自动生成等幂密钥或重试写操作。
HTTP 202 表示结果等待处理,您必须跟踪资源;它
不确认付款或财务操作的完成。
打印稿
import Raims, { type CreateChargeParams } from '@raimshq/raims';
const params: CreateChargeParams = {
customer_id: customerId,
amount_cents: 15000,
due_date: chargeDueDate,
};
const charge = await raims.charges.create(params, {
idempotencyKey: chargeIdempotencyKey,
});
类型也可以在 Raims 名称空间,例如
Raims.CreateChargeParams 和 Raims.Charge. 它们是由
与定义方法和结构响应验证的契约相同。
遍历页面
for await (const charge of raims.charges.list({ page_size: 100 })) {
await processCharge(charge);
}
const customers = await raims.customers.list().autoPagingToArray({ limit: 200 });
迭代器根据需要获取页面,并在离开循环时停止。
await list() 返回带有 list, page, nextPage(),
previousPage(). 过滤器和选项保留用于后续读取。
资源
accounts, balances, customers, charges, paymentLinks, refunds,
disputes, statements, withdrawals, withdrawalDestinations, webhooks,
webhookEventTypes, simulations.charges, simulations.refunds.
看到 参考 对于每个资源的方法。
文档
根据 麻省理工学院的许可.