对接相关
活动方提供链接挂在小程序,小程序跳转链接时候带ticket过去,有效期五分钟,用于获取操作用户信息。
关于验签:
请求所有非空字段按照字典升序排列并按照格式拼接,获取MD5摘要签名,请求携带签名放在请求头sign字段中,appSecret为给下游分配秘钥。
```
/**
* 生成签名
*
* @param data 待签名数据
* @param appSecret API密钥
* @param signType 签名方式
* @return 签名
*/
public static String generateSignature(final Map<String, String> data, String appSecret, SignType signType) throws Exception {
Set<String> keySet = data.keySet();
String[] keyArray = keySet.toArray(new String[keySet.size()]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
for (String k : keyArray) {
// 参数值为空,则不参与签名
if (data.get(k).trim().length() > 0) {
sb.append(k).append("=").append(data.get(k).trim()).append("&");
}
}
sb.append("appSecret=").append(appSecret);
log.info("待签名字符串:{}", sb.toString());
if (SignType.MD5.equals(signType)) {
return MD5(sb.toString()).toUpperCase();
} else if (SignType.HMACSHA256.equals(signType)) {
return HMACSHA256(sb.toString(), appSecret);
} else {
throw new Exception(String.format("Invalid sign_type: %s", signType));
}
}
public enum SignType {
MD5, HMACSHA256
}
```
### 其他问题
- 支付通过一个接口直接掉起么(跳转小程序指定路径带订单号,请求后台获取支付参数再调用支付)
- 平台下单,后续订单状态变更需要回传给我们(新增接口做好检查和权限)?
- 享权资格验证接口传的用户标识 不同活动不一样(号码、客户号等) 如何操作(下游统一传递customerId,我们统一包装传给建行包括客户号等完整用户信息)
- 开通支付子商户 三方商户都需要关联子商户么 请求支付需要上传商户号么 还是后台直接配置 (订单上记录收款商户,传已给下游开通的子商户号指定收款账号)
- 是否涉及IP白名单(加上)
- 商户接口权限分配和设计 (暂不加)
支付限制-----
平台统一卡种限制建行卡,不符合退款,然后活动方也可以限制具体卡种储蓄卡、信用卡,根据他们限制我们判断统一处理。