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(); } }