<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ``` ~~~ <?php header('content-type:text/html;charset=utf-8'); class WeixinTx { protected $appid; protected $mch_id; protected $appkey; protected $openid; protected $amount; protected $desc; protected $re_user_name; function __construct($appid, $mch_id, $openid, $amount, $desc, $appkey, $re_user_name) { $this->appid = $appid; $this->openid = $openid; $this->mch_id = $mch_id; $this->key = $appkey; $this->desc = $desc; $this->amount = $amount; $this->re_user_name = $re_user_name; } public function Wxtx() { $return = $this->Wxtxpay(); return $return; } //統一下單接口 private function Wxtxpay() { $data['mch_appid'] = $this->appid;//商戶的應用appid $data['mchid'] = $this->mch_id;//商戶ID $data['nonce_str'] = $this->createNoncestr();//這個據說是唯一的字符串下面有方法 $data['partner_trade_no'] = time() . rand(10000, 99999);//.time();//這個是訂單號。 $data['openid'] = $this->openid;//這個是授權用戶的openid。。這個必須得是用戶授權才能用 $data['check_name'] = 'NO_CHECK';//這個是設置是否檢測用戶真實姓名的 $data['re_user_name'] = $this->re_user_name;//用戶的真實名字 $data['amount'] = $this->amount;//提現金額 $data['desc'] = $this->desc;//訂單描述 $data['spbill_create_ip'] = $this->get_server_ip();//服務器的ip $secrect_key = $this->key;///這個就是個API密碼。32位的。。隨便MD5一下就可以了 $data = array_filter($data); ksort($data); $str = ''; foreach ($data as $k => $v) { $str .= $k . '=' . $v . '&'; } $str .= 'key=' . $secrect_key; $data['sign'] = md5($str); $xml = $this->arraytoxml($data); $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; $res = $this->curl($xml, $url); $return = $this->xmltoarray($res); return $return; } //作用:產生隨機字符串,不長于32位 private function createNoncestr($length = 32) { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } private function arraytoxml($data) { $str = '<xml>'; foreach ($data as $k => $v) { $str .= '<' . $k . '>' . $v . '</' . $k . '>'; } $str .= '</xml>'; return $str; } private function xmltoarray($xml) { //禁止引用外部xml實體 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring), true); return $val; } private function curl($param = "", $url) { $postUrl = $url; $curlPost = $param; $ch = curl_init(); //初始化curl curl_setopt($ch, CURLOPT_URL, $postUrl); //抓取指定網頁 curl_setopt($ch, CURLOPT_HEADER, 0); //設置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求結果為字符串且輸出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1); //post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); // 增加 HTTP Header(頭)里的字段 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 終止從服務端進行驗證 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSLCERT, getcwd() . '/cert/hyb_yl/apiclient_cert.pem'); //這個是證書的位置 curl_setopt($ch, CURLOPT_SSLKEY, getcwd() . '/cert/hyb_yl/apiclient_key.pem'); //這個也是證書的位置 $data = curl_exec($ch); //運行curl curl_close($ch); return $data; } /** * 獲取服務器端IP地址 * @return string */ private function get_server_ip() { if (isset($_SERVER)) { if ($_SERVER['SERVER_ADDR']) { $server_ip = $_SERVER['SERVER_ADDR']; } else { $server_ip = $_SERVER['LOCAL_ADDR']; } } else { $server_ip = getenv('SERVER_ADDR'); } return $server_ip; } } ~~~ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看