车企小程序留资接口
请求参数
具体入参值可找产险开发老师获取。
| 传值方式 | 参数值 | |
|---|---|---|
| client_id | POST 请求 | 应用ID 例如:P_PA002_ELIS_UWS(在“我的应用”列表中) |
| grant_type | POST 请求 | 授权类型 固定值:client_credentials |
| client_secret | POST 请求 | 应用密钥 例如:znD5x4d1(创建应用时返回的应用密码) |
响应参数
| access_token | oauth系统对获取access_token有调用限制,请将获取的token值放到本地缓存;注意token是有有效期的,当token失效时需要做相应处理。 |
|---|---|
| expires_in | 有效期 例如 :60 (单位:分钟);0表示永久有效;expires_in只是有效期参考,不以这个为唯一更新token的标准。注意调用接口返回13002和13012的错误码必须处理。 |
| openid | openid |
具体指引链接:https://api.pingan.com.cn/dev/index.do?bAPhdWDKZYpPM00
详情数据留资接口地址
request_id只要每个请求传的值不一样就可以,建议传时间戳毫秒数。
测试地址
POST https://test-api.pingan.com.cn:20443/open/mina-store/in/driving/trial/retention/detail?access_token=2AB1657A2FCA42F58E7C59A7CF27B851&request_id=123451
生产地址
POST https://api.pingan.com.cn/open/mina-store/in/driving/trial/retention/detail?access_token=2AB1657A2FCA42F58E7C59A7CF27B851&request_id=123451
Headers
| 参数名称 | 参数值 | 是否必须 | 备注 |
|---|---|---|---|
| Content-Type | application/json | 是 | |
| X-MINA-MINI-APP-ID | 是 | 小程序ID | |
| X-MINA-TIMESTAMP | 是 | 请求时间(毫秒级) | |
| X-MINA-SIGN | 是 | 请求签名, 签名有效时间 60 秒, 采用 RSA 算法, 签名结果使用 Base64 进行编码;签名格式: RSA(requestBodyString + X-MINA-MINI-APP-ID + X-MINA-TIMESTAMP) |
请求参数
| 名称 | 类型 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|
| dataJson | string | 是 | 留资数据 | 数据是带转义字符的JsonArray字符串,格式详情见下面表单 |
格式如下:
| 名称 | 类型 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|
| miniAppId | string | 是 | 小程序ID | 小程序ID |
| openId | string | 否 | 用户ID | |
| mobile | string | 否 | 用户手机号码 | 用户手机号码,mobile和mobileMD5任选一个传输。 如果传该字段,需要sm4加密 |
| autoCompaniesName | string | 否 | 车企名称 | 车企名称 |
| mobileMD5 | string | 否 | 手机号MD5值 | 如果不传该值,会对mobilesm4解密后进行md5加密 |
| name | string | 否 | 留资人姓名 | 留资人姓名 |
| filledInfo | string | 否 | 其他填写信息 | 其他填写信息 |
| retentionTime | string | 否 | 留资时间 | 留资时间 |
| trialTime | string | 否 | 试驾时间 | 试驾时间 |
| purchaseTime | string | 否 | 购车时间 | 购车时间 |
请求参数示例:
{
"dataJson": "[{\"miniAppId\":\"cx79198e9b7b75499a\",\"openId\":\"用户ID1\",\"autoCompaniesName\":\"车企名称\",\"mobile\":\"57B47C30AB4B0DA267B25C0D0DB968C3\",\"mobileMD5\":\"MD5可以为空。\",\"name\":\"姓名\",\"filledInfo\":\"其他填写信息varchar(5000)\",\"retentionTime\":\"2024-11-04 00:00:00\",\"trialTime\":\"2024-11-04 00:00:00\",\"purchaseTime\":\"2024-11-04 00:00:00\"},{\"miniAppId\":\"cx79198e9b7b75499a\",\"openId\":\"用户ID2\",\"autoCompaniesName\":\"车企名称1\",\"mobile\":\"57B47C30AB4B0DA267B25C0D0DB968C3\",\"mobileMD5\":\"MD5可以为空。\",\"name\":\"姓名1\",\"filledInfo\":\"其他填写信息22varchar(5000)\",\"retentionTime\":\"2024-11-04 00:00:00\",\"trialTime\":\"2024-11-04 00:00:00\",\"purchaseTime\":\"2024-11-04 00:00:00\"}]"
}
响应参数
| 名称 | 类型 | 是否必须 | 默认值 | 备注 |
|---|---|---|---|---|
| responseCode | string | 是 | 默认0为成功 | |
| responseMsg | string | 否 | 提示信息 | |
| reqId | string | 是 | 请求ID,用于查询日志 |
统计数据留资接口地址
request_id只要每个请求传的值不一样就可以,建议传时间戳毫秒数。
测试地址
POST https://test-api.pingan.com.cn:20443/open/mina-store/in/driving/trial/retention/statistic?access_token=2AB1657A2FCA42F58E7C59A7CF27B851&request_id=123451
生产地址
POST https://api.pingan.com.cn/open/mina-store/in/driving/trial/retention/statistic?access_token=2AB1657A2FCA42F58E7C59A7CF27B851&request_id=123451
Headers
| 参数名称 | 参数值 | 是否必须 | 备注 |
|---|---|---|---|
| Content-Type | application/json | 是 | |
| X-MINA-MINI-APP-ID | 是 | 小程序ID | |
| X-MINA-TIMESTAMP | 是 | 请求时间(毫秒级) | |
| X-MINA-SIGN | 是 | 请求签名, 签名有效时间 60 秒, 采用 RSA 算法, 签名结果使用 Base64 进行编码;签名格式: RSA(requestBodyString + X-MINA-MINI-APP-ID + X-MINA-TIMESTAMP) |
请求参数
| 名称 | 类型 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|
| dataJson | string | 是 | 留资数据 | 数据是带转义字符的json字符串,格式详情见下面表单 |
格式如下:
| 名称 | 类型 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|
| miniAppId | string | 是 | 小程序ID | 小程序ID |
| autoCompaniesName | string | 否 | 车企名称 | 车企名称 |
| visits | string | 否 | 访问次数 | 理论上传数字,为了方便用String传输 |
| retention | 留资次数 | 否 | 留资人姓名 | 理论上传数字,为了方便用String传输 |
| trial | string | 否 | 试驾次数 | 理论上传数字,为了方便用String传输 |
| transactions | string | 否 | 交易次数 | 理论上传数字,为了方便用String传输 |
请求参数示例:
{
"dataJson": "[{\"miniAppId\":\"cx79198e9b7b75499a\",\"autoCompaniesName\":\"测试公司2\",\"visits\":\"访问次数1000001\",\"retention\":\"留资次数1000001\",\"trial\":\"试驾次数1000001\",\"transactions\":\"成交次数1000001\"},{\"miniAppId\":\"cx79198e9b7b75499a\",\"autoCompaniesName\":\"测试公司3\",\"visits\":\"访问次数1000002\",\"retention\":\"留资次数1000002\",\"trial\":\"试驾次数1000002\",\"transactions\":\"成交次数1000002\"}]"
}
响应参数
| 名称 | 类型 | 是否必须 | 默认值 | 备注 |
|---|---|---|---|---|
| responseCode | string | 是 | 默认0为成功 | |
| responseMsg | string | 否 | 提示信息 | |
| reqId | string | 是 | 请求ID,用于查询日志 |
代码示例
示例代码(后端 java):生成签名
import org.apache.commons.codec.binary.Base64;
/**
* 生成签名
* @param base64PrivateKey base64格式的 RSA 私钥
* @param content 需要签名的内容
* @return 签名传
*/
public static String signBySHA256withRSA(String base64PrivateKey, String content) {
try {
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(base64PrivateKey));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(content.getBytes());
return Base64.encodeBase64String(signature.sign());
} catch (Exception e) {
logger.error("SHA256withRSA is error:{}",e.getMessage());
}
return null;
}
public static void main(String[] args) {
// 请求的body
String requestBody="{\"miniAppId\":\"cxec681d79635042d7\",\"identityCode\":\"dn67tajk0fsx4aa\",\"deviceId\":\"h09e9fbeae0118d69872ed90c84feaea3\"}";
// 你的私钥, 从开放平台获取
String privateKey="yourRsaPrivateBy";
// 生成 rsa 签名
String base64Sign = signBySHA256withRSA(privateKey, content);
System.out.println(base64Sign);
}