订单
订单管理区块链订单加密货币订单订单类型订单确认方式订单状态
介绍了 Spell 的订单管理系统。
订单是 Spell 的核心功能,指的是发起收款的相关操作。注册用户可以通过 Web 界面或 API 请求来进行如下操作:
- 创建一个订单
- 查询一个或多个订单
- 取消一个订单
- 删除一个订单
注:订单创建后,该订单的信息不可被再次修改。
订单类型
目前,Spell 提供了两种订单类型:预置收款单、自定义转账(暂未开放)。
用户在 Web 界面创建订单时,部分字段不可用:
- 组编号
group_no
(仅API可用) - 订单号
order_no
(自动生成) - 通知地址
notify_url
(仅API可用) - 跳转地址
return_url
(仅API可用) - 超时时间
timeout
(默认 30 分钟)
预置收款单 Pre-configured Invoice
预配置收款单是用户体验最好的收款订单类型,适用于支付任何商品和服务。
订单信息由收款方(商户/个人)进行预配置,创建后产生唯一支付链接,如:spell.im/pay/[orderId]
。付款方(用户)访问支付页面,可在链接中点击支付按钮,从而调起浏览器中安装的钱包插件完成支付。支付完成后POST
请求通知地址,配置过跳转地址的收款单将会在支付成功后跳转到该地址。
收款单仅可被支付一次,支付完成后订单生命周期结束,订单数据不会再发生变更。
自定义转账 Transfer
自定义支付类似于普通的转账,适用于捐赠、慈善捐款、发红包等场景。
收款方(商户/个人)仅指定收款地址(区块链网络、币种可选),创建后生成唯一链接,如:spell.im/pay/[orderId]
。付款方(用户)访问支付页面,选择区块链网络(如未指定)和币种(如未指定),填写金额,然后点击转账按钮,调起浏览器中安装的钱包插件完成转账。
自定义转账的订单可被重复支付。
订单确认方式
由于区块链转账的去中心化特性,转账操作并不依赖由任何中心化机构发起,因此 Spell 通过相关技术能力来进行订单支付状态的确认:
- ID确认:将订单 ID 作为额外数据进行编译后加入区块链的转账信息中,支付完成后通过匹配订单 ID 进行支付确认。
- 尾额确认:在订单金额后添加一个尾额(
tail
),当用户发起区块链转账时,将订单金额+尾额作为定位订单的方式来进行支付确认。
订单状态
订单状态是订单信息中唯一在创建后可变的参数,该状态表示了订单在其生命周期中所处的阶段:
- 待支付(状态码
0
):订单创建成功,等待用户完成区块链转账操作。 - 支付成功(状态码
1
):区块链中监听到符合订单信息的转账,订单状态转为支付成功。 - 已超时(状态码
2
):订单创建后,用户在指定时间内未完成区块链转账操作,订单自动变更为超时。 - 已取消(状态码
3
):订单创建后,且未超时,商户/个人取消订单,订单状态转为取消。注意:已取消、已超时的订单将不能被支付。取消或超时后即使用户手动完成满足要求的区块链转账,订单状态也不再会被改变。