ERC20代币收款接口 API

代币收款功能方便商家创建,监听ERC20代币收款订单.

代币收款功能工作流程

代币收款主要服务于需要用户用指定的ERC20代币付款的场景,其主要业务流程如下:

创建收款地址

通过API生成地址供以后收款,一般2到5个地址足够使用了,同一个地址可以同时接受不同用户的订单.

生成订单

用户在商家网站/app内购买某服务时,商家收集以下信息:

  • 付款地址

  • 付款代币地址

  • 付款代币数量

然后商家调用94ETH代币收款API,创建一个收款订单. 94ETH订单系统开始监听全链代币付款信息.

商家可以同时提供一个回调地址, 用户完成付款时会回调商家提供的地址

订单成功创建后, 返回商家该订单id,收款地址. 用户需要给指定的收款地址转账代币完成订单.

商家可以通过该订单ID追踪订单进度.

94ETH 提供了一个订单收款页面,商家可以直接展现该页面给用户,或者自己定制收款界面提醒用户付款

用户付款,订单状态更新

用户通过指定付款地址向指定收款地址转币后, 94ETH 会在链上追踪到付款交易并更新订单完成度. 到付款数量达到订单数量后, 订单标志完成.

94ETH会调用商家提供的回调参数通知商家订单完成.

商家不能仅依赖回调来确认订单, 收到回调后需要请求收款API确认订单状态, 防止回调地址被人窃听恶意调用

订单根据依赖ERC20代币Transfer Event, 请确认对应代币符合ERC20标准, 用户如果通过合约充值, 请确认订单发送方地址与Transfer事件中的sender地址一致.

提取代币

收到的代币会存在商家的代理地址中,商家可以积累到一定数量后通过API提取代币到自己地址.

API 接口说明

get
Create bill address

https://api.94eth.com/api/api/gen_eth_bill_addr
create an Ethereum address to receive ERC20 tokens
Request
Response
200: OK
if success, return an empty object, use list interface to find all the bill addrs
{}

get
List bill addresses

https://api.94eth.com/api/api/load_eth_bill_addr
list all the bill address you have currently
Request
Response
200: OK
return array of Ethereum addresses
[addrs]

get
Create Order

https://api.94eth.com/api/api/gen_order
create an order to receive ERC20 tokens
Request
Response
Query Parameters
token
required
string
the address of the token
amount
required
string
the amount of tokens
sender
required
string
the address of who will send the token
200: OK

get
Order Status

https://api.94eth.com/api/api/public_order_status
get the order status by order id
Request
Response
Query Parameters
order
optional
integer
order's id
200: OK
{
"id": 1,
"token": "0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6",
"gen_time": "2019-05-03T08:33:49.000Z",
"receiver": "0xab5ba34351cd3d0bae440998d5837347e6525e9a",
"amount": 400000000,
"filled": 10000000000000000,
"sender": "0xc713ad7305ec2eb9d8d7654190ac359293a22968",
"status": 1,
"account": 1,
"network": "main",
"block": 7890816
}