大家好,我是小悟
关于自动处理【微信消费者投诉管理系统】,详细介绍一下如何配置。
阅读这篇文章之前,结合这篇【连夜干出来一个自动处理【微信消费者投诉管理系统】,支持多商户】干货食用更佳。
1、商户信息
商户名称:商户号所属的商户简称。
商户号:微信支付商户平台-账户中心-商户信息-微信支付商户号。
商户平台apiV3密钥:微信支付商户平台-账户中心-API安全-设置APIv3密钥。
商户appId:微信支付商户平台-产品中心-AppID账号管理-我关联的AppID账号。
商户API证书序列号:微信支付商户平台-账户中心-API安全-申请API证书-管理证书-API证书管理。
商户API证书位置路径:把API证书下载下来会有三个证书文件,把apiclient_key.pem证书上传服务器,复制证书所在位置路径即可。
微信支付平台证书序列号:需要代码生成。
微信支付平台证书位置路径:需要代码生成该证书后放置服务器。
新增商户信息后,要选中该商户,然后点击添加投诉地址,提示操作成功。这是很重要的一个步骤,只有这个操作成功了,系统才会收到微信的回调。
try {
InputStream inStream = request.getInputStream();
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
String result = new String(outSteam.toByteArray(), StandardCharsets.UTF_8);
logger.info("微信投诉通知回调返回参数result:{}", result);
CallBackBody callBackBody = JSONObject.parseObject(result, CallBackBody.class);
String eventType = callBackBody.getEvent_type();
ResourceBody resource = callBackBody.getResource();
AesUtils aesUtil = new AesUtils(wechatApiV3.getBytes(StandardCharsets.UTF_8));
String resourceStr = aesUtil.decryptToString(
resource.getAssociated_data().getBytes(StandardCharsets.UTF_8),
resource.getNonce().getBytes(StandardCharsets.UTF_8),
resource.getCiphertext());
logger.info("微信投诉通知回调返回参数resourceStr明文:{}", resourceStr);
NotificationResult notificationResult = JSONObject.parseObject(resourceStr, NotificationResult.class);
String complaintId = notificationResult.getComplaint_id();
String actionType = notificationResult.getAction_type();
logger.info("微信投诉通知回调返回参数complaintId:{},actionType:{}", complaintId, actionType);
// 验证微信支付返回签名
String Wtimestamp = request.getHeader("Wechatpay-Timestamp");
String Wnonce = request.getHeader("Wechatpay-Nonce");
String Wsign = request.getHeader("Wechatpay-Signature");
logger.info("Wtimestamp:{},Wnonce:{},Wsign:{}", Wtimestamp, Wnonce, Wsign);
// 拼装待签名串
StringBuffer ss = new StringBuffer();
ss.append(Wtimestamp).append("\n");
ss.append(Wnonce).append("\n");
ss.append(result).append("\n");
// 验证签名
if (SignUtils.v3VerifyRSA(ss.toString(), Base64.decodeBase64(Wsign.getBytes()),
wechatPubKeyPath)) {
logger.info("微信投诉通知回调签名验证成功");
this.handleBusiness(complaintId, eventType, actionType, merchantBaseInfo);
res.put("code", "SUCCESS");
res.put("message", "OK");
} else {
logger.info("微信投诉通知回调签名验证失败");
res.put("code", "ERROR_NAME");
res.put("message", "VERIFY SIGN ERROR");
}
} catch (GeneralSecurityException e) {
e.printStackTrace();
res.put("code", "ERROR_NAME");
res.put("message", e.getMessage());
}
2、通知参数
邮箱通知参数配置
发送人邮箱:注册一个163邮箱用来当发送方。
发送人邮箱授权码:登录发送人163邮箱账号-设置-POP3/SMTP/IMAP-开启IMAP/SMTP服务和新增授权密码。
接收人邮箱:这个就是用来接收投诉单通知的接收人邮箱,可以不一定是163邮箱。
公众号通知参数配置
公众号appId:公众号后台-设置与开发-基本配置-公众号开发信息-开发者ID(AppID)。
公众号secret:公众号后台-设置与开发-基本配置-公众号开发信息-开发者密码(AppSecret)。
公众号模板消息id:公众号后台-广告与服务-模板消息-从历史模板库添加,所在行业要有【IT科技/互联网|电子商务】,然后搜索添加如下这个模板消息。
接收人公众号openId:这个就是用来接收投诉单通知的接收人公众号openId。公众号后台-内容与互动-用户管理,找到要设置为接收人的用户,然后右击头像位置,点击“检查”,就可以出来开发者模式,data-fakeid后边的值就是用户的openId。
短信通知参数配置
腾讯云短信secretId:腾讯云后台-访问管理-访问密钥-API密钥管理。
腾讯云短信secretKey:腾讯云后台-访问管理-访问密钥-API密钥管理。
腾讯云短信模板id:腾讯云后台-短信-国内短信-正文模板管理。
腾讯云短信appId:腾讯云后台-短信-应用管理-应用列表。
腾讯云短信签名:腾讯云后台-短信-国内短信-签名管理。
接收人手机号:这个就是用来接收投诉单通知的接收人手机号。
您的一键三连,是我更新的最大动力,谢谢
山水有相逢,来日皆可期,谢谢阅读,我们再会
我手中的金箍棒,上能通天,下能探海