兑现币安礼品卡(USER_DATA)
接口描述
该API用于兑现币安礼品卡。兑现后,币种将存入您的资金账户。 请注意,如果您在 24 小时内输入错误币安礼品卡兑现码 5 次,您将无法在当天兑现任何币安礼品卡。
HTTP请求
POST /sapi/v1/giftcard/redeemCode
请求权重(IP)
1
请求参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
code | STRING | YES | 用于赎回的币安礼品卡,支持加密&未加密两种方式 |
externalUid | String | NO | 每个外部用户 ID 代表合作伙伴平台上的某个用户。该功能帮助您识别不同用户的兑现行为,例如兑现频次和金额。它还有助于对单个账户进行风险和限额控制,例如设置单个账户每日兑现金额、频次和卡密输错次数的上限。这也将防止单个帐户突破合作伙伴的每日兑现限额从而导致合作伙伴的账户在当日无法继续制码或者兑现。如果您有外部的网站且有不同的用户在您的平台上兑现 币安礼品卡,我们强烈建议您使用此功能并将您用户的用户 ID 传输给我们来进行风控。为保护用户的信息安全,您可以选择以任何格式(上限为 400 个字符)传输用户 ID。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 参数code有两种形式传输
- Plaintext: 未加密的格式
- Encrypted: 加密后的格式
- 用加密后的格式传输更安全,传输加密的格需要以下步骤:
- 调用获取公钥的API
- 用加密算法对公钥和原始的binance code进行加密:
RSA/ECB/OAEPWithSHA-256AndMGF1Padding
获取加密后的binance code的java使用方式:
private static PublicKey getPublicKey(String publicKey) throws Exception {
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] decodedKey = Base64.decodeBase64(publicKey.getBytes());
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(decodedKey);
return keyFactory.generatePublic(keySpec);
}
public static String encrypt(String content, String publicKeyString) throws Exception {
if (StringUtils.isAnyEmpty(new CharSequence[]{content, publicKeyString})) {
throw new IllegalArgumentException("invalid content or privateKey.");
} else {
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING", "BC");
cipher.init(Cipher.ENCRYPT_MODE, getPublicKey(publicKeyString));
return new String(Base64.encodeBase64URLSafe(cipher.doFinal(content.getBytes("UTF-8"))));
}
}
static {
Security.addProvider(new BouncyCastleProvider());
}
响应示例
{
"code":"000000",
"message":"success",
"data":{
"referenceNo":"0033002328060227",
"identityNo":"10317392647411060736",
"token":"BNB",
"amount":"0.00000001"
},
"success":true
}