>  기사  >  백엔드 개발  >  WeChat Pay API 인터페이스 확인 호출

WeChat Pay API 인터페이스 확인 호출

小云云
小云云원래의
2018-05-19 13:47:382260검색

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 = &#39;{"mch_id":"1495281252","nonce_str":"4E74A5EC8F10C3E7EECE6D8D574CB861","sign":"BFB9329EC7B027DF83AFB848F08E8077"}&#39;;*/
        // $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, &#39;8.8.8.8&#39;);
        //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=&#39;http://curl.haxx.se/libcurl/c/libcurl-errors.html&#39;>错误原因查询</a></br>";
            curl_close($ch);
            return false;
        }
    }

위 내용은 WeChat Pay API 인터페이스 확인 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.