Heim  >  Artikel  >  Backend-Entwicklung  >  Rufen Sie die Überprüfung der WeChat Pay API-Schnittstelle auf

Rufen Sie die Überprüfung der WeChat Pay API-Schnittstelle auf

小云云
小云云Original
2018-05-19 13:47:382260Durchsuche

Da das Root-CA-Zertifikat des HTTPS-Serverzertifikats von WeChat Pay am 23. August 2018 abläuft, plant WeChat Pay, das Serverzertifikat am 29. Mai 2018 zu ersetzen. Wenn auf Ihrem Server kein neues Root-CA-Zertifikat bereitgestellt wird, funktionieren Ihre Bestell-, Rückerstattungs- und andere Funktionen möglicherweise nicht ordnungsgemäß.

Die folgenden Methoden werden jetzt zum Testen und nur als Referenz bereitgestellt.

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

Das obige ist der detaillierte Inhalt vonRufen Sie die Überprüfung der WeChat Pay API-Schnittstelle auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn