亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP版微信公眾平臺紅包API

2020-03-22 19:05:17
字體:
來源:轉載
供稿:網友
微信紅包支持,JSAPI的動態參數接口支持http://git.oschina.net/youkuiyuan/yky_test/blob/master/html' target='_blank'>class/wxapi.class.php微信API類 - 增加紅包支持 /******************************************************** * @author Kyler You QQ:2444756311 * @link http://mp.weixin.qq.com/wiki/home/index.html * @version 2.0.1 * @uses $wxApi = new WxApi(); * @package 微信API接口 陸續會繼續進行更新 ********************************************************/ class WxApi { const appId = ""; const appSecret = ""; const mchid = ""; //商戶號 const privatekey = ""; //私鑰 public $parameters = array(); public function __construct(){ /**************************************************** * 微信提交API方法,返回微信指定JSON ****************************************************/ public function wxHttpsRequest($url,$data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; /**************************************************** * 微信帶證書提交數據 - 微信紅包使用 ****************************************************/ public function wxHttpsRequestPem($url, $vars, $second=30,$aHeader=array()){ $ch = curl_init(); //超時時間 curl_setopt($ch,CURLOPT_TIMEOUT,$second); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); //這里設置代理,如果有的話 //curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98'); //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //以下兩種方式需選擇一種 //第一種方法,cert 與 key 分別屬于兩個.pem文件 //默認格式為PEM,可以注釋 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_cert.pem'); //默認格式為PEM,可以注釋 curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO,'PEM'); curl_setopt($ch,CURLOPT_CAINFO,getcwd().'/rootca.pem'); //第二種方式,兩個文件合成一個.pem文件 //curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem'); if( count($aHeader) = 1 ){ curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$vars); $data = curl_exec($ch); if($data){ curl_close($ch); return $data; else { $error = curl_errno($ch); echo "call faild, errorCode:$error/n"; curl_close($ch); return false; /**************************************************** * 微信獲取AccessToken 返回指定微信公眾號的at信息 ****************************************************/ public function wxAccessToken($appId = NULL , $appSecret = NULL){ $appId = is_null($appId) self::appId : $appId; $appSecret = is_null($appSecret) self::appSecret : $appSecret; //echo $appId,$appSecret; $url = "https://api.weixin.qq.com/cgi-bin/token grant_type=client_credential&appid=".$appId."&secret=".$appSecret; $result = $this- wxHttpsRequest($url); //print_r($result); $jsoninfo = json_decode($result, true); $access_token = $jsoninfo["access_token"]; return $access_token; /**************************************************** * 微信通過OPENID獲取用戶信息,返回數組 ****************************************************/ public function wxGetUser($openId){ $wxAccessToken = $this- wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/user/info access_token=".$wxAccessToken."&openid=".$openId."&lang=zh_CN"; $result = $this- wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; /**************************************************** * 微信通過指定模板信息發送給指定用戶,發送完成后返回指定JSON數據 ****************************************************/ public function wxSendTemplate($jsonData){ $wxAccessToken = $this- wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/template/send access_token=".$wxAccessToken; $result = $this- wxHttpsRequest($url,$jsonData); return $result; /**************************************************** * 發送自定義的模板消息 ****************************************************/ public function wxSetSend($touser, $template_id, $url, $data, $topcolor = '#7B68EE'){ $template = array( 'touser' = $touser, 'template_id' = $template_id, 'url' = $url, 'topcolor' = $topcolor, 'data' = $data $jsonData = json_encode($template); $result = $this- wxSendTemplate($jsonData); return $result; /**************************************************** * 微信設置OAUTH跳轉URL,返回字符串信息 - SCOPE = snsapi_base //驗證時不返回確認頁面,只能獲取OPENID ****************************************************/ public function wxOauthBase($redirectUrl,$state = "",$appId = NULL){ $appId = is_null($appId) self::appId : $appId; $url = "https://open.weixin.qq.com/connect/oauth2/authorize appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_base&state=".$state."#wechat_redirect"; return $url; /**************************************************** * 微信設置OAUTH跳轉URL,返回字符串信息 - SCOPE = snsapi_userinfo //獲取用戶完整信息 ****************************************************/ public function wxOauthUserinfo($redirectUrl,$state = "",$appId = NULL){ $appId = is_null($appId) self::appId : $appId; $url = "https://open.weixin.qq.com/connect/oauth2/authorize appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_userinfo&state=".$state."#wechat_redirect"; return $url; /**************************************************** * 微信OAUTH跳轉指定URL ****************************************************/ public function wxHeader($url){ header("location:".$url); /**************************************************** * 微信通過OAUTH返回頁面中獲取AT信息 ****************************************************/ public function wxOauthAccessToken($code,$appId = NULL , $appSecret = NULL){ $appId = is_null($appId) self::appId : $appId; $appSecret = is_null($appSecret) self::appSecret : $appSecret; $url = "https://api.weixin.qq.com/sns/oauth2/access_token appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code"; $result = $this- wxHttpsRequest($url); //print_r($result); $jsoninfo = json_decode($result, true); //$access_token = $jsoninfo["access_token"]; return $jsoninfo; /**************************************************** * 微信通過OAUTH的Access_Token的信息獲取當前用戶信息 // 只執行在snsapi_userinfo模式運行 ****************************************************/ public function wxOauthUser($OauthAT,$openId){ $url = "https://api.weixin.qq.com/sns/userinfo access_token=".$OauthAT."&openid=".$openId."&lang=zh_CN"; $result = $this- wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; /***************************************************** * 生成隨機字符串 - 最長為32位字符串 *****************************************************/ public function wxNonceStr($length = 16, $type = FALSE) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); if($type == TRUE){ return strtoupper(md5(time() . $str)); else { return $str; /******************************************************* * 微信商戶訂單號 - 最長28位字符串 *******************************************************/ public function wxMchBillno($mchid = NULL) { if(is_null($mchid)){ if(self::mchid == "" || is_null(self::mchid)){ $mchid = time(); else{ $mchid = self::mchid; else{ $mchid = substr(addslashes($mchid),0,10); return date("Ymd",time()).time().$mchid; /******************************************************* * 微信格式化數組變成參數格式 - 支持url加密 *******************************************************/ public function wxSetParam($parameters){ if(is_array($parameters) && !empty($parameters)){ $this- parameters = $parameters; return $this- parameters; else{ return array(); /******************************************************* * 微信格式化數組變成參數格式 - 支持url加密 *******************************************************/ public function wxFormatArray($parameters = NULL, $urlencode = FALSE){ if(is_null($parameters)){ $parameters = $this- parameters; $restr = "";//初始化空 ksort($parameters);//排序參數 foreach ($parameters as $k = $v){//循環定制參數 if (null != $v && "null" != $v && "sign" != $k) { if($urlencode){//如果參數需要增加URL加密就增加,不需要則不需要 $v = urlencode($v); $restr .= $k . "=" . $v . "&";//返回完整字符串 if (strlen($restr) 0) {//如果存在數據則將最后“&”刪除 $restr = substr($restr, 0, strlen($restr)-1); return $restr;//返回字符串 /******************************************************* * 微信MD5簽名生成器 - 需要將參數數組轉化成為字符串[wxFormatArray方法] *******************************************************/ public function wxMd5Sign($content, $privatekey){ try { if (is_null($key)) { throw new Exception("財付通簽名key不能為空!"); if (is_null($content)) { throw new Exception("財付通簽名內容不能為空"); $signStr = $content . "&key=" . $key; return strtoupper(md5($signStr)); catch (Exception $e) die($e- getMessage()); /******************************************************* * 微信Sha1簽名生成器 - 需要將參數數組轉化成為字符串[wxFormatArray方法] *******************************************************/ public function wxSha1Sign($content, $privatekey){ try { if (is_null($key)) { throw new Exception("財付通簽名key不能為空!"); if (is_null($content)) { throw new Exception("財付通簽名內容不能為空"); $signStr = $content . "&key=" . $key; return strtoupper(sha1($signStr)); catch (Exception $e) die($e- getMessage()); /******************************************************* * 將數組解析XML - 微信紅包接口 *******************************************************/ public function wxArrayToXml($parameters = NULL){ if(is_null($parameters)){ $parameters = $this- parameters; if(!is_array($parameters) || empty($parameters)){ die("參數不為數組無法解析"); $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; }后期還是會增加在一起的把這個CLASS做起來,網上資源很多,但是都是有一定基礎的人去看看改改可以,對于沒有接觸剛剛接觸的新手還是需要給予支持的。幫助用戶屢屢思路。以上所述就是本文的全部內容了,希望大家能夠喜歡。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情一级欧美精品| 精品国产欧美一区二区三区成人| 欧美成人在线免费视频| 成人午夜在线视频一区| 视频在线一区二区| 成人在线视频网站| 欧美理论电影在线播放| 日本高清视频精品| 欧美成人精品h版在线观看| 国产亚洲欧美另类中文| 97国产在线视频| 精品视频在线观看日韩| 色妞在线综合亚洲欧美| 国产色综合天天综合网| 成人网欧美在线视频| 久久成人精品视频| 久久久久久这里只有精品| 久久中文久久字幕| 欧美一级片一区| 久久精品国产亚洲精品2020| 日韩一区二区精品视频| 欧美日本精品在线| 中文字幕亚洲综合久久| 亚洲免费av网址| 91手机视频在线观看| 国产精品欧美日韩一区二区| 日韩中文字幕欧美| 亚洲一区二区中文字幕| 久热精品视频在线免费观看| 午夜精品国产精品大乳美女| 中文字幕精品影院| 欧美高清视频在线| 69视频在线免费观看| 欧美肥臀大乳一区二区免费视频| 97在线视频免费| 国产成人免费av电影| 成人福利视频网| 国产不卡精品视男人的天堂| 国产精品自产拍在线观看中文| 国产成人av在线播放| 欧美人在线观看| 久久精品国产精品亚洲| 国产精品久久久久久久美男| 欧美午夜丰满在线18影院| 成人国产精品免费视频| 亚洲japanese制服美女| 国产精品中文久久久久久久| 国产福利视频一区二区| 91高清在线免费观看| 成人精品一区二区三区| 欧美一区二区三区艳史| 日韩美女视频在线观看| 97在线视频免费播放| 欧美日韩精品在线播放| 国产视频亚洲视频| 亚洲福利视频网| 国产精品主播视频| 久久久久国产精品免费网站| 亚洲区bt下载| 性色av一区二区三区在线观看| 久久亚洲精品中文字幕冲田杏梨| 国产精品网站大全| 久久这里只有精品视频首页| 亚洲精品二三区| 国产精品观看在线亚洲人成网| 55夜色66夜色国产精品视频| 91九色视频在线| 中文字幕国产亚洲2019| 日韩精品视频免费在线观看| 日韩视频在线免费| 97视频在线免费观看| 日本久久久久亚洲中字幕| 久久99久久久久久久噜噜| 一区二区成人av| 乱亲女秽乱长久久久| 色噜噜亚洲精品中文字幕| 91午夜在线播放| 国产精品欧美久久久| 午夜精品久久久久久久白皮肤| 成人黄色在线播放| 欧美一级视频一区二区| 欧美性受xxxx黑人猛交| 精品偷拍一区二区三区在线看| 亚洲va国产va天堂va久久| 亚洲欧美在线第一页| 国产精品美女久久久久av超清| 日韩在线视频国产| 成人免费福利在线| 欧美国产日韩视频| 日韩免费在线播放| 欧美激情亚洲视频| 久久精品中文字幕电影| 久久久噜噜噜久久| 午夜免费在线观看精品视频| 97精品在线视频| 中文字幕亚洲综合| 91沈先生在线观看| 日本精品在线视频| 国产主播喷水一区二区| 国产精品久久久久久久久久小说| 日本精品性网站在线观看| 亚洲日本aⅴ片在线观看香蕉| 久久久99免费视频| 国产精品扒开腿做爽爽爽男男| 久久久久久成人| 91精品国产综合久久香蕉| 欧美日韩国产精品一区二区不卡中文| www日韩中文字幕在线看| 亚洲一区精品电影| 久久久久久久久久亚洲| 一区二区三区www| 免费99精品国产自在在线| 精品久久久久久久久国产字幕| 777午夜精品福利在线观看| 欧美二区在线播放| 亚洲自拍欧美另类| 国产精品中文在线| 亚洲性猛交xxxxwww| 久久精品国产69国产精品亚洲| 裸体女人亚洲精品一区| 日韩美女写真福利在线观看| 91精品国产综合久久香蕉的用户体验| 久久69精品久久久久久久电影好| 北条麻妃一区二区三区中文字幕| 久久久欧美一区二区| 精品亚洲一区二区三区在线播放| 亚洲 日韩 国产第一| 亚洲欧美在线播放| 欧美性猛交丰臀xxxxx网站| 亚洲黄色www网站| 午夜精品久久久久久久99热| 亚洲成色999久久网站| 茄子视频成人在线| 亚洲天堂av在线播放| 亚洲国产精品久久91精品| 国产欧美日韩丝袜精品一区| 一本色道久久综合狠狠躁篇怎么玩| 久久久久久亚洲精品| 久久久精品国产一区二区| 欧美一性一乱一交一视频| 26uuu久久噜噜噜噜| 日本精品性网站在线观看| 久精品免费视频| 成人黄色av网站| 久久精品夜夜夜夜夜久久| 国产欧美中文字幕| 成人乱色短篇合集| 亚洲人成在线播放| 亚洲aⅴ男人的天堂在线观看| 久久久久久综合网天天| 黑丝美女久久久| 亚洲色图第三页| 亚洲免费成人av电影| 欧美日韩国产一区在线| 欧美亚洲视频一区二区| 欧美性猛交xxxx乱大交极品| 在线免费观看羞羞视频一区二区| 日韩在线小视频| 成人做爽爽免费视频| 久久人人爽人人| 国产一区二区三区网站| 日韩中文字幕网站| 日韩动漫免费观看电视剧高清| 亚洲一级一级97网|