導航:首頁 > 編程語言 > php微信接入

php微信接入

發布時間:2024-05-07 11:53:35

php結合app微信登錄 php需要做什麼操作

1、app單獨做微信授權登錄獲取到unionid
2、app根據unionid請求伺服器(php),伺服器判斷是否有該會員,如果沒有就做注冊,如有已經有了直接就返回會員信息
3、就是app請求的時候盡量吧app的平台信息(比如安卓或者ios)一起發給伺服器。伺服器好做登錄記錄

⑵ PHP寮鍙戜腑濡備綍瀹炵幇涓庡井淇℃帴鍙e規帴

php鐢╟url璁塊棶寰淇℃帴鍙o紝get鎴栬卲ost鏂瑰紡錛屾槸鍚﹂渶瑕佷紶鍙傦紝浼犱粈涔堝弬鏁幫紝浠涔堟牸寮忋傚井淇℃枃妗i兘鏈夎存槑錛岃繑鍥炴暟鎹鍚庣敤php澶勭悊鎴愭暟緇勮繘琛屾搷浣滃嵆鍙

⑶ html thinkphp我想在自己的網頁加入分享到微信連接

據了解thinkPHP使用模板引擎 ThinkTemplate

你可以給你的模板文件的footer中在你相應的位置中嵌入分享代碼:

例如以下是第三方提供的插件

<!--JiaThisButtonBEGIN--><divid="ckepop">
<spanclass="jiathis_txt">分享到:</span>
<aclass="jiathis_button_weixin">微信</a>
<ahref="http://www.jiathis.com/share"class="jiathisjiathis_txtjiathis_separatorjticojtico_jiathis"target="_blank">更多</a>
<aclass="jiathis_counter_style"></a></div>
<scripttype="text/javascript"src="http://v3.jiathis.com/code/jia.js?uid=1"charset="utf-8"></script>
</div><!--JiaThisButtonEND-->

更新網頁查看效果

⑷ php怎樣調用微信介面生成大尺寸二維碼

PHP QR Code是一個PHP二維碼生成類庫,利用它可以輕松生成二維碼,官網提供了下載和多個演示demo,查看地址:http://phpqrcode.sourceforge.net/。
下載官網提供的類庫後,只需要使用phpqrcode.php就可以生成二維碼了,當然您的PHP環境必須開啟支持GD2。phpqrcode.php提供了一個關鍵的png()方法,其中參數$text表示生成二位的的信息文本;參數$outfile表示是否輸出二維碼圖片文件,默認否;參數$level表示容錯率,也就是有被覆蓋的區域還能識別,分別是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);參數$size表示生成圖片大小,默認是3;參數$margin表示二維碼周圍邊框空白區域間距值;參數$saveandprint表示是否保存二維碼並顯示。
public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4,
$saveandprint=false)
{
$enc = QRencode::factory($level, $size, $margin);
return $enc->encodePNG($text, $outfile, $saveandprint=false);
}

調用PHP QR Code非常簡單,如下代碼即可生成一張內容為"http://www.helloweba.com"的二維碼.
include 'phpqrcode.php';
QRcode::png('http://www.helloweba.com');

⑸ 微信小程序,後端用php寫完介面,怎麼把數據給前端,要帶什麼參數

1、首先在 index.js中想寫邏輯代碼。

⑹ 怎麼樣使用php的laravel框架快速集成微信登錄

