最近也在做微信支付的验收,请问验收的签名,是需要单独写一端代码来获取然后在整个验收期间都不变,还是需要在支付代码里每次都动态获取,直到验收完成,再换成自己的原来的API密钥???这里实在不明白,网上搜了好久也没有相关信息。
我自己写了个小的程序用curl来模拟post行为,始终获取失败
<?php
$xml = '<xml><appid>开放平台的AppID</appid><mch_id>商户号</mch_id><nonce_str>32位随机数</nonce_str><sign>微信支付API的密钥</sign></xml>';
$url = 'https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey';
$header[] = "Content-type: text/xml;charset=UTF-8";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$a = curl_exec($ch);
echo $a;
curl_close($ch);
?>
<xml>
<return_code><!--[CDATA[FAIL]]--></return_code>
<return_msg><!--[CDATA[获取沙箱密钥失败,确认交易密钥是否正确]]--></return_msg>
</xml>
以下是官网的资料:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_1 这里看到了获取的说明,但是没说是怎么获取???
获取验签秘钥API:
请求Url https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey
是否需要证书 否
请求方式 POST
请求参数:
字段名 字段 必填 示例值 类型 说明
商户号 mch_id 是 1305638280 String(32) 微信支付分配的微信商户号
随机字符串 nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
签名 sign 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 签名值
skysowe
你们当时做了沙箱验收吗?这是必须的还是可选的,我用沙箱能获得数据,直接用正式api密钥返回的数据是空
2018-05-07 20:34