<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>个人笔记记录</title><link>https://www.googom.com/</link><description>Good Luck To You!</description><item><title>微信退款v2</title><link>https://www.googom.com/?id=54</link><description>&lt;pre&gt;    &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;微信 退款 操作 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;refund&lt;/span&gt;($out_trade_no, $total_fee)
    {
        $parma &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;( &lt;span style=&quot;color:#a5c261;&quot;&gt;'appid' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;appid, &lt;span style=&quot;color:#a5c261;&quot;&gt;'mch_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;mch_id, &lt;span style=&quot;color:#a5c261;&quot;&gt;'sub_mch_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;sub_mch_id, &lt;span style=&quot;color:#a5c261;&quot;&gt;'nonce_str' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;createNoncestr&lt;/span&gt;(), &lt;span style=&quot;color:#a5c261;&quot;&gt;'out_refund_no' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;YmdHis&quot;&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;'out_trade_no' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$out_trade_no, &lt;span style=&quot;color:#a5c261;&quot;&gt;'total_fee' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$total_fee &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;100&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'refund_fee' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$total_fee &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;100&lt;/span&gt;,
        );
        $parma[&lt;span style=&quot;color:#a5c261;&quot;&gt;'sign'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSign&lt;/span&gt;($parma);
        $xmldata &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;arrayToXml&lt;/span&gt;($parma);
        $xmlresult &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;postXmlSSLCurl&lt;/span&gt;($xmldata, &lt;span style=&quot;color:#a5c261;&quot;&gt;'https://api.mch.weixin.qq.com/secapi/pay/refund'&lt;/span&gt;);
        $result &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;xmlToArray&lt;/span&gt;($xmlresult); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'result_code'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'SUCCESS'&lt;/span&gt;) { &lt;span style=&quot;color:#cc7833;&quot;&gt;return true&lt;/span&gt;;
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{ &lt;span style=&quot;color:#cc7833;&quot;&gt;return false&lt;/span&gt;;
        }
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;作用：产生随机字符串，不长于&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;32&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;位 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;createNoncestr&lt;/span&gt;($length &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;32&lt;/span&gt;)
    {
        $chars &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;abcdefghijklmnopqrstuvwxyz0123456789&quot;&lt;/span&gt;;
        $str &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&quot;&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;for &lt;/span&gt;($i &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;; $i &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;lt; &lt;/span&gt;$length; $i&lt;span style=&quot;color:#cc7833;&quot;&gt;++&lt;/span&gt;) {
            $str &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($chars, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;mt_rand&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;strlen&lt;/span&gt;($chars) &lt;span style=&quot;color:#cc7833;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$str;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;作用：生成签名 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSign&lt;/span&gt;($Obj)
    { &lt;span style=&quot;color:#cc7833;&quot;&gt;foreach &lt;/span&gt;($Obj &lt;span style=&quot;color:#cc7833;&quot;&gt;as &lt;/span&gt;$k &lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$v) {
            $Parameters[$k] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$v;
        } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;签名步骤一：按字典序排序参数 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;ksort&lt;/span&gt;($Parameters);
        $String &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;formatBizQueryParaMap&lt;/span&gt;($Parameters, &lt;span style=&quot;color:#cc7833;&quot;&gt;false&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;签名步骤二：在&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;后加入&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;KEY &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$String &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$String &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;amp;key=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;key; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;签名步骤三：&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;MD5&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;加密 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$String &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;md5&lt;/span&gt;($String); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;签名步骤四：所有字符转为大写 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$result_ &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;strtoupper&lt;/span&gt;($String); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$result_;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;作用：格式化参数，签名过程需要使用 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;formatBizQueryParaMap&lt;/span&gt;($paraMap, $urlencode)
    {
        $buff &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&quot;&lt;/span&gt;; &lt;span style=&quot;color:#6e9cbe;&quot;&gt;ksort&lt;/span&gt;($paraMap); &lt;span style=&quot;color:#cc7833;&quot;&gt;foreach &lt;/span&gt;($paraMap &lt;span style=&quot;color:#cc7833;&quot;&gt;as &lt;/span&gt;$k &lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$v) { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($urlencode) {
                $v &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;urlencode&lt;/span&gt;($v);
            }
            $buff &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;$k &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$v &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;amp;&quot;&lt;/span&gt;;
        }
        $reqPar &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;strlen&lt;/span&gt;($buff) &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;) {
            $reqPar &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($buff, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;strlen&lt;/span&gt;($buff) &lt;span style=&quot;color:#cc7833;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$reqPar;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;数组转换成&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;xml &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;arrayToXml&lt;/span&gt;($arr)
    {
        $xml &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;root&amp;gt;&quot;&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;foreach &lt;/span&gt;($arr &lt;span style=&quot;color:#cc7833;&quot;&gt;as &lt;/span&gt;$key &lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$val) { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;is_array&lt;/span&gt;($val)) {
                $xml &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$key &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;arrayToXml&lt;/span&gt;($val) &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;/&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$key &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;gt;&quot;&lt;/span&gt;;
            } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{
                $xml &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$key &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$val &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;/&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$key &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;gt;&quot;&lt;/span&gt;;
            }
        }
        $xml &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;/root&amp;gt;&quot;&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$xml;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;需要使用证书的请求 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;postXmlSSLCurl&lt;/span&gt;($xml, $url, $second &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;30&lt;/span&gt;)
    {
        $ch &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_init&lt;/span&gt;(); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;超时时间 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_TIMEOUT&lt;/span&gt;, $second); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;这里设置代理，如果有的话 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8'); &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_URL&lt;/span&gt;, $url); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYPEER&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;FALSE&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYHOST&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;FALSE&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;设置&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;header &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_HEADER&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;FALSE&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;要求结果为字符串且输出到屏幕上 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_RETURNTRANSFER&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;TRUE&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;设置证书 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;使用证书：&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;cert &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;与&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; key &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;分别属于两个&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;.pem&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;文件 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;默认格式为&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;PEM&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;，可以注释 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSLCERTTYPE&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'PEM'&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSLCERT&lt;/span&gt;, &lt;span style=&quot;color:#da4939;&quot;&gt;base_path&lt;/span&gt;() &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/public/cret/apiclient_cert.pem'&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;默认格式为&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;PEM&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;，可以注释 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSLKEYTYPE&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'PEM'&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSLKEY&lt;/span&gt;, &lt;span style=&quot;color:#da4939;&quot;&gt;base_path&lt;/span&gt;() &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/public/cret/apiclient_key.pem'&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//post&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;提交方式 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POST&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($ch, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POSTFIELDS&lt;/span&gt;, $xml);
        $data &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_exec&lt;/span&gt;($ch); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;返回结果 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($data) { &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_close&lt;/span&gt;($ch); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$data;
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{
            $error &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_errno&lt;/span&gt;($ch); &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;curl&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;出错，错误码&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;:&lt;/span&gt;$error&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;lt;br&amp;gt;&quot;&lt;/span&gt;; &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_close&lt;/span&gt;($ch); &lt;span style=&quot;color:#cc7833;&quot;&gt;return false&lt;/span&gt;;
        }
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//xml&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;转换成数组 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;private function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;xmlToArray&lt;/span&gt;($xml)
    { &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;禁止引用外部&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;实体 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;libxml_disable_entity_loader&lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;);
        $xmlstring &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;simplexml_load_string&lt;/span&gt;($xml, &lt;span style=&quot;color:#a5c261;&quot;&gt;'SimpleXMLElement'&lt;/span&gt;, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;LIBXML_NOCDATA&lt;/span&gt;);
        $val &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_decode&lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_encode&lt;/span&gt;($xmlstring), &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$val;
    }
 &lt;/pre&gt;</description><pubDate>Mon, 12 May 2025 11:25:06 +0800</pubDate></item><item><title>微信退款v3</title><link>https://www.googom.com/?id=53</link><description>&lt;pre&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;微信 退款 操作 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;refund($out_trade_no, $refund_money)
{
    $time &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;();
    $out_refund_no &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$time &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;rand&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;1111&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;9999&lt;/span&gt;);
    $refundData &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;[ &lt;span style=&quot;color:#a5c261;&quot;&gt;'out_trade_no' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$out_trade_no, &lt;span style=&quot;color:#a5c261;&quot;&gt;'out_refund_no' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$out_refund_no, &lt;span style=&quot;color:#a5c261;&quot;&gt;'reason' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;商品退款&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'funds_account' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'AVAILABLE'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'amount' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;[ &lt;span style=&quot;color:#a5c261;&quot;&gt;'refund' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$refund_money &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;100&lt;/span&gt;, &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;退款标价金额，单位为分，可以做部分退款 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'total' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$refund_money &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;100&lt;/span&gt;, &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;订单总金额，单位为分 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'currency' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'CNY' &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &lt;/span&gt;],
    ];
    $url &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'https://api.mch.weixin.qq.com/v3/refund/domestic/refunds'&lt;/span&gt;;
    $urlarr &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;parse_url&lt;/span&gt;($url); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;拆解为：&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;[scheme=&amp;gt;https,host=&amp;gt;api.mch.weixin.qq.com,path=&amp;gt;/v3/pay/transactions/native] &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$mchid &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;mch_id;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;商户&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;ID &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$xlid &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;xlid;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;证书序列号 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$refundData &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_encode&lt;/span&gt;($refundData);
    $nonce &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getNonceStr&lt;/span&gt;();
    $key &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSign&lt;/span&gt;($refundData, $urlarr[&lt;span style=&quot;color:#a5c261;&quot;&gt;'path'&lt;/span&gt;], $nonce, $time);
    $token &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;sprintf&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'mchid=&quot;%s&quot;,serial_no=&quot;%s&quot;,nonce_str=&quot;%s&quot;,timestamp=&quot;%d&quot;,signature=&quot;%s&quot;'&lt;/span&gt;, $mchid, $xlid, $nonce, $time, $key);
    $header &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;( &lt;span style=&quot;color:#a5c261;&quot;&gt;'Accept: application/json'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'Content-Type: application/json'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'Authorization: WECHATPAY2-SHA256-RSA2048 ' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$token
    );
    $res &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;curl_post_https&lt;/span&gt;($url, $refundData, $header);
    $res_array &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_decode&lt;/span&gt;($res, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;isset&lt;/span&gt;($res_array[&lt;span style=&quot;color:#a5c261;&quot;&gt;'status'&lt;/span&gt;]) &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;amp;&amp;amp; &lt;/span&gt;($res_array[&lt;span style=&quot;color:#a5c261;&quot;&gt;'status'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'PROCESSING' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;|| &lt;/span&gt;$res_array[&lt;span style=&quot;color:#a5c261;&quot;&gt;'status'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'SUCCESS'&lt;/span&gt;) &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;amp;&amp;amp; isset&lt;/span&gt;($res_array[&lt;span style=&quot;color:#a5c261;&quot;&gt;'status'&lt;/span&gt;])) { &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;[&lt;span style=&quot;color:#a5c261;&quot;&gt;'code' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'msg' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;退款成功&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;];
    } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{ &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;[&lt;span style=&quot;color:#a5c261;&quot;&gt;'code' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'msg' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$res_array[&lt;span style=&quot;color:#a5c261;&quot;&gt;'message'&lt;/span&gt;]];
    }
} &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;获取随机字符串 &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getNonceStr&lt;/span&gt;()
{
    $strs &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;QWERTYUIOPASDFGHJKLZXCVBNM1234567890&quot;&lt;/span&gt;;
    $name &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;str_shuffle&lt;/span&gt;($strs), &lt;span style=&quot;color:#6e9cbe;&quot;&gt;mt_rand&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;strlen&lt;/span&gt;($strs) &lt;span style=&quot;color:#cc7833;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;11&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;32&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$name;
} &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;微信支付签名 &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;getSign($data &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;(), $url, $randstr, $time)
{
    $str &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;POST&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$url &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$time &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$randstr &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$data &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;;
    $key &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;file_get_contents&lt;/span&gt;(&lt;span style=&quot;color:#da4939;&quot;&gt;base_path&lt;/span&gt;() &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/public/cert/apiclient_key.pem'&lt;/span&gt;);&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;在商户平台下载的秘钥&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;读取到变量 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$str &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSha256WithRSA&lt;/span&gt;($str, $key); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$str;
} &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;加密 &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSha256WithRSA&lt;/span&gt;($content, $privateKey)
{
    $binary_signature &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&quot;&lt;/span&gt;;
    $algo &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;SHA256&quot;&lt;/span&gt;; &lt;span style=&quot;color:#6e9cbe;&quot;&gt;openssl_sign&lt;/span&gt;($content, $binary_signature, $privateKey, $algo);
    $sign &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;base64_encode&lt;/span&gt;($binary_signature); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$sign;
} &lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;curl_post_https&lt;/span&gt;($url, $data, $header)
{ &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;模拟提交数据函数 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$curl &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_init&lt;/span&gt;(); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;启动一个&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;CURL&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;会话 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_URL&lt;/span&gt;, $url); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;要访问的地址 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYPEER&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;对认证证书来源的检查 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYHOST&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;从证书中检查&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;SSL&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;加密算法是否存在，如果出错则修改为&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;，默认为&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;1 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_USERAGENT&lt;/span&gt;, $_SERVER[&lt;span style=&quot;color:#a5c261;&quot;&gt;'HTTP_USER_AGENT'&lt;/span&gt;]); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;模拟用户使用的浏览器 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_FOLLOWLOCATION&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;使用自动跳转 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_AUTOREFERER&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;自动设置&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;Referer &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POST&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;发送一个常规的&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;Post&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;请求 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POSTFIELDS&lt;/span&gt;, $data); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// Post&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;提交的数据包 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_TIMEOUT&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;30&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;设置超时限制防止死循环 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_HEADER&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;显示返回的&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;Header&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;区域内容 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_RETURNTRANSFER&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;获取的信息以文件流的形式返回 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt&lt;/span&gt;($curl, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_HTTPHEADER&lt;/span&gt;, $header);
    $tmpInfo &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_exec&lt;/span&gt;($curl); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;执行操作 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_errno&lt;/span&gt;($curl)) { &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'Errno' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_error&lt;/span&gt;($curl);&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;捕抓异常 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;} &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_close&lt;/span&gt;($curl); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;关闭&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;CURL&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;会话 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$tmpInfo; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;返回数据，&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;json&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;格式 &lt;/span&gt;}
&lt;/pre&gt;</description><pubDate>Mon, 12 May 2025 11:24:37 +0800</pubDate></item><item><title>php 优化 </title><link>https://www.googom.com/?id=52</link><description>&lt;h3 style=&quot;color:rgba(0, 0, 0, 0.85);font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
	使用 gc_collect_cycles() 强制进行垃圾回收
&lt;/h3&gt;
&lt;p style=&quot;color:#333333;font-size:16px;font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
	PHP 的垃圾回收机制会自动释放不再使用的变量所占用的内存。然而，在某些情况下，尤其是在长时间运行的脚本（如 CLI 脚本）中，可以手动调用gc_collect_cycles()函数来强制执行垃圾回收，从而及时恢复内存，提升性能。
&lt;/p&gt;
&lt;pre&gt;gc_enable();&amp;nbsp;//&amp;nbsp;确保垃圾回收已启用
//&amp;nbsp;在执行大量内存操作后
&lt;p&gt;
	gc_collect_cycles();&amp;nbsp;//&amp;nbsp;强制垃圾回收
&lt;/p&gt;

&lt;p&gt;
	&lt;br /&gt;

&lt;/p&gt;

&lt;p&gt;
	&lt;br /&gt;

&lt;/p&gt;

&lt;p&gt;
	&lt;br /&gt;

&lt;/p&gt;

&lt;p&gt;
	
	&lt;h3 style=&quot;color:rgba(0, 0, 0, 0.85);font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		使用memory_get_usage()监控内存消耗
	&lt;/h3&gt;

	&lt;p style=&quot;color:#333333;font-size:16px;font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		通过memory_get_usage()函数，可以实时获取当前PHP脚本的内存使用量，这有助于您识别应用程序中的内存瓶颈，并及时地进行优化。
	&lt;/p&gt;

&lt;pre&gt;&lt;span style=&quot;color:#E6C07B;line-height:26px;&quot;&gt;echo&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#98C379;line-height:26px;&quot;&gt;&quot;当前内存使用情况：&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;.&amp;nbsp;memory_get_usage()&amp;nbsp;.&amp;nbsp;&lt;span style=&quot;color:#98C379;line-height:26px;&quot;&gt;&quot;&amp;nbsp;字节&quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;
&lt;/pre&gt;
&lt;pre&gt;
	&lt;h3 style=&quot;color:rgba(0, 0, 0, 0.85);font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		利用生成器处理大型数据集
	&lt;/h3&gt;

	&lt;p style=&quot;color:#333333;font-size:16px;font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		PHP生成器允许您以迭代的方式处理大型数据集，从而一次性将整个数据集加载到内存中。通过生成器，您可以逐个地生成和处理数据项，从而大幅降低内存消耗。
	&lt;/p&gt;

&lt;pre&gt;&lt;span style=&quot;color:#C678DD;line-height:26px;&quot;&gt;function&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;line-height:26px;&quot;&gt;&lt;span style=&quot;color:#61AEEE;line-height:26px;&quot;&gt;getLargeDataSet&lt;/span&gt;&lt;/span&gt;()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;每次返回一个数据项
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#C678DD;line-height:26px;&quot;&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$i&lt;/span&gt;&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$i&lt;/span&gt;&amp;nbsp;&amp;lt;&amp;nbsp;1000000;&amp;nbsp;&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$i&lt;/span&gt;++)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yield&amp;nbsp;&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$i&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

foreach&amp;nbsp;(getLargeDataSet()&amp;nbsp;as&amp;nbsp;&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$item&lt;/span&gt;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;处理数据项
}&lt;/pre&gt;
&lt;pre&gt;
&lt;/pre&gt;
	&lt;h3 style=&quot;color:rgba(0, 0, 0, 0.85);font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		使用 spl_autoload_register() 实现延迟加载
	&lt;/h3&gt;
	&lt;p style=&quot;color:#333333;font-size:16px;font-family:Optima, &amp;quot;background-color:#FFFFFF;&quot;&gt;
		为了避免一次性将所有类都加载到内存中，特别是当项目包含大量或大型类时，应采用延迟加载机制。通过函数spl_autoload_register()注册自动加载器，可以实现只在需要时才加载相应的类文件。
	&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;spl_autoload_register(&lt;span style=&quot;color:#C678DD;line-height:26px;&quot;&gt;function&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$class_name&lt;/span&gt;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;include&amp;nbsp;&lt;span style=&quot;color:#D19A66;line-height:26px;&quot;&gt;$class_name&lt;/span&gt;&amp;nbsp;.&amp;nbsp;&lt;span style=&quot;color:#98C379;line-height:26px;&quot;&gt;'.php'&lt;/span&gt;;
&amp;nbsp;});&lt;/pre&gt;
&lt;br /&gt;
&lt;/pre&gt;
&lt;/p&gt;
&lt;/pre&gt;</description><pubDate>Mon, 20 Jan 2025 21:33:56 +0800</pubDate></item><item><title>PHP 严格类型</title><link>https://www.googom.com/?id=51</link><description>只需在 PHP 代码文件的开头加上declare(strict_types = 1);这一行魔法代码，就能开启严格类型检查之旅。</description><pubDate>Tue, 14 Jan 2025 20:13:45 +0800</pubDate></item><item><title>excel 导出</title><link>https://www.googom.com/?id=50</link><description>&lt;pre&gt;    &lt;span style=&quot;color:#6e9cbe;&quot;&gt;header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Content-Type: application/vnd.ms-excel; name='excel'&quot;&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Content-Disposition:attachment;filename=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'Y-m-d'&lt;/span&gt;, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;()) &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;商品订单&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;.xls&quot;&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;&amp;lt;&amp;lt;&amp;lt; EOT &lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;html xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;head&amp;gt;&amp;lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html;charset=utf-8&quot; /&amp;gt;&amp;lt;/head&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;body&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;table border=&quot;1&quot; width=&quot;80%&quot;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;tr&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;档口&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;商品&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;下单时间&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;导出时间&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;/tr&amp;gt;&lt;/span&gt; EOT; &lt;span style=&quot;color:#cc7833;&quot;&gt;foreach &lt;/span&gt;($list &lt;span style=&quot;color:#cc7833;&quot;&gt;as &lt;/span&gt;$row) { &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;&amp;lt;&amp;lt;&amp;lt; EOT &lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;tr&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;{$row[&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;title&quot;&lt;/span&gt;]}&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;{$row[&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;data&quot;&lt;/span&gt;]}&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;{$row[&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;date&quot;&lt;/span&gt;]}&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;td align=&quot;center&quot;&amp;gt;&lt;/span&gt;{$row[&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;time&quot;&lt;/span&gt;]}&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/td&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &amp;lt;/tr&amp;gt;&lt;/span&gt; EOT;
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;&amp;lt;&amp;lt;&amp;lt; EOT &lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/table&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/body&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt; EOT;&lt;/pre&gt;</description><pubDate>Thu, 09 Jan 2025 23:08:48 +0800</pubDate></item><item><title>百度浏览器中视频悬浮</title><link>https://www.googom.com/?id=49</link><description>&amp;nbsp; &amp;lt;video class=&quot;html5-video&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;poster=&quot;__STATIC__/portal/images/anyang.jpg&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;autoplay&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;muted&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;playsinline&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;loop&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;webkit-playsinline=&quot;&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;playsInline&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x5-playsinline&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t7-video-player-type=&quot;inline&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x5-video-player-type=&quot;h5-page&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x-webkit-airplay=&quot;allow&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;disablePictureInPicture&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;src=&quot;https://www.runnerhome.com/wp-content/uploads/2024/11/anyangre.mp4&quot;&amp;gt;&amp;lt;/video&amp;gt;&lt;br /&gt;</description><pubDate>Fri, 20 Dec 2024 01:08:03 +0800</pubDate></item><item><title>fastadmin上传图片并压缩并加水印</title><link>https://www.googom.com/?id=48</link><description>&lt;pre&gt;   &lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;image&lt;/span&gt;()
    { &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//        $url = 'uploads/20241026/8f32aebb8be904c5c01ea80de534880e.png'; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$file &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#da4939;&quot;&gt;request&lt;/span&gt;()&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;file&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'file'&lt;/span&gt;); &lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;startTrans&lt;/span&gt;(); &lt;span style=&quot;color:#cc7833;&quot;&gt;try &lt;/span&gt;{
            $upload &lt;span style=&quot;color:#cc7833;&quot;&gt;= new &lt;/span&gt;Upload($file);
            $attachment &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$upload&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;upload&lt;/span&gt;();
            $url &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($attachment&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;url, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
            $image_info &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;getimagesize&lt;/span&gt;($url);
            $params &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;( &lt;span style=&quot;color:#a5c261;&quot;&gt;'admin_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'user_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; (int)&lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;user_id, &lt;span style=&quot;color:#a5c261;&quot;&gt;'filename' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'category' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'filesize' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'bits'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'imagewidth' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'0'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'imageheight' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'1'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'imagetype' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'mime'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'imageframes' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'mimetype' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'mime'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'drawing' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$url, &lt;span style=&quot;color:#a5c261;&quot;&gt;'uploadtime' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;(), &lt;span style=&quot;color:#a5c261;&quot;&gt;'createtime' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;(), &lt;span style=&quot;color:#a5c261;&quot;&gt;'updatetime' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;(), &lt;span style=&quot;color:#a5c261;&quot;&gt;'storage' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'local'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'sha1' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'extparam' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;,
            ); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'mime'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;!= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'image/png' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;amp;&amp;amp; &lt;/span&gt;$image_info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'mime'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;!= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'image/jpeg'&lt;/span&gt;) { &lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;rollback&lt;/span&gt;();
                $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;error&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;类型为&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;png&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;或&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;jpg'&lt;/span&gt;);
            }
            $path &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;uploads_copy/&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Ymd&quot;&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;is_dir&lt;/span&gt;($path)) { &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;判断目录是否存在 不存在就创建 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;mkdir&lt;/span&gt;($path, &lt;span style=&quot;color:#a5c261;&quot;&gt;0777&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;chmod&lt;/span&gt;($path, &lt;span style=&quot;color:#a5c261;&quot;&gt;0777&lt;/span&gt;);
            }
            $img &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$url; &lt;span style=&quot;color:#cc7833;&quot;&gt;list&lt;/span&gt;($width, $height, $img_type, $attr) &lt;span style=&quot;color:#cc7833;&quot;&gt;= @&lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;getimagesize&lt;/span&gt;($img);
            $imageinfo &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'width' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$width, &lt;span style=&quot;color:#a5c261;&quot;&gt;'height' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$height, &lt;span style=&quot;color:#a5c261;&quot;&gt;'type' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;image_type_to_extension&lt;/span&gt;($img_type, &lt;span style=&quot;color:#cc7833;&quot;&gt;false&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;'attr' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$attr);
            $fun &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;imagecreatefrom&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'type'&lt;/span&gt;];
            $image &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$fun($img);
            $w_image &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$fun($img);
            $percent &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'0.5'&lt;/span&gt;;
            $new_width &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'width'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;$percent;
            $new_height &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'height'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;$percent;
            $image_thump &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagecreatetruecolor&lt;/span&gt;($new_width, $new_height); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagecopyresampled&lt;/span&gt;($image_thump, $image, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, $new_width, $new_height, $imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'width'&lt;/span&gt;], $imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'height'&lt;/span&gt;]);
            $image &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$image_thump;
            $func &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'image' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'type'&lt;/span&gt;];
            $title &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;str_replace&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'uploads'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'uploads_copy'&lt;/span&gt;, $img);
            $func($image, $title); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;添加水印 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$fontPath &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/www/wwwroot/ai_end.qiuyutv.com/public/cert/ttf.ttf'&lt;/span&gt;;
            $text &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;秋娱&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;Ai'&lt;/span&gt;;
            $color &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagecolorallocatealpha&lt;/span&gt;($w_image, &lt;span style=&quot;color:#a5c261;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;255&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;50&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; // &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;白色透明度&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;50 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$fontSize &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;40&lt;/span&gt;; &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; // &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;字体大小 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$angle &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;; &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; // &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;倾斜角度 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$x &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;20&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// X&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;坐标 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$y &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;100&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// Y&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;坐标 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagettftext&lt;/span&gt;($w_image, $fontSize, $angle, $x, $y, $color, $fontPath, $text); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagejpeg&lt;/span&gt;($w_image, $title); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagedestroy&lt;/span&gt;($image);
            $params[&lt;span style=&quot;color:#a5c261;&quot;&gt;'url'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$title;
            $msg &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;name&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'attachment'&lt;/span&gt;)&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;insertGetId&lt;/span&gt;($params); &lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;commit&lt;/span&gt;();
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;catch &lt;/span&gt;(\Exception $e) { &lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;rollback&lt;/span&gt;();
            $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;error&lt;/span&gt;($e&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getMessage&lt;/span&gt;());
        }
        $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;success&lt;/span&gt;(&lt;span style=&quot;color:#da4939;&quot;&gt;__&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'Uploaded successful'&lt;/span&gt;), [&lt;span style=&quot;color:#a5c261;&quot;&gt;'url' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$attachment&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;url, &lt;span style=&quot;color:#a5c261;&quot;&gt;'m_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$msg, &lt;span style=&quot;color:#a5c261;&quot;&gt;'fullurl' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#da4939;&quot;&gt;cdnurl&lt;/span&gt;($attachment&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;url, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;)]);
    }&lt;/pre&gt;</description><pubDate>Tue, 17 Dec 2024 21:55:06 +0800</pubDate></item><item><title>下载文件</title><link>https://www.googom.com/?id=47</link><description>&lt;pre&gt;

&lt;pre&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;img_url&lt;/span&gt;()
{
    $id &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#da4939;&quot;&gt;request&lt;/span&gt;()&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;param&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'id'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1122&lt;/span&gt;);
    $info &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;name&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'attachment'&lt;/span&gt;)&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;where&lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$id))&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;find&lt;/span&gt;(); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'drawing'&lt;/span&gt;]) {
        $filename &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'drawing'&lt;/span&gt;],&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
    } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{
        $filename &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'url'&lt;/span&gt;],&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
    } &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#da4939;&quot;&gt; Header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Content-type: application/octet-stream&quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;     &lt;span style=&quot;color:#da4939;&quot;&gt;Header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Accept-Ranges: bytes&quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;   &lt;span style=&quot;color:#da4939;&quot;&gt;Header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Accept-Length: &quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;filesize&lt;/span&gt;($filename));&lt;/pre&gt;
&lt;pre&gt;   &lt;span style=&quot;color:#da4939;&quot;&gt;Header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Content-Disposition: attachment; filename=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;basename&lt;/span&gt;($filename));&lt;/pre&gt;
&lt;pre&gt;   &lt;span style=&quot;color:#6e9cbe;&quot;&gt;header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'Cache-Control: must-revalidate, post-check=0, pre-check=0'&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt; header&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'Pragma: public'&lt;/span&gt;); &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt; echo &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;file_get_contents&lt;/span&gt;($filename); &lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt; exit&lt;/span&gt;();
}&lt;/pre&gt;
&lt;br /&gt;
&lt;/pre&gt;</description><pubDate>Sat, 14 Dec 2024 22:53:43 +0800</pubDate></item><item><title>压缩图片</title><link>https://www.googom.com/?id=46</link><description>&lt;pre&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public static function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;size&lt;/span&gt;($id, $img)
{ &lt;span style=&quot;color:#cc7833;&quot;&gt;try &lt;/span&gt;{ &lt;span style=&quot;color:#cc7833;&quot;&gt;list&lt;/span&gt;($width, $height, $img_type, $attr) &lt;span style=&quot;color:#cc7833;&quot;&gt;= @&lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;getimagesize&lt;/span&gt;($img);
        $imageinfo &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'width' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$width, &lt;span style=&quot;color:#a5c261;&quot;&gt;'height' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$height, &lt;span style=&quot;color:#a5c261;&quot;&gt;'type' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;image_type_to_extension&lt;/span&gt;($img_type, &lt;span style=&quot;color:#cc7833;&quot;&gt;false&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;'attr' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$attr); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($imageinfo) {
            $fun &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;imagecreatefrom&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'type'&lt;/span&gt;];
            $image &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$fun($img);
            $percent &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'0.5'&lt;/span&gt;;
            $new_width &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'width'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;$percent;
            $new_height &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'height'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;* &lt;/span&gt;$percent;
            $image_thump &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagecreatetruecolor&lt;/span&gt;($new_width, $new_height); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagecopyresampled&lt;/span&gt;($image_thump, $image, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, $new_width, $new_height, $imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'width'&lt;/span&gt;], $imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'height'&lt;/span&gt;]); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;imagedestroy&lt;/span&gt;($image);
            $image &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$image_thump;
            $func &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'image' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$imageinfo[&lt;span style=&quot;color:#a5c261;&quot;&gt;'type'&lt;/span&gt;];
            $title &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;str_replace&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'image'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'img_cory'&lt;/span&gt;, $img);
            $func($image, $title); &lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;table&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'product'&lt;/span&gt;)&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;where&lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$id))&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;update&lt;/span&gt;([&lt;span style=&quot;color:#a5c261;&quot;&gt;'image' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$title]);
        }
    } &lt;span style=&quot;color:#cc7833;&quot;&gt;catch &lt;/span&gt;(Exception $e) { &lt;span style=&quot;color:#cc7833;&quot;&gt;echo &lt;/span&gt;$id;
    }
}&lt;/pre&gt;</description><pubDate>Thu, 12 Dec 2024 09:12:24 +0800</pubDate></item><item><title>支付宝生成支付二维码</title><link>https://www.googom.com/?id=45</link><description>&lt;pre&gt;    &lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;alipay&lt;/span&gt;($pay_order_no &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'20241114123331000000195475'&lt;/span&gt;, $uid &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;, $url &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;)
    {
        $info &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#ffffff;&quot;&gt;Db&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;name&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'vip_order'&lt;/span&gt;)&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;where&lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'orderid' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$pay_order_no))&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;find&lt;/span&gt;(); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;!&lt;/span&gt;$info) {
            $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;error&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;订单异常&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;请重试&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;);
        } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$total_amount &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'0.01'&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//        $total_amount = $info['payamount']; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;$requestConfigs &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;[ &lt;span style=&quot;color:#a5c261;&quot;&gt;'out_trade_no' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$pay_order_no, &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;单位 元 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'total_amount' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$total_amount, &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;订单标题 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'subject' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$info[&lt;span style=&quot;color:#a5c261;&quot;&gt;'title'&lt;/span&gt;], &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;该笔订单允许的最晚付款时间，逾期将关闭交易。取值范围：&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;1m&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;～&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;15d&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;。&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;m-&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;分钟，&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;h-&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;小时，&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;d-&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;天，&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;1c-&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;当天（&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;1c-&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;当天的情况下，无论交易何时创建，都在&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;点关闭）。 该参数数值不接受小数点， 如&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; 1.5h&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;，可转换为&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; 90m&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;。 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'timeout_express' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'2h' &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt; &lt;/span&gt;];
        $method &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'alipay.trade.precreate'&lt;/span&gt;;
        $commonConfigs &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;( &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;公共参数 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'app_id' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; self::&lt;/span&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;$aliconfig&lt;/span&gt;[&lt;span style=&quot;color:#a5c261;&quot;&gt;'appId'&lt;/span&gt;], &lt;span style=&quot;color:#a5c261;&quot;&gt;'method' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$method, &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;接口名称 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'format' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'JSON'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'charset' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;charset, &lt;span style=&quot;color:#a5c261;&quot;&gt;'sign_type' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'RSA2'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'timestamp' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'Y-m-d H:i:s'&lt;/span&gt;), &lt;span style=&quot;color:#a5c261;&quot;&gt;'version' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'1.0'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'notify_url' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#da4939;&quot;&gt;request&lt;/span&gt;()&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;domain&lt;/span&gt;() &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/api/pay/' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$url, &lt;span style=&quot;color:#a5c261;&quot;&gt;'return_url' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'https://www.qiuyutv.com/'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;'biz_content' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_encode&lt;/span&gt;($requestConfigs),
        );
        $commonConfigs[&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;sign&quot;&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;generateSign&lt;/span&gt;($commonConfigs, $commonConfigs[&lt;span style=&quot;color:#a5c261;&quot;&gt;'sign_type'&lt;/span&gt;]);
        $result &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;curlPost&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'https://openapi.alipay.com/gateway.do'&lt;/span&gt;, $commonConfigs);
        $result &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;json_decode&lt;/span&gt;($result, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;);
        $result &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'alipay_trade_precreate_response'&lt;/span&gt;]; &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'code'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;amp;&amp;amp; &lt;/span&gt;$result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'code'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'10000'&lt;/span&gt;) { &lt;span style=&quot;color:#cc7833;&quot;&gt;require_once &lt;/span&gt;&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;ROOT_PATH &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/public/phpqrcode/phpqrcode.php'&lt;/span&gt;;
            $imageName &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;p_&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;His&quot;&lt;/span&gt;, &lt;span style=&quot;color:#6e9cbe;&quot;&gt;time&lt;/span&gt;()) &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;_&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;rand&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;1111&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;9999&lt;/span&gt;) &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'.jpg'&lt;/span&gt;;
            $path &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;upload/qrcode/&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;date&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;Ymd&quot;&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;is_dir&lt;/span&gt;($path)) { &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;判断目录是否存在 不存在就创建 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;mkdir&lt;/span&gt;($path, &lt;span style=&quot;color:#a5c261;&quot;&gt;0777&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;); &lt;span style=&quot;color:#6e9cbe;&quot;&gt;chmod&lt;/span&gt;($path, &lt;span style=&quot;color:#a5c261;&quot;&gt;0777&lt;/span&gt;);
            }
            $imageSrc &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$path &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'/' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$imageName;
            $msg1 &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;\&lt;span style=&quot;color:#ffffff;&quot;&gt;QRcode&lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;png&lt;/span&gt;($result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'qr_code'&lt;/span&gt;], $imageSrc, &lt;span style=&quot;color:#a5c261;&quot;&gt;'L'&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;生成二维码并保存为文件 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$imageSrc;
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{
            $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;error&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'error'&lt;/span&gt;, $result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'msg'&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;' : ' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$result[&lt;span style=&quot;color:#a5c261;&quot;&gt;'sub_msg'&lt;/span&gt;]);
        }
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;签名 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;sign&lt;/span&gt;($data, $signType &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;RSA&quot;&lt;/span&gt;)
    {
        $priKey &lt;span style=&quot;color:#cc7833;&quot;&gt;= self::&lt;/span&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;$aliconfig&lt;/span&gt;[&lt;span style=&quot;color:#a5c261;&quot;&gt;'rsaPrivateKey'&lt;/span&gt;];
        $res &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;-----BEGIN RSA PRIVATE KEY-----&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;wordwrap&lt;/span&gt;($priKey, &lt;span style=&quot;color:#a5c261;&quot;&gt;64&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color:#cc7833;&quot;&gt;true&lt;/span&gt;) &lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#519f50;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;-----END RSA PRIVATE KEY-----&quot;&lt;/span&gt;;
        ($res) &lt;span style=&quot;color:#cc7833;&quot;&gt;or die&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;您使用的私钥格式错误，请检查&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;RSA&lt;/span&gt;&lt;span style=&quot;color:#a5c261;font-family:'宋体',monospace;&quot;&gt;私钥配置&lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;'&lt;/span&gt;); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;RSA2&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;$signType) { &lt;span style=&quot;color:#6e9cbe;&quot;&gt;openssl_sign&lt;/span&gt;($data, $sign, $res, &lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;OPENSSL_ALGO_SHA256&lt;/span&gt;); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//OPENSSL_ALGO_SHA256&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;是&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;php5.4.8&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;以上版本才支持 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;} &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{ &lt;span style=&quot;color:#6e9cbe;&quot;&gt;openssl_sign&lt;/span&gt;($data, $sign, $res);
        }
        $sign &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;base64_encode&lt;/span&gt;($sign); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$sign;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;获取签名 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;generateSign&lt;/span&gt;($params, $signType &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;RSA&quot;&lt;/span&gt;)
    { &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;sign&lt;/span&gt;($this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSignContent&lt;/span&gt;($params), $signType);
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;校验是否非空 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;**/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;protected function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;checkEmpty&lt;/span&gt;($value)
    { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;!isset&lt;/span&gt;($value)) &lt;span style=&quot;color:#cc7833;&quot;&gt;return true&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($value &lt;span style=&quot;color:#cc7833;&quot;&gt;=== null&lt;/span&gt;) &lt;span style=&quot;color:#cc7833;&quot;&gt;return true&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;trim&lt;/span&gt;($value) &lt;span style=&quot;color:#cc7833;&quot;&gt;=== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&quot;&lt;/span&gt;) &lt;span style=&quot;color:#cc7833;&quot;&gt;return true&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;return false&lt;/span&gt;;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;获取签名内容 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;getSignContent&lt;/span&gt;($params)
    { &lt;span style=&quot;color:#6e9cbe;&quot;&gt;ksort&lt;/span&gt;($params);
        $stringToBeSigned &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&quot;&lt;/span&gt;;
        $i &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;; &lt;span style=&quot;color:#cc7833;&quot;&gt;foreach &lt;/span&gt;($params &lt;span style=&quot;color:#cc7833;&quot;&gt;as &lt;/span&gt;$k &lt;span style=&quot;color:#cc7833;&quot;&gt;=&amp;gt; &lt;/span&gt;$v) { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;false === &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;checkEmpty&lt;/span&gt;($v) &lt;span style=&quot;color:#cc7833;&quot;&gt;&amp;amp;&amp;amp; &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;@&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;!= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;substr&lt;/span&gt;($v, &lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color:#a5c261;&quot;&gt;1&lt;/span&gt;)) { &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;转换成目标字符集 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$v &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;characet&lt;/span&gt;($v, $this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;charset); &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;($i &lt;span style=&quot;color:#cc7833;&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;) {
                    $stringToBeSigned &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;$k&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;$v&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;;
                } &lt;span style=&quot;color:#cc7833;&quot;&gt;else &lt;/span&gt;{
                    $stringToBeSigned &lt;span style=&quot;color:#cc7833;&quot;&gt;.= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&amp;amp;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;$k&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;=&quot; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;$v&lt;span style=&quot;color:#a5c261;&quot;&gt;&quot;&lt;/span&gt;;
                }
                $i&lt;span style=&quot;color:#cc7833;&quot;&gt;++&lt;/span&gt;;
            }
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;unset&lt;/span&gt;($k, $v); &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$stringToBeSigned;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;转换字符集编码 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;characet&lt;/span&gt;($data, $targetCharset)
    { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#cc7833;&quot;&gt;!empty&lt;/span&gt;($data)) {
            $fileType &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;charset; &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;strcasecmp&lt;/span&gt;($fileType, $targetCharset) &lt;span style=&quot;color:#cc7833;&quot;&gt;!= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;0&lt;/span&gt;) {
                $data &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;mb_convert_encoding&lt;/span&gt;($data, $targetCharset, $fileType); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//$data = iconv($fileType, $targetCharset.'//IGNORE', $data); &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;}
        } &lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$data;
    } &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;/** &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; * &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;发送支付请求 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;*/ &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;public function &lt;/span&gt;&lt;span style=&quot;color:#ffc66d;&quot;&gt;curlPost&lt;/span&gt;($url &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;, $postData &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;''&lt;/span&gt;, $options &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;())
    { &lt;span style=&quot;color:#cc7833;&quot;&gt;if &lt;/span&gt;(&lt;span style=&quot;color:#6e9cbe;&quot;&gt;is_array&lt;/span&gt;($postData)) {
            $postData &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;http_build_query&lt;/span&gt;($postData);
        }
        $ch &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_init&lt;/span&gt;();
        $params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_URL&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$url; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;请求&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;地址 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_HEADER&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= false&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;是否返回响应头信息 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_RETURNTRANSFER&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= true&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;是否将结果返回 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_FOLLOWLOCATION&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= true&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;是否重定向 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POST&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= true&lt;/span&gt;;
        $params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_HTTPHEADER&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= array&lt;/span&gt;(&lt;span style=&quot;color:#a5c261;&quot;&gt;'content-type: application/x-www-form-urlencoded;charset=' &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;. &lt;/span&gt;$this&lt;span style=&quot;color:#cc7833;&quot;&gt;-&amp;gt;&lt;/span&gt;charset);
        $params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYPEER&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= false&lt;/span&gt;; &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;禁用证书校验 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_SSL_VERIFYHOST&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= false&lt;/span&gt;;
        $params[&lt;span style=&quot;color:#9876aa;font-style:italic;&quot;&gt;CURLOPT_POSTFIELDS&lt;/span&gt;] &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;$postData; &lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_setopt_array&lt;/span&gt;($ch, $params); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;传入&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;参数 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;$content &lt;span style=&quot;color:#cc7833;&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_exec&lt;/span&gt;($ch); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;执行 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#6e9cbe;&quot;&gt;curl_close&lt;/span&gt;($ch); &lt;span style=&quot;color:#bc9458;font-style:italic;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt;关闭连接 &lt;/span&gt;&lt;span style=&quot;color:#bc9458;font-style:italic;font-family:'宋体',monospace;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#cc7833;&quot;&gt;return &lt;/span&gt;$content;
    }
&lt;/pre&gt;</description><pubDate>Mon, 02 Dec 2024 11:26:11 +0800</pubDate></item></channel></rss>