WeChat Pay HTTPS 서버 인증서의 루트 CA 인증서가 2018년 8월 23일에 만료되므로 WeChat Pay는 2018년 5월 29일에 서버 인증서를 교체할 계획입니다. 새로운 루트 CA 인증서가 서버에 배포되지 않으면 주문, 환불 및 기타 기능이 제대로 작동하지 않을 수 있습니다.
다음 방법은 이제 참고용으로만 테스트용으로 제공됩니다.
public function check_wx() { $mch_id = '1234567891'; // 商户号 $key = 'rKVuqAv2zlum1JQkfR7OSeRHc1Bg7poD'; // 商户支付密钥 $nonce_str = strtoupper(md5('3123123131')); // 随机字符串 // 开始生成sign $str = "mch_id=".$mch_id."&nonce_str=".$nonce_str."&key=".$key; $sign = strtoupper(md5( $str )); // 打印字符串和签名 echo $nonce_str; echo "<br />"; echo $sign; $xml = "<xml> <mch_id>1495281252</mch_id> <nonce_str>4E74A5EC8F10C3E7EECE6D8D574CB861</nonce_str> <sign>BFB9329EC7B027DF83AFB848F08E8077</sign> </xml>"; $url = "https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey"; /*$a = '{"mch_id":"1495281252","nonce_str":"4E74A5EC8F10C3E7EECE6D8D574CB861","sign":"BFB9329EC7B027DF83AFB848F08E8077"}';*/ // $result = http_request($url,$xml); $result = $this->postXmlCurl($xml,$url); dump($result); } /** * 作用:以post方式提交xml到对应的接口url */ public function postXmlCurl($xml,$url,$second=30) { //初始化curl $ch = curl_init(); //设置超时 CURLOP_TIMEOUT //curl_setopt($ch, CURLOP_TIMEOUT, $second); curl_setopt($ch, CURLOPT_TIMEOUT, $second); //这里设置代理,如果有的话 //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8'); //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); //设置header curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //post提交方式 curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); //运行curl $data = curl_exec($ch); //curl_close($ch); //返回结果 if($data) { curl_close($ch); return $data; } else { $error = curl_errno($ch); //echo "curl出错,错误码:$error"."<br>"; //echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>"; curl_close($ch); return false; } }
위 내용은 WeChat Pay API 인터페이스 확인 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!