国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

基于php開發(fā)app微信支付接口

2020-03-22 18:37:18
字體:
供稿:網(wǎng)友
這篇文章主要介紹了關(guān)于基于php開發(fā)app微信支付接口,有著一定的參考價(jià)值,現(xiàn)在分享給大家,有需要的朋友可以參考一下

定義好商戶支付信息

define(APPID, $payment ['appId']); // appid

define(APPSECRET, $payment ['appSecret']); // appSecret

define(MCHID, $payment ['partnerId']);//商戶號(hào)
define(KEY, $payment ['partnerKey']); // 通加密串

define(NOTIFY_URL, $return_url); // 成功回調(diào)url

     //簽名所需        $signArray = array(            'appid' => $payment['appId'], //appid            'mch_id' => $payment['partnerId'],            'nonce_str' => self::createNoncestr(),            'out_trade_no' => $order['order_sn'],                       'body' => $order['body'],            "total_fee" => $order ['order_amount'],            "notify_url" => $return_url,            "spbill_create_ip" => $_SERVER["REMOTE_ADDR"],            "trade_type" => "APP",        );
 $sign=self::getSign($signArray);         //統(tǒng)一下單        $goPay = array(            'appid' => $payment['appId'], //appid            'mch_id' => $payment['partnerId'],            'nonce_str' => $signArray['nonce_str'], //生成隨機(jī)字符串            'sign' => $sign,            'out_trade_no' => $order['order_sn'],                        "total_fee" => $order ['order_amount'],             'body' => $order['body'],            "notify_url" => $return_url,             "spbill_create_ip" => $_SERVER["REMOTE_ADDR"],            "trade_type" => "APP",        );        //轉(zhuǎn)化xml        $goPayXml=self::arrayToXml($goPay);        $result=self::sendPrePayCurl($goPayXml);        return $result;

生成隨機(jī)字符串函數(shù)

    //隨機(jī)生成字符串    html' target='_blank'>public function createNoncestr($length = 32) {        $chars = "abcdefghijklmnopqrstuvwxyz0123456789";        $str = "";        for ($i = 0; $i < $length; $i++) {            $str.= substr($chars, mt_rand(0, strlen($chars) - 1), 1);        }        return $str;    }

簽名函數(shù)

    /**     * 作用:生成簽名     */    public function getSign($Obj) {        foreach ($Obj as $k => $v) {            //if($k == 'code') continue;            //if($k == 'from') continue;            $Parameters[$k] = $v;        }        //簽名步驟一:按字典序排序參數(shù)        ksort($Parameters);        $String = self::formatBizQueryParaMap($Parameters, false);        //echo '【string1】'.$String.'</br>';        //簽名步驟二:在string后加入KEY        $String = $String . "&key=" . KEY;               //echo "【string2】".$String."</br>";        //簽名步驟三:MD5加密        $String = md5($String);        //echo "【string3】 ".$String."</br>";        //簽名步驟四:所有字符轉(zhuǎn)為大寫        $result_ = strtoupper($String);        //echo "【result】 ".$result_."</br>";        return $result_;    }
 //格式化簽名所需參數(shù)    public function formatBizQueryParaMap($paraMap, $urlencode) {        $buff = "";        ksort($paraMap);        foreach ($paraMap as $k => $v) {            if ($urlencode) {                $v = urlencode($v);            }            //$buff .= strtolower($k) . "=" . $v . "&";            $buff .= $k . "=" . $v . "&";        }        $reqPar;        if (strlen($buff) > 0) {            $reqPar = substr($buff, 0, strlen($buff) - 1);        }        return $reqPar;    }

把所要請(qǐng)求參數(shù)組裝xml

/** * 作用:array轉(zhuǎn)xml,把請(qǐng)求參數(shù)組裝xml */function arrayToXml($arr)    {        $xml = "<xml>";        foreach ($arr as $key=>$val)        {         if (is_numeric($val))         {         $xml.="<".$key.">".$val."</".$key.">";          }         else         $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";          }        $xml.="</xml>";        return $xml;     }
//通過curl發(fā)送數(shù)據(jù)給微信接口的函數(shù)    public function sendPrePayCurl($xmlData) {        $url = "http://api.mch.weixin.qq.com/pay/unifiedorder";        $header[] = "Content-type: text/xml";        $curl = curl_init();        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);        curl_setopt($curl, CURLOPT_POST, 1);        curl_setopt($curl, CURLOPT_POSTFIELDS, $xmlData);        $data = curl_exec($curl);        if (curl_errno($curl)) {            print curl_error($curl);        }        curl_close($curl);        return self::XMLDataParse($data);    }//xml格式數(shù)據(jù)解析函數(shù)    public static function XMLDataParse($data) {        $msg = array();        $msg = (array) simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);        return $msg;    }

相關(guān)推薦:

php開發(fā)電影網(wǎng)站視頻教程課程介紹(仿愛奇藝)

以上就是基于php開發(fā)app微信支付接口的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丰原市| 吉木乃县| 云阳县| 武强县| 怀宁县| 达孜县| 鸡东县| 雷波县| 疏附县| 仪陇县| 平乡县| 托里县| 安阳市| 蒙城县| 大港区| 清远市| 察隅县| 白玉县| 乌兰察布市| 百色市| 老河口市| 杨浦区| 东明县| 滨海县| 汉源县| 砀山县| 方正县| 巢湖市| 淳安县| 黑龙江省| 自治县| 视频| 拉萨市| 钟祥市| 斗六市| 白山市| 安图县| 科尔| 正安县| 浦东新区| 沙田区|