广告

支付接口在线调用

2018-12-08 22:24:00
泮哥
原创
547
摘要:RADAR PAY API 使用radar支付API可以快速构建一个通过radar网络进行支付的通道。

交互流程

雷达币支付接口

申请成为商户

任何需要接入radar支付API的第三方商家均需要发送以下文件到邮箱 dev@radarlab.org 进行申请:

  • 商户账号
  • 商户账号必须已经完成实名认证
  • 商户提供 ECDSA 算法所需的公钥
    • 请注意,此处的ECDSA算法使用了Bitcoin的 secp256k1
  • 商户的回调地址,用于支付完成后通知调用。
  • 商户的服务器IP地址
  • 已经在线上运行的网站地址

申请通过以后,商户会收到以下数据,用于API调用

Key Desc
userId 用于标识商户身份的ID
公钥 平台一方回调时使用的 ECDSA 签名的公钥信息

API 接入点

Domain Port
t.radarlab.org 443 (https://)

接口列表

创建订单 /open/orderPay

此接口由商户的服务器发起调用,用于生成支付地址。

此接口有IP限制,商户必须提供调用的服务器IP地址。

调用创建订单成功之后,跳转至返回值callback即可打开支付页面。

POST http://t.radarlab.org/ { "data":{ "userId":"123456", "orderId":"123456789", "currency":"VBC", "price":"123.123" }, "sign":"xxxxxxx" }

请求数据说明

Field Type Description
userId (Long) 申请商户通过后获取到的 userId 数据
orderId (String) 商户一方的订单ID,在商户一方唯一确定一个订单数据
currency (String) 支付的货币符号,目前暂时只支持VBC
price (Double) 支付的货币总额
sign (String) ECDSA签名数据,算法为 ECDSA.sign(userId+orderId+currency+price)

返回数据

{ "callback":"https://t.radarlab.org/index.html#/tpay/8db49615-a74b-47c4-a06a-74a5f8fcda24" "status":"10000", "txnHash":"6492A9A877D00CB4779E0AF6A355D7C1FA575B693CDA2EF137C566C6CEC22770", //状态为:10004的时候返回 "address":"rQs346h3eCygMwDYVheV5FZ7SLNhqP7X75", //状态为:10004的时候返回 "msg":"success" }

返回数据说明

Field Type Description
callback (String) 支付地址,跳转至这个地址之后会打开支付页面
status (String) 状态值,请参考下方的状态值说明
txnHash (String) 仅当状态值为10004时返回,radar的交易HASH值
address (String) 仅当状态值为10004时返回,支付该订单的账号地址
msg (String) 错误提示信息

状态值说明

Code Description
10001 数据格式不对
10002 内部服务错误
10003 平台用户未找到,用户需要提前申请(open user not found)
10004 订单已经被支付(order has been payed)
10005 签名错误(sign failed)
10010 IP错误(IP address failed)
10011 订单正在支付(Order is processing.)
10012 订单支付失败(Order is failed.)

回调 callback

接口的url由商户申请时提供。

接口回调时,说明订单已经被用户支付,订单状态处于支付中的状态,商户需要通过第一个创建订单的接口检查支付状态。

支付失败的订单可以被再次支付。

参数说明

Field Type Description
orderId (String) 商户一方的订单ID,在商户一方唯一确定一个订单数据
currency (String) 支付的货币符号,目前暂时只支持VBC
price (Double) 支付的货币总额
txHash (String) 支付的radar 交易HASH 数据
sign (String) ECDSA签名数据,算法为 ECDSA.sign(userId + orderId + currency +price + txnHash)

附录

参考代码:ECDSA签名算法

//get code from github: https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/core/ECKey.java @Test public void testSignatures() throws Exception { // Test that we can construct an ECKey from a private key (deriving the public from the private), then signing // a message with it. BigInteger privkey = new BigInteger(1, HEX.decode("180cb41c7c600be951b5d3d0a7334acc7506173875834f7a6c4c786a28fcbb19"));
    ECKey key = ECKey.fromPrivate(privkey); byte[] output = key.sign(Sha256Hash.ZERO_HASH).encodeToDER();
    assertTrue(key.verify(Sha256Hash.ZERO_HASH.getBytes(), output)); // Test interop with a signature from elsewhere. byte[] sig = HEX.decode( "3046022100dffbc26774fc841bbe1c1362fd643609c6e42dcb274763476d87af2c0597e89e022100c59e3c13b96b316cae9fa0ab0260612c7a133a6fe2b3445b6bf80b3123bf274d");
    assertTrue(key.verify(Sha256Hash.ZERO_HASH.getBytes(), sig));
}
评论列表
马小龙 2019-01-23 23:58:38
为什么迟迟得不到雷达技术部门的回复?
泮哥 2019-04-25 01:48:06
邮件联系不上吗?
1/1
发表评论
VRP是雷达宝吗?
评论通过审核后显示。
返利广告
文章分类
雷达cny代充

雷达币K线
微信扫一扫
站点信息
|