Rain卡交易怎么核账:区分spend、抵押、入账与收据
链小知 · 进阶 · 核验 · 依官方文档整理
按官方固定SDK规格读已有交易记录,区分授权和posted金额、四类嵌套字段、分页与收据附件。
开始前准备
- 准备已有脱敏交易/列表、环境、company/user/card定位和可选收据文件;不要提供Api-Key、卡号、PIN或秘密签名材料。
1. 固定原交易ID、环境与权限范围
用已有脱敏Rain transaction id,核company/user/card和查询时点,不能用钱包hash代替全部卡交易ID。固定SDK默认dev;production在客户端显式选择,base_url或RAIN_BASE_URL可改变目标,已有记录缺环境就保持未知。
官方方法client.transactions.retrieve对应GET /transactions/{transactionId},Api-Key由客户端header发送。此处只核原记录;401/403是认证/权限失败,不是交易未付,不通过开卡、charge或更新memo补查。
检查结果:原transaction id、环境及权限结果明确或未知。
2. 列表按卡/公司及授权、入账时间分别定位
没有原ID但有原列表时,可核cardId、userId、companyId、type、transactionHash以及authorizedAfter/Before与postedAfter/Before。SDK参数是snake_case,线上alias是camelCase;type是spend/collateral/payment/fee的列表。
cursor是从哪个资源ID之后继续,limit是数量;不要把cursor当页码,或把未出现在第一页的旧授权判不存在。授权与入账时间不同,单用posted时间可能漏尚pending的消费。缺完整分页资料保留范围不足。
检查结果:原筛选、两种时点、类型列表和cursor范围对应。
3. 按type进入嵌套对象,不套统一status
IssuingTransaction以type分四种:spend用spend对象,collateral用collateral,payment用payment,fee用fee。spend.status只有pending/reversed/declined/completed;payment.status只有pending/completed,而固定模型collateral/fee没有同一status字段。
spend的cardId/userId、merchantName/merchantCategoryCode是卡消费定位;collateral的chainId/transactionHash/walletAddress是抵押记录。消费completed或一笔抵押hash不等钱包所有资产已到账、loan escrow已返还;reversed不是另有已核退款交易的证明。
检查结果:四分支和其状态/身份字段分别解释,缺字段不造统一状态。
4. 核cents、授权额与入账额及本地币种
固定模型spend.amount和可选authorizedAmount都注释为cents;localAmount/localCurrency另列当地币种/金额。保留currency再按该模型单位读数,不能把amount当token最小单位或默认所有金额USD。collateral.amount虽是float也注释cents;这只证模型标注,不代表钱包token余额换算。
authorizedAt与可选postedAt分别记录;缺postedAt不自行补完成时间。Python解析值None可能是字段null,也可能根本没返回,README用model_fields_set区分;只对已有原JSON/解析记录检查,不把None或缺字段填成0。
检查结果:金额单位、币种、授权/入账时点及null/缺失分别保留。
5. 收据文件与真实付款结果分开
spend.receipt是模型的收据布尔标志。GET /transactions/{transactionId}/receipt方法返回BinaryAPIResponse,Accept为application/octet-stream,通常PDF或类似文件;已有文件先核原transaction id、响应类型和内容,不将字节当JSON解析。
同一路径还支持PUT上传附件,因此收据存在不自动证明卡清算、链上转账或退款已完成。整理原交易状态、金额/时点与已有收据,缺付款/退款结果保持未核;不重新支付或上传文件来测试。
检查结果:收据文件关联原交易,与消费/资产/退款结果各有独立记录或未知。
怎样确认完成
- 形成同一Rain原交易的类型、状态、金额/时点与收据对照;官方源码方法已核,实际账户/API和资金结果未实测。
常见错误与边界
- 四种交易没有通用status;卡消费和抵押记录不能合成钱包余额。
- 模型单位、原环境和缺失字段要保留;收据附件不是清算或退款证明。