1. 安裝php_weixin_provider
在項目下運行composer require thirdproviders/weixin,即可完成安裝。安裝成功後,在項目的vendor目錄下應該能看到php_weixin_provider的庫文件:
image
2. 配置微信登錄的參數
一共有7個參數可以配置,分別是:
client_id:對應公眾號創建的應用appid
client_secret:對應公眾號創建的應用appid
redirect:對應微信授權成功後的回調地址
proxy_url:對應微信授權的代理服務地址(其作用可閱讀這篇文章了解)
device:區別是PC端微信登錄還是移動端微信登錄,默認值為pc,如果是移動端,可設置為空
state_cookie_name:授權鏈接中會包含隨機的state參數,這個參數在微信回調的時候會原封不動的返回來,屆時可通過驗證state參數是否與授權鏈接中傳入的參數相同,來判斷請求是否有效,防止CSRF攻擊。這個方案,會在授權時把state參數先存到cookie裡面,所以這個參數用來指定這個state參數存入的cookie名稱,默認值是wx_state_cookie
state_cookie_time:指定wx_state_cookie的有效時長,默認是5分鍾
這七個參數有2種設置方式。
第一種是把這些參數以大寫的形式配置到.env配置文件裡面:
image
註:1、每個配置項都是大寫,且以WEIXIN_開頭;2、前三個配置項與前面介紹的參數名稱不完全一致,KEY對應client_id,SECRET對應client_secret,REDIRECT_URI對應redirect;3、其它的與前面介紹的參數名稱一致。
第二種是把這些參數配置到config/services.php文件裡面去:
image
這種方式的配置,每個配置項的名稱與前面介紹的一致。
要注意的內容:
由於php_weixin_provider是基於laravel/socialite實現的,它要求必須配置client_id,client_secret和redirect,否則php_weixin_provider實例化過程就會出錯;對於client_id和client_secret,我認為統一配置在一個地方是沒有問題的,但是對於redirect,如果統一配置,不一定符合所有場景的需求,因為不是每一個用到微信登錄的地方,最後的回調地址都是同一個;所以建議把redirect先配置成一個有效或無效非空的回調地址;反正在後面使用php_weixin_provider的時候還可以在調用的時候更改這個參數的值。
proxy_url如果有,也建議配置在公共的地方;
state_cookie_name和state_cookie_time由於都有默認值,基本上無需重新配置;
device可以在使用的時候再指定。
所有配置參數都可以在使用的時候重新指定。
3. 注冊php_weixin_provider
在項目的config/app.php文件裡面,找到providers配置節,把如下代碼加到它的配置數組裡面:
image
4. 注冊第三方登錄事件的監聽
在項目的app/Providers/EventServiceProvider.php裡面加入以下代碼:
image
laravel框架整體上是一種IOC跟事件驅動的思想,熟悉js就會對事件驅動非常熟悉,熟悉設計模式,就會對IOC(控制反轉,也稱為DI:依賴注入)比較熟悉,這個是理解第3步和第4步配置作用的關鍵。
5. 編寫微信登錄的介面
舉例如下:
+ View code
Socialite::with('weixin')會返回php_weixin_provider的實例,也就是它:
image
拿到這個實例之後,就可以採用鏈式的方式調用它提供的所有public方法,比如設置配置參數,setDevice等等。
6. 編寫微信登錄回調的介面
舉例如下:
+ View code
通過Socialite::with('weixin')拿到php_weixin_provider實例後,調用user方法,就會自動跟微信調用相關介面,並把微信的返回值封裝成對象返回。如果在此過程中,有任何錯誤都會以異常的形式拋出,比如state參數校驗失敗,比如code失效等。
返回的$user對象包含的有效屬性有:
image
小結:
這個方案是基於laravel/socialite實現,並發布到composer來使用的。laravel/socialite是laravel官方提供的第三方登錄的模塊,基於它可以很方便的集成大部分第三方平台的認證,目前它官方已經提供很多第三方的登錄實現:https://socialiteproviders.github.io/。除了國外的facebook,google,github等,國內的微信,微博,qq也都有提供。我在一開始也用的是它官方提供的默認的微信登錄provider來做的,但是後來我發現了以下幾個問題:
1. 不支持微信授權的代理;
2. pc端跟移動端竟然還是分兩個項目來做的:
image
3. 它封裝的user對象里竟然不包含unionid
4. 更改配置參數的方式,實在是讓人覺得難以使用:
image
所以我就在它官方的微信登錄provider基礎上,按照自己的想法,重新實現了一個來解決我發現的這些問題

⑺ php網站代碼怎麼接入微信公眾平台

你需要有一個伺服器或空間之類的,而且還得有個域名,再獲取微信公眾平台的AppID和AppSecret再通過你的PHP程序處理成驗證URL與TOKEN,再將你的URL與TOKEN輸入到微信公眾平台驗證,成功後就說明接入OK了,是不是很簡單!

⑻ Thinkphp3.2.3接入公眾號響應微信發送的Token驗證總是失敗

用得著判斷那個TOKEN?是不是多此一舉,用我這個,包你滿意

