## 说明
虚拟卡券类商品下单,订单查询接口中的`cardNumber`、`cardPassword`、`cardLink`为AES加密数据,使用来访应用上的AppSecret进行加密,需解密为明文
~~~json
{
"code": "0",
"msg": "请求成功",
"data": {
"tradeNo": "c72264ac-Cf66-a2c1-DC75-FA3D28fE29C0",
"dbyOrderId": "1411600301386975805440",
"totalGoodsAmount": 2640,
"totalFreightAmount": 0,
"orderItems": [
{
"orderItemId": "1600301440872611840",
"orderType": "virtual",
"goodsAmount": 2640,
"freightAmount": 0,
"status": 103,
"skuInfos": [
{
"skuCode": "20197729024",
"skuName": "奈雪の茶30元代金券",
"skuNum": 1,
"unitPrice": 2640,
"account": "15678999877",
"couponInfo": {
"cardType": 4,
"cardNumber": null,
"cardPassword": "I58alWnanbQrg5IzXVhFoA==",
"cardLink": null,
"cardCreateTime": "1670376632927",
"effectiveTime": "1673020799000"
}
}
]
}
],
"orderRemark": null
},
"msgId": "672bf8b3876b4ecb",
"success": true
}
~~~
## [](https://duobaoyu.com.cn/documentcenter?onlyFlag=7a989c821f9dfdba9bfe4515687c91c2#%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE)基础数据
**仅限测试使用**
* AppSecret:ne3ee8xg3hyx4af9smmupsi8ums4hovj
* 加密前的卡密:123qweASD
* 加密后的卡密:I58alWnanbQrg5IzXVhFoA==
### [](https://duobaoyu.com.cn/documentcenter?onlyFlag=7a989c821f9dfdba9bfe4515687c91c2#java%E7%89%88%E6%9C%AC)Java版本
AES解密如下:
~~~text
//参数列表:参数一为需要解密的密文,参数二为解密key,使用AppSecret作为解密key
String dataText = AesUtil.decrypt("I58alWnanbQrg5IzXVhFoA==", "ne3ee8xg3hyx4af9smmupsi8ums4hovj");
System.out.println("解密后的数据:" + dataText);//123qweASD
~~~
* * *
~~~java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
/**
* AES工具类
*/
public class AesUtil {
/**
* 加密
* @param content 待加密的字符串
* @param key 秘钥
*/
public static String encrypt(String content, String key) throws Exception{
Cipher cipher = Cipher.getInstance("AES");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
byte[] encodeBytes = Base64.getEncoder().encode(cipher.doFinal(content.getBytes(StandardCharsets.UTF_8)));
return new String(encodeBytes, StandardCharsets.UTF_8);
}
/**
* 解密
* @param content 待解密的字符串
* @param key 秘钥
*/
public static String decrypt(String content, String key) throws Exception{
Cipher cipher = Cipher.getInstance("AES");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
byte[] decodeBytes = cipher.doFinal(Base64.getDecoder().decode(content));
return new String(decodeBytes, StandardCharsets.UTF_8);
}
public static void main(String[] args) throws Exception {
String appSecret = "ne3ee8xg3hyx4af9smmupsi8ums4hovj";
String contentStr = "123qweASD";
String encryptText = encrypt(contentStr, appSecret);
System.out.println("加密后的字符串:" + encryptText);
String decryptText = decrypt(encryptText, appSecret);
System.out.println("解密后的字符串:" + decryptText);
}
}
~~~
- 产品介绍
- 开发指南
- 实物商品对接流程
- 签名规则
- JAVA SDK使用
- PHP SDK使用
- 商品消息对接流程
- 虚拟商品对接流程
- 电影H5对接流程
- 卡密信息解密规范
- 错误码查询
- 商品API文档
- 商品
- 查询商品SPU详情
- 查询商品SPU深度分页
- 查询商品可售性
- 手机号所属运营商查询
- 查询商品详情
- 查询商户商品上下架状态
- 查询商品最小起订量
- 查询商品价格
- 根据SKU查询商品SPU详情
- 查询商品分类逐级获取
- 查询商品分类分页获取
- 订单
- 运费评估
- 确认收货
- 查询订单物流信息
- 查询订单详情
- 取消订单
- 确认下单
- 实物商品预下单
- 虚拟商品预下单
- 售后
- 查询售后退款详情
- 查询售后订单详情
- 取消售后申请
- 确认售后完成
- 提交运单信息
- 查询售后支持的物流
- 查询客户寄回地址
- 创建退款退货申请
- 上传商品售后凭证
- 批量查询商品售后权益
- 地址
- 详细地址转换成供应链地址编码
- 省市区街道4级地址查询
- 消息
- 消息通知
- 账户
- 查询商户账户信息
- 电影API文档
- 电影H5
- 电影H5首页免登录
- 设置商户价格策略
- 设置商户货币兑换比例
- H5电影订单详情
- H5电影订单确认
- H5电影订单列表
- 电影消息
- 电影消息通知