微信支付计划更换服务器证书:调用微信支付沙箱环境的API接口验证

微信支付HTTPS服务器证书的根证书将于2018-08-23日到期,微信支付计划于2018-05-29日更换服务器证书。若商户服务器上没有部署新的根CA证书,将可能导致你的下单、退款等功能无法正常使用。现在需要验证商户服务器是否支持,现在说一下沙箱环境下的接口验证。
一、商户服务器环境说明

服务器:阿里云centos7
开发环境:Java1.7

二、验证步骤

1、微信支付已经将新的服务器证书部署到了沙箱域名(apitest.mch.weixin.qq.com), 如果使用沙箱环境的接口能调用成功,通常表明客户端支持微信支付新的服务器证书。
请求Url:https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey
请求方式:POST
请求格式:XML
请求参数:商户号 mch_id 、随机字符串 nonce_str 、签名 sign
2、参数获取
商户号(mch_id):是微信支付分配的微信商户号,
随机字符串(nonce_str ):是随机字符串,不长于32位,可以通过微信支付api提供的工具类获取:RandomUtil.getRandomStringByLength(32)
签名(sign ):需要通过| 签名生成算法 |获取到。具体办法:
假如传送的参数如下:

mch_id: 10000100 
nonce_str: ibuaiVcKdpRxkhJA 

说明:就需要这两个参数就行了
对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:

stringA="mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";

通过MD5拼接API密钥:微信支付api提供了MD5的工具类

String stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"; //注:key为商户平台设置的密钥key 
String  sign = MD5Util.MD5Encode(stringSignTemp).toUpperCase();

这样就获取到了签名sign.
现在需要去验证签名sign是否正确(签名校验工具)

微信支付计划更换服务器证书:调用微信支付沙箱环境的API接口验证_第1张图片
123.png

签名验证成功后,通过ssh工具登录到阿里云centos7服务器,通过如下命令进行post提交,验证商户服务器是否支持新的证书

echo '商户号随机数签名'|curl -X POST -H 'Content-type:text/xml' -d @- https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey

如果返回如下内容:


  
  
  

表示商户服务器支持新的证书。

你可能感兴趣的:(微信支付计划更换服务器证书:调用微信支付沙箱环境的API接口验证)