微信沙箱测试验证客户端是否支持微信支付新的服务器证书

公司收到了微信叫更新证书的邮件,老板吓尿了,担心微信支付出问题,于是赶紧立马叫我们作出相关解决办法,于是悄悄地看了微信提供的相关文档,偷偷地叫上渡娘帮忙,最后总结了公认的第一种方式:调用微信支付沙箱环境的API接口验证

API接口调用说明:

Url="https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey";

请求方式POST

请求格式XML

请求参数:

字段名字段必填示例值类型说明

必传:商户号mch_id:1319307700 String(32)微信支付分配的微信商户号 

必传:随机字符串nonce_str:fasfasfsfas String(32)随机字符串,不长于32位

必传:签名sign是700006EAF9D33A2063D6A5DA08B57B29  String(32)签名结果;

这个签名sign是根据mch_id和nonce_str以及商户Key(暂不包括其他参数)生成的。商户Key即商户支付密钥key

详见https://pay.weixin.qq.com/wiki/tools/signverify/生成签名(传参时sign必须与生成sign的mch_id和nonce_str一致)(暂不包括其他参数)

返回参数:

返回状态码return_code是SUCCESS String(16) SUCCESS或FAIL

当返回结果return_code为“FAIL”,打印的日志可以看到错误信息:有可能是必传参数没传,参数错误,签名不匹配(获取沙箱密钥失败,确认交易密钥是否正确)。

当返回结果return_code为“SUCCESS”,说明当前客服端已支持DigCert证书,反之则需要根据安装证书部分的指引,升级证书。

代码:

new Thread(new Runnable() {
    @Override
    public void run() {
        String url = "https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey";
        new HttpPostTest().testPost(url);
    }
}).start();
import com.yuetun.jianduixiang.util.Logger;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class HttpPostTest {
    public void testPost(String urlStr) {
        try {
            URL url = new URL(urlStr);
            URLConnection con = url.openConnection();
            con.setDoOutput(true);
            con.setRequestProperty("Pragma:", "no-cache");
            con.setRequestProperty("Cache-Control", "no-cache");
            con.setRequestProperty("Content-Type", "text/xml");
            OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
            String xmlInfo = getXmlInfo();
            out.write(new String(xmlInfo.getBytes("utf-8")));
            out.flush();
            out.close();
            BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String line;
            for (line = br.readLine(); line != null; line = br.readLine()) {
                Logger.i("zhengshu",line);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private String getXmlInfo() {
        StringBuilder sb = new StringBuilder();
        sb.append("<xml>");
        sb.append("<nonce_str>fsfsfsfssfsfs</nonce_str>");
        sb.append("<mch_id>1319307700</mch_id>");
        sb.append("<sign>700006EAF9D33A2063D6A5DA08B57B29</sign>");
        sb.append("</xml>");
        return sb.toString();
    }

}





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值