@faiber/faiber-付费
网关管理,支付创建,交易查询,每日收入,浏览器回调,支付状况页面.
安装
npm install @faiber/faiber-payment
配置
import { FaiberClient, MemoryTokenProvider } from "@faiber/sdk-core";
import { PaymentApi } from "@faiber/faiber-payment";
const tokens = new MemoryTokenProvider();
const client = new FaiberClient("payment", {
domains: { payment: process.env.FAIBER_PAYMENT_URL! },
tokenProvider: tokens,
axios: { timeout: 15_000, withCredentials: true },
});
const api = new PaymentApi(client);
const gateways = await api.gateways.list();
const payment = await api.createPayment({
amount: 4900,
service_name: "my-service",
service_model: "order",
service_id: "order-42",
queue_name: "my_service_queue",
callback_url: "https://merchant.example/payment-result",
idempotency_key: "my-service:order-42",
});
完全能力
这个软件包从支付服务中暴露出36个注册业务. 通用工作流程有简洁的方法 api;每个已注册后端路由在 api.operations。生成的操作输入、查询、响应、路径、动词和许可合同从 operations.types。 。 。 .
| 区域 | 业务 | HTTP 方法 |
|---|---|---|
asset-checkout | 1个 | GET |
fitness | 3个 | GET, (中文(简体) ), POST |
gateway | 第7条 | DELETE, (中文(简体) ), GET, (中文(简体) ), PATCH, (中文(简体) ), POST |
integration | 2个 | GET |
payment | 1个 | POST |
payment-web | 3个 | GET, (中文(简体) ), POST |
product-plans | 3个 | GET, (中文(简体) ), POST |
router | 页:1 | GET |
session | 1个 | GET |
settings | 2个 | GET, (中文(简体) ), PATCH |
shop-checkout | 3个 | GET, (中文(简体) ), POST |
transaction | 页:1 | GET, (中文(简体) ), POST |
浏览器调用和校验路径在 api.operations;呼叫者应当保存支付服务返回的提供者查询参数.
认证和授权
使用一个 TokenProvider 以转发已签名用户的 Bearer 令牌,或启用 withCredentials 用于安全的 Http 只有饼干会话。 每个行动的JSDoc都包含从服务路线卫士复制的许可要求. SDK不嵌入 API 密钥,证书,本地主机 URL,沙盒主机,或生产主机.
投入、询问、答复和运输
所有方法都返回完整的Axios响应,包括状态,头,以及请求ID. 请求机构和查询对象被命名为导出接口. 网纹页化使用密钥, 如 page[number] 财务报告和审定财务报表 page[size] 服务需要时。 标准 Axios 请求选项、信头、超时、适配器、拦截器和 AbortSignal 取消被支持为最后参数.
一般性的REST资源得到能力保障。 调用未注册的遗留方法 UnsupportedOperationError 在发送请求之前, 而不是生成后端 405。 。 。 .
错误和取消
try {
await api.client.get("/health", undefined, { signal: AbortSignal.timeout(5_000) });
} catch (error) {
// Axios errors retain response.status and the service error body.
}
使用 @faiber/faiber-ts-sdk 当一个应用程序需要多个具有一个配置的Faiber服务时.
核实的离职和准备情况
operations.gatewaySetupCheckPost() 执行仅读的现场提供者检查 admin:gateway:read产品专用支付业务包括2done、健身和商店前期结账。 内部端点需要他们的产品所信任的服务器证书;仅凭最终用户的代号并不能授权访问.
operations.assetCheckoutReceiptGet(purchaseId, options) 接受 x-asset-payment-token 结束 options.headers 返回 a 原始内容 已核实的收据 purchaseId, (中文(简体) ), transaction整数IRR amount, (中文(简体) ), providerVerified 财务报告和审定财务报表 status (单位:千美元)pending, (中文(简体) ), accepted,或 rejected) (中文(简体) ). 其他产品接收业务保留其服务信封. 付费创建使用稳定的产品特异性同位素键;通过检测重新测试是否适合 fitnessRetryPost 而不是创建不相关的交易.
门户和交易管理
网关标识符为整数. gateways.list({ status: "active", "page[number]": 1, "page[size]": 20 }) 返回时 data.data 财务报告和审定财务报表 data.meta。网关创建/更新支持 sandbox; 无效的响应字段总是存在的. 这个 options 响应是不透明的存储提供者配置,可能包含加密值:不要从中插入可编辑的证书字段或登录它。 删除返回已删除的网关记录, 而不是布尔结果 。 网关呼叫需要相应的 admin:gateway:read, (中文(简体) ), create, (中文(简体) ), update,或 delete 允许.
transactions.list() 返回已嵌入 data.transactions 页面、过滤汇总摘要、服务名称和网关选项。 交易记录使用情况 uuid他们宣布不 currency 字段. transactions.show(uuid) 财务报告和审定财务报表 transactionStatus(uuid) 只有返回状态。 行政要求 admin:transaction:read,并需要验证/拒绝 admin:transaction:verify 加上经认证的核查员。 核查可与付款提供者联系;检查付款提供者 successful 计算结果而不是将HTTP 200等同于成功的支付.
gatewayOptions() 返回时 { providers, statuses } 标签/值阵列. dailyIncomeFor({ days: 7 }) 返回 UTC 日期/挂载点,包括零日期;后端将日光窗口夹到1–90。 没有返回计数字段 . createPayment() 接受可选选项 idempotency_key;可信赖的产品,健身,资产和商店前期购买必须使用其专用的服务器授权的离职合同. 通用创建不是这些采购的授权绕道.
支付导航操作返回文本/HTML,而不是JSON信封. 提供者回调接受 Authority, (中文(简体) ), transid 或者说 paymentNumber 在“获取”和“POST”两个查询中。 回调可返回303,带 Location 配置的 HTTPS 源头; 否则它返回支付结果页 。 在节点,通过 maxRedirects: 0 (单位:千美元) validateStatus 接受303检查该答复。 带有HTTP200的结果页可以描述一次失败的付款. 这些路线可能与真正的提供者联系,而不是只读的健康检查.
配置的奖励包检查
rewardCheckouts.create(product, body, options) 财务报告和审定财务报表
rewardCheckouts.receipt(product, transactionId, options) 需要该产品
配置后端 Bearer 证书 。 服务器验证模型,命令,
偶能键和HTTPS回调源. 这些端点创建/ 读取已验证
支付交易; 独立匹配后仅资产贷记钱包
收条 等待或被取消的付款从不发行硬币. 产品设置
属于服务配置,这些证书必须远离客户.
资助奖励退款
PaymentApi.rewardRefunds 曝光情况 list, (中文(简体) ), show, (中文(简体) ), start, (中文(简体) ), confirm,以及 reopen。 。 。 .
这些运营商的电话需要境内流离失所者认证和适用交易
允许。 写入额外需要指派到配置的产品 。 付款人无法验证
自己的退款。 保护 operation_id 财务报告和审定财务报表 version 当重试一个不变时
请求; 已更改的语义或 stale 发回 HTTP 409 。 方法保留
Axios 响应和接受 RequestOptions,包括中止信号.
银行行刑在原商贸门户进行. 两个不同的指定
操作人员然后核查向原付款人全额退款。 重开复议
圆从不执行另一银行退款. rewardCheckout.refund 是一个信任的
后端集成,需要现有资产代管;永远不披露
服务证书在浏览器代码。 只有准备情况报告配置.