<?php
namespaceHomeController;
useThinkController;
{
publicfunctionindex(){
$v=$_GET["echostr"];
if(!isset($v)){//根據隨機字元串判斷是否之前已經驗證過,避免重復驗證
$this->receive();
}else{
$this->checkSignature();
}
}
//未驗證執行驗證
publicfunctioncheckSignature(){
$signature=I("signature");//加密簽名
$timestamp=I("timestamp");//時間戳
$nonce=I("nonce");//隨機數
$token=TOKEN;//token
$tmpArr=array($token,$timestamp,$nonce);//組成新數組
sort($tmpArr,SORT_STRING);//重新排序
$tmpStr=implode($tmpArr);//轉換成字元串
$tmpStr=sha1($tmpStr);//再將字元串進行加密
if($tmpStr==$signature)
{
echo$_GET["echostr"];
exit;
//returntrue;
}else{
returnfalse;
}
}
//已經驗證過執行這里
publicfunctionreceive(){
$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];//獲取用戶發送的消息,格式為xml
//$postStr=file_get_contents("php://input");
libxml_disable_entity_loader(true);
$postObj=simplexml_load_string($postStr,"SimpleXMLElement",LIBXML_NOCDATA);
$this->logger($postStr);
//並且回復信息給用戶
if(!empty($postObj)){
switch($postObj->MsgType){
case"text":
$result=$this->receiveText($postObj);
//避免錯誤信息報出
if(empty($result)){
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),$postObj->MsgType,"多圖文信息沒有獲取到");
}
echo$result;
break;
case"image":
$result=$this->receiveImage($postObj);
if(empty($result)){
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
</Articles>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"news","跟老李一起來做微信開發","微信開發即微信公眾平台開發,將企業信息、服務、活動等內容通過微信網頁的方式進行表現,用戶通過簡單的設置,就能生成微信3G網站。通過微信公眾平台將企業品牌展示給微信用戶,減少宣傳成本,建立企業與消費者、客戶的一對一互動和溝通,將消費者接入企業CRM系統,進行促銷、推廣、宣傳、售後等。形成了一種主流的線上線下微信互動營銷方式。","https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/ke/w%3D268%3Bg%3D0/sign=/.jpg","http://www..com");
}
echo$result;
break;
case"event":
$result=$this->receiveEvent($postObj);
if(empty($result)){
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","感謝您關注微信介面測試服務號,我是李先生!");
}
echo$result;
break;
default:
$result="你發送的數據類型暫時不做處理:".$postObj->MsgType;
echo$result;
break;
}
}

}
//log
privatefunctionlogger($content){
$logSize=100000;
$log="./log.txt";
if(file_exists($log)&&filesize($log)>$logSize){
unlink($log);
}
file_put_contents($log,date("Y-m-dH:i:s")."".$content." ",FILE_APPEND);
}
//關注自動回復信息
privatefunctionreceiveEvent($postObj){
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
if($postObj->Event=="subscribe"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","感謝您關注微信介面測試服務號,我是李先生!");
}elseif($postObj->Event=="CLICK"){
if($postObj->EventKey=="getSalary"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【查詢->工資】按鈕");
}elseif($postObj->EventKey=="getAttendance"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【查詢->考勤記錄】按鈕");
}elseif($postObj->EventKey=="getBonus"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【查詢->獎金明細】按鈕");
}elseif($postObj->EventKey=="getAbout"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【關於我們->聯系】按鈕");
}elseif($postObj->EventKey=="getJoin"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【關於我們->加入我們】按鈕");
}elseif($postObj->EventKey=="getCustomer"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【關於我們->客服】按鈕");
}elseif($postObj->EventKey=="getInternational"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【新聞->國際】按鈕");
}elseif($postObj->EventKey=="getInstry"){
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您點擊了【新聞->行業】按鈕");
}
}elseif($postObj->Event=="scancode_waitmsg"){
//掃碼帶提示的事件
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您使用了掃碼帶提示事件,事件KEY:{$postObj->EventKey}");
}elseif($postObj->Event=="scancode_push"){
//掃碼推事件
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您使用了掃碼推事件,事件KEY:{$postObj->EventKey}");
}else{
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"text","您的操作有點奇葩");
}
return$result;
}
//處理接收的文本信息並且回復給用戶
privatefunctionreceiveText($postObj){
$content=trim($postObj->Content);
//if(strstr($content,"你好")){
if(preg_match("/^d*$/",$content)){
//回復多圖文信息
$result=$this->receiveNews($postObj);
return$result;
}elseif($content=="圖片"){
//回復圖片信息
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"image","-");
return$result;
}else{
//回復文本信息
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),$postObj->MsgType,$content);
return$result;
}
}
//處理接收的文本信息並且回復給用戶為單圖文信息
privatefunctionreceiveImage($postObj){
$xml="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
</Articles>
</xml>";
$result=sprintf($xml,$postObj->FromUserName,$postObj->ToUserName,time(),"news","跟老李一起來做微信開發","微信開發即微信公眾平台開發,將企業信息、服務、活動等內容通過微信網頁的方式進行表現,用戶通過簡單的設置,就能生成微信3G網站。通過微信公眾平台將企業品牌展示給微信用戶,減少宣傳成本,建立企業與消費者、客戶的一對一互動和溝通,將消費者接入企業CRM系統,進行促銷、推廣、宣傳、售後等。形成了一種主流的線上線下微信互動營銷方式。","https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/ke/w%3D268%3Bg%3D0/sign=/.jpg","http://www..com");
return$result;
}
//處理接收的文本信息並且回復給用戶為多圖文信息
privatefunctionreceiveNews($postObj){
$con=array(
array("Title"=>"觀前街","Description"=>"hjhhj","PicUrl"=>"https://gss0..com/9fo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg","Url"=>"https://gss0..com/9fo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg"),
array("Title"=>"平江路","Description"=>"mkbkbjj","PicUrl"=>"http://imgtu.5011.net/uploads/content/shehui/wanxiang/2015-08-26/.jpg","Url"=>"http://imgtu.5011.net/uploads/content/shehui/wanxiang/2015-08-26/.jpg"),
array("Title"=>"觀前街","Description"=>"hjhhj","PicUrl"=>"http://img2.a0bi.com/upload/ttq/20160729/1469781927056.jpeg","Url"=>"http://img2.a0bi.com/upload/ttq/20160729/1469781927056.jpeg"),
array("Title"=>"平江路","Description"=>"mkbkbjj","PicUrl"=>"http://gaoxiao.zhutou.com/html/UploadPic/2010-3/201033173945493.jpg","Url"=>"http://gaoxiao.zhutou.com/html/UploadPic/2010-3/201033173945493.jpg"),
array("Title"=>"觀前街","Description"=>"hjhhj","PicUrl"=>"http://www.haha365.com/uploadfile/2013/0508/20130508102432191.jpg","Url"=>"http://www.haha365.com/uploadfile/2013/0508/20130508102432191.jpg"),
array("Title"=>"平江路","Description"=>"mkbkbjj","PicUrl"=>"http://img1.imgtn.bdimg.com/it/u=995757682,3656700920&fm=214&gp=0.jpg","Url"=>"http://img1.imgtn.bdimg.com/it/u=995757682,3656700920&fm=214&gp=0.jpg"),
array("Title"=>"觀前街","Description"=>"hjhhj","PicUrl"=>"http://down.laifu.com/tupian/201261510566.jpg","Url"=>"http://down.laifu.com/tupian/201261510566.jpg"),
array("Title"=>"平江路","Description"=>"mkbkbjj","PicUrl"=>"http://img.tupianzj.com/uploads/allimg/160528/9-16052Q54439-50.jpg","Url"=>"http://img.tupianzj.com/uploads/allimg/160528/9-16052Q54439-50.jpg")
);

$bodys="<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>";

$tpl2="";
foreach($conas$key=>$newArray){
$tpl2.=sprintf($bodys,$newArray["Title"],$newArray["Description"],$newArray["PicUrl"],$newArray["Url"]);
}
$fromUsername=$postObj->FromUserName;
$toUsername=$postObj->ToUserName;
$tpl1="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>%s</ArticleCount>
<Articles>";
$tpl3="</Articles>
</xml>";


$tpl1=sprintf($tpl1,$fromUsername,$toUsername,time(),"news",count($con));
$result=$tpl1.$tpl2.$tpl3;
return$result;
}
}
閱讀全文

與php微信接入相關的資料

熱點內容
pdf朱紹侯 瀏覽:225
編程貓演算法求和 瀏覽:554
品茗監測不到加密鎖 瀏覽:205
世界程序員收入 瀏覽:1000
filetypephp 瀏覽:724
鉸刀轉速進給的演算法 瀏覽:979
php二維數組取一列 瀏覽:377
安裝殺毒軟體出現壓縮或加密 瀏覽:975
方舟端游伺服器怎麼搜索房間 瀏覽:73
單片機學51好還是stm8好 瀏覽:798
手中的app如何隱藏 瀏覽:1001
安卓什麼壁紙軟體號 瀏覽:436
java設置內存大小 瀏覽:434
php循環匹配 瀏覽:325
技巧pdf 瀏覽:481
單片機斷程序怎麼解決 瀏覽:160
如何製作APP的圖片 瀏覽:507
php大小排序 瀏覽:551
linuxkerberos 瀏覽:127
暗黑破壞神3如何下載亞洲伺服器 瀏覽:954