Maison  >  Article  >  développement back-end  >  Appelez la vérification de l'interface de l'API WeChat Pay

Appelez la vérification de l'interface de l'API WeChat Pay

小云云
小云云original
2018-05-19 13:47:382279parcourir

Étant donné que le certificat CA racine du certificat du serveur HTTPS WeChat Pay expirera le 23 août 2018, WeChat Pay prévoit de remplacer le certificat du serveur le 29 mai 2018. Si un nouveau certificat CA racine n'est pas déployé sur votre serveur, votre commande, votre remboursement et d'autres fonctions risquent de ne pas fonctionner correctement.

Les méthodes suivantes sont désormais fournies à titre de test, à titre de référence uniquement.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn