开发指南

获取配置

在商户端查看开发者配置信息,获取 appIdappSecret, 下载 RSA 公钥

接口鉴权

Headers 添加 Z-AUTH 字段, 值为获取到的 AccessToken。 获取参见 鉴权 部分文档

全局配置

Headers 添加 Content-Type 字段, 值为 application/json; 指定请求体为 json 格式。

数据加密

部分接口需要将请求参数进行加密,使用加密串。

从接口中取得原始数据 data

data
{
    "cardManageId": 1,
    "amount": 100
}

向 data 中添加时间戳 timestamp

data
{
    "cardManageId": 1,
    "amount": 100,
    "timestamp": 1719474525339
}

将 data 序列化为字符串

string
{"cardManageId":1,"amount":100,"timestamp":1719474525339}

使用公钥加密并 base64 编码得到加密字符串

加密串
"e5EyXpem6GKbgDs4puARn0hTqUzNNV79Hn6oBbvTZQ56V5e33wUYsQ+ypY0pWIIf5UOW3RjT6L8KQNYkopXpzgLk0zfmyOXqdOAkQ1Iqr/MaxNhLmGm/cA3aZli2QqItEdxNs6hUuQeAuF6mScxdCs3tsY4TNP0UVGyNNmQwfMA="

数据加密:

Java
PHP
string
// 1. 构建需要参数
HashMap<String, Object> data = new HashMap<>(3);
data.put("cardManageId", 1);
data.put("amount", 100);
// 2. 添加时间戳
data.put("timestamp", System.currentTimeMillis());
// 3. 序列化参数
String json = JSONUtil.toJsonStr(data);
// 4. 使用公钥加密得到加密串
RSA rsa = new RSA(null, "PublicKeyStr");
byte[] encrypt = rsa.encrypt(json, KeyType.PublicKey);
String encryptStr = Base64.encode(encrypt);

加密串有效期为 5 分钟,超过 5 分钟则失效。

多语言

接口支持多语言切换,默认中文。

请求头中添加 Accept-Language 字段,值为 zh-CN

支持的语言有:

  • 中文:zh-CNzh

  • 英文:en-USen

响应数据

接口返回数据中,code 为状态码,message 为提示信息,data 为返回数据。

响应示例
{
    "code": 200,
    "message": "操作成功",
    "data": {
        "cardId": "XR181160403223456480",
        "amount": 0,
        "virtualAmt": null,
        "cardModel": "recharge",
        "cardCurrency": "USD",
        "cardCvv": "123",
        "cardNumber": "5592924341234567",
        "cardStatus": "Active",
        "openCardTime": "2024-07-12T03:30:35.044+00:00",
        "cancelCardTime": null,
        "openCardFee": 3,
        "rechargeMoney": 977.06,
        "rechargeFee": 19.94,
        "cardSingleLimit": null,
        "cardTotalLimit": null,
        "cardExpiration": "01/29"
    }
}