rd-acquiring-cashier
v0.1.0
Published
Cashier payment API client with RD headers (browser).
Maintainers
Readme
rd-acquiring-cashier
浏览器侧收银台 HTTP 客户端:按 env 拼接后端根地址,并在每次请求合并 RD 请求头(与主站 lib/rdHeaders.ts + riskCollector 行为一致)。
安装
从 npm 安装:
npm install rd-acquiring-cashier在 monorepo 中作为 workspace 子包时,在仓库根目录执行 npm install 即可解析本地链接(已配置 workspaces 时依赖会一并安装)。
克隆本仓库后在本包目录开发与构建:
cd rd-acquiring-cashier && npm install && npm run build类型检查(不写出 dist):
npm run typecheck产物:使用 tsup 输出 ESM(*.mjs)+ CJS(*.cjs),package.json 的 exports 提供 import / require / types;crypto-js 外置,随本包安装,构建不打进 bundle。已设 sideEffects: false 以利于树摇。
发布与 dist 约定
files仅包含dist,不会把src打进 npm 包。prepack:在生成 tarball 之前执行npm run build,npm pack与npm publish都会触发,因此发布或本地npm pack校验前都会得到最新dist(若更倾向只在发布时构建,可改为prepublishOnly,但npm pack不会执行prepublishOnly,需自行先build)。- Git 与
dist(二选一,团队统一即可)- A. 不提交
dist:仓库只存源码,CI / 发布机在npm publish时由prepack现编dist(若根目录.gitignore已包含dist/,保持不将dist纳入版本控制即可;若历史上已跟踪dist,需git rm -r --cached dist等清理后统一策略)。 - B. 提交
dist:便于通过 Git 依赖直装,但易与源码不同步;发 npm 时 tarball 内产物仍由prepack在发包时覆盖为当前构建结果。
- A. 不提交
使用
HTTP 客户端(rd-acquiring-cashier/core)
仅调用 API 时建议使用 core 子路径,与 UI 分层,利于按需打包。
import { createCashierClient } from "rd-acquiring-cashier/core";
const client = createCashierClient({ env: "uat" });
const detail = await client.fetchCashierDetail("ORDER_ID");
const status = await client.fetchCashierStatus("ORDER_ID");
const addr = await client.selectChainAddress("ORDER_ID", {
chain: "ETH",
currency: "USDT",
});UI / 宿主集成(rd-acquiring-cashier/ui)
收银页面或嵌入宿主从 ui 引入:再导出 core 全部公共 API,并包含 UI 常量与 CashierUIMountOptions(后续可在此扩展 mount 等)。
import {
CASHIER_SDK_UI_VERSION,
createCashierClient,
type CashierUIMountOptions,
} from "rd-acquiring-cashier/ui";包根 rd-acquiring-cashier 与 ./core 导出一致;需要 UI 子路径时请使用 ./ui。
env 与后端地址
SDK 仅支持 uat 与 prod(dev / fat 请走商户后端或本站 BFF,勿直连本包)。
CORS
从第三方域名调用上述 API 时,需后端网关配置允许该来源的 CORS;否则请在商户 同源后端 转发请求,或仅在本站收银域名内使用该 SDK。
