DizPay is a blockchain payment gateway allowing merchants to accept Bitcoin, Ethereum, Litecoin, USDT, and Dash for any online businesses.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
static/img
.gitignore
LICENSE
README.md

README.md

接入说明

商户需通过联系dizpay支付平台申请app_id和app_key

签名规则

1.在你的入参加入app_id和app_key两个字段

例 POST 参数:

{
  "number": "8eb9bc53-75ea-4142-8a91-af89d2246379",
  "address": "1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8",
  "to_address": "1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8",
  "amount": "1",
  "fee": "0.002"
}

加上app_id,app_key后。

{
  "app_id": "dp9vC69mdA3QG2VPRe",
  "app_key": "e145d582c31928ca103d262b200e882d",
  "number": "8eb9bc53-75ea-4142-8a91-af89d2246379",
  "address": "1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8",
  "to_address": "1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8",
  "amount": "1",
  "fee": "0.002"
}
2.将这些参数按照字母顺序并按照k1=v1&k2=v2.... 这种方式排列起来,中文需要utf8编码。

生成列表: address=1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8&amount=1&app_id=dp9vC69mdA3QG2VPRe&app_key=e145d582c31928ca103d262b200e882d&fee=0.002&number=8eb9bc53-75ea-4142-8a91-af89d2246379&to_address=1DLVkXuZrSVhw9Ymm72csp99A8wufe76F8

3.计算MD5值(小写)

signature: f433acfea90730724f8261fdb0d502e1

通过跳转我们dizpay的收款台完成您的支付。

示例URL:

http://cryptopay.icaipay.net/cn/cryptopay?crypto=ETH&amount=100&app_id=dpxGn3a9EdQdtRkBNP&number=201809041039354574

收款台URL说明

GET http://cryptopay.icaipay.net/cn/cryptopay?crypto={crypto}&amount={amount}&app_id={app_id}&number={number}&erc20_token={erc20_token}&notify_url={notify_url}&theme={theme}&is_rate={is_rate}

链接中的cn表示默认为中文。如果需要默认为英文,可以修改cn为en。

参数详解:
参数 是否必须参数 描述
crypto 必选 数字货币,如USDT (支持的数字货币:USDT, BTC, ETH, LTC, DASH, GUSD)
amount 必选 数字货币的数量
app_id 必选 你的app_id
number 必选 订单号(全局唯一)
erc20_token 可选 可选(0或者1),默认为0,0:非token币,1:token币
notify_url 可选 通知回调地址,需要带上http协议,url需要encode
theme 可选 可选值为'simple',简单版收款台
is_rate 可选 (0或者1,默认为1) 是否在收款台显示汇率,用于自定义汇率比例,保持数据同步

回调通知

  • 通过你配置的notify_url回调你支付信息。方便告知您用户的支付结果。

  • 回调规则如下: 商户后台接收到通知后先对报文进行验签,验签通过后执行相关的业务逻辑,最后需要给支付网关返回http状态 200 表示成功。如果支付网关 3s 内未能正常接收 200 成功,就认为商户后台没有正常接收到通知,支付网关将每隔 10 分钟下发一次通知。重试 1 天后,支付网关不再做任何处理。

  • 回调数据为json格式,回调方式为POST, 回调数据示例

字段 类型 描述
number String 订单号
currency_code String 数字货币
amount String 应付金额
paid_amount String 已付金额
delta_amount String 本次支付金额
extra String 备注信息
erc20_token Int 是否token币,0表示非token币,1表示token币
status Int 1表示进行中,2表示已完成,4表示已取消
signature String 签名

比对amountpaid_amount字段,我们认为当paid_amount ≥ amount就表示支付成功。只有支付成功dizpay支付网关才会回调。收到回调信息后,需要你去验证您的签名。确认签名无误后。再去处理您的业务逻辑。

验签

将回调字段中的除signature字段所有参数加入app_id,app_key来参与签名(app_id和app_key需要替换成你自己的). 参与签名的参数

{
  "app_id": "dp9vC69mdA3QG2VPRe",
  "app_key": "e145d582c31928ca103d262b200e882d",
  "number": "8eb9bc53-75ea-4142-8a91-af89d2246379",
  "currency_code": "USDT",
  "amount": "100.00000000",
  "paid_amount": "100.00000000",
  "delta_amount": "100.00000000",
  "extra": "",
  "erc20_token": 0,
  "status": 2,
}

对签名参数进行排序(按字母表顺序(sort)) 排序后的参数:

{
  "amount": "100.00000000",
  "app_id": "dp9vC69mdA3QG2VPRe",
  "app_key": "e145d582c31928ca103d262b200e882d",
  "currency_code": "USDT",
  "delta_amount": "100.00000000",
  "erc20_token": 0,
  "extra": "",
  "number": "8eb9bc53-75ea-4142-8a91-af89d2246379",
  "paid_amount": "100.00000000",
  "status": 2,
}

将排序后的参数按照k1=v1&k2=v2.... 这种方式排列起来。 排列后的字符串:

'amount=100.00000000&app_id=dp9vC69mdA3QG2VPRe&app_key=e145d582c31928ca103d262b200e882d&currency_code=USDT&delta_amount=100.00000000&erc20_token=0&extra=&number=8eb9bc53-75ea-4142-8a91-af89d2246379&paid_amount=100.00000000&status=2'

求上面字符串的md5值(即签名结果,注意MD5值为小写)

汇率

我们提供了美元兑换其他法币的汇率接口以及数字货币兑换美元的汇率接口

更多接口详见官方文档