當前位置:首頁 » 編程語言 » php微信端

php微信端

發布時間: 2022-06-29 16:04:46

php 怎麼對接微信自定義菜單

click(點擊事件):用戶點擊click類型按鈕後,微信伺服器會通過消息介面(event類型)推送點擊事件給開發者,並且帶上按鈕中開發者填寫的key值,開發者可以通過自定義的key值進行消息回復。view(訪問網頁):用戶點擊view類型按鈕後,會直接跳轉到開發者指定的url中。

創建自定義菜單後,由於微信客戶端緩存,需要24小時微信客戶端才會展現出來。建議測試時可以嘗試取消關注公眾賬號後,再次關注,則可以看到創建後的效果。 (PS:T不錯的PHP Q扣峮:276167802,驗證:csl)

菜單創建

介面說明
通過POST一個特定結構體,實現在微信客戶端創建自定義菜單。
你看過後很簡單吧以後不會可以向我一樣經常到後盾人找找相關教材看看就會了,希望能幫到你,給個採納吧謝謝

❷ php微信開發是什麼

微信開發的意思就是,申請一個特殊賬號,微信客戶端對用戶的請求做出個性化回應。

❸ 接入微信開發時php實例怎麼配置

第一步需要指定接收微信伺服器數據的URL,同時還需要指定一個TOKEN(由開發者任意填寫,用於生成簽名),用於接入時的驗證。
第二步要驗證您指定的URL的有效性,微信伺服器會像您指定的URL發送一個GET請求,該請求攜帶四個參數。

開發者通過檢驗signature對請求進行校驗。若確認此次GET請求來自微信伺服器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。
PHP檢驗代碼如下。
<?php

$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();

class wechatCallbackAPI {

private $token = "WEIXIN";

private $appId = "APPID";

private $appSecret = "APPSECRET";

private function checkSignature() {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];

$tmpArr = array($this->token, $timestamp, $nonce); 你看過後很簡單吧以後不會可以向我一樣經常到後盾人平台找找相關教材看看就會了,希望能幫到你,給個採納吧謝謝ヾ(◍ ° ㉨ ° ◍)ノ゙

❹ php 微信開發,php微信怎麼開發

本系列教程將引導你完成如下任務:
創建新浪雲計算平台應用
啟用微信公眾平台開發模式
體驗常用接收消息及發送消息類型
了解數據收發原理及消息格式
具體請參考 http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

❺ PHP 微信端上傳圖片,上傳logo和banner圖,哪位大神傳授一下經驗啊,有demo更好,可以加分

<divclass="header">
<span>頭像</span>
<divclass="head_r"style="position:relative">
<imgclass="portrait_line"id="show_portrait"src="{$agent['portrait']}">
<imgsrc="__IMAGES__/more.png">
<inputtype="file"name="portrait"id="portrait"data-server="{:U('Home/Upload/mobile_upload_portrait')}"style="width:100%;height:100%;position:absolute;left:0px;top:0px;opacity:0;">
</div>
</div>

最後一個input file弄成透明的,占據整個你要觸發上傳的位置。

重點在下面,用原生ajax上傳提交圖片,並把上傳後伺服器本地的地址傳回來,通過js付到表單里,並把圖片縮小預覽貼出來。

<script>
$(function(){
$("input#portrait").on("change",function(){
changepic('portrait','show_portrait');
});
});

varxhr;
varreturnimg="";
varreturninput="";

functionchangepic(id,img,input){
returnimg=img;
returninput=input;
varfileObj=document.getElementById(id).files[0];
varuploadServer=$("#"+id).attr("data-server");
varform=newFormData();
form.append("portrait",fileObj);
createXMLHttpRequest();
xhr.onreadystatechange=handleStateChange;
xhr.open("post",uploadServer,true);
xhr.send(form);
}

functioncreateXMLHttpRequest()
{
if(window.ActiveXObject)
{
xhr=newActiveXObject("Microsoft.XMLHTTP");
}
elseif(window.XMLHttpRequest)
{
xhr=newXMLHttpRequest();
}
}
functionhandleStateChange()
{
var$loading=layer.open({type:2,})
if(xhr.readyState==4)
{
if(xhr.status==200||xhr.status==0)
{
varresult=xhr.responseText;
varjson=eval("("+result+")");
if(json.result=='success'){
$.ajax({
type:'post',
url:'/index.php/Wap/Self/updatePortrait',
data:{
portrait:json.url,
},
success:function(){

},
error:function(){
alert('伺服器錯誤');
},
});
$("#"+returnimg).attr("src",json.url);
layer.close($loading);
}
else{
alert('上傳頭像失敗'+json.msg);
layer.close($loading);
}

}
}
}
</script>

然後是ajax上傳的介面

publicfunctionmobile_upload_portrait(){//手機端上傳頭像
if(IS_POST){
$upload=newUpload();
$upload->maxSize=3*1024*1024;//3M
$upload->exts=array('jpg','gif','png','jpeg');
$upload->rootPath='./';
$upload->savePath='/Uploads/';
$upload->autoSub=true;
$upload->subName=array('date','Ymd');
$upload->saveName='uniqid';
if(!is_dir($upload->savePath)){
mkdir($upload->savePath);
}
$info=$upload->uploadOne($_FILES['portrait']);
if(!$info){
$result=array('result'=>'fail','msg'=>'請上傳3M以下的圖片');
}else{
$result=array('result'=>'success','url'=>$info['savepath'].$info['savename']);
}
$this->ajaxReturn($result);
}
}

代碼是Thinkphp的項目截出來的,頁面上有模板的痕跡,最後一段php的介面,也用了tp自帶的文件上傳類。不過看得懂的話,這些都不影響理解。

❻ php如何判斷微信端打開的頁面!

用$_SERVER['HTTP_USER_AGENT']用來檢查瀏覽頁面的訪問者在用什麼操作系統(包括版本號)瀏覽器(包括版本號)和用戶個人偏好的代碼。


在iPhone下,返回

Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2


在Android下,返回

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255


在PC下,返回

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36


代碼

$client=$_SERVER['HTTP_USER_AGENT'];

//用php自帶的函數strpos來檢測是否是微信端
if(strpos($client,'MicroMessenger')===true){
echo"微信端";
}

❼ php如何判斷微信端打開的頁面

根據瀏覽器信息作出判斷,也有可能被模擬 = =
header("Content-type: text/html; charset=utf-8");
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) {
echo "禁止瀏覽,請在微信中打開本站";exit;
} else {
session_start();
}

❽ phpstudy apache怎樣設置微信端

首先,打開phpStudy軟體,點擊下圖右側紅框的【停止】按鈕,先停止Apache和MySql服務,使其運行狀態顯示紅色方塊的停止狀態

然後,左鍵點擊phpStudy界面右下角的【其他選項菜單】,在彈出的菜單中選擇【phpStudy設置】,滑鼠移至其二級菜單,點選【埠常規設置】,如圖紅框處

接著,就能打開phpStudy設置對話框,上麵包含有Apache、PHP、MySQL以及MySQL修改密碼這四個設置分類框,如下圖右側紅框圖示;

設置Apache參數:定位到phpStudy設置中的Apache設置框,在httpd埠欄輸入自定義的埠比如:81埠,再點擊右側「埠檢測」,就會彈出檢查埠的對話框,點擊【檢查埠】按鈕,確定該埠未被佔用;然後再Apache設置框的網站目錄中選擇自定義的目錄;默認首頁按需添加首頁名稱及文件後綴即可,再點擊【應用】按鈕;Apache設置完畢;

設置PHP參數:定位到如圖紅框處,在中部PHP區域,點選【全局全量】值和是否打開【錯誤顯示】,在【腳本運行最長時間】和【上傳最大值】這些框內輸入自定義的數值;點擊【應用】,PHP參數設置完畢;

設置MySQL參數,定位到MySQL設置框,在其中的【埠】、【最大連接數】、【字元集】屬於自定義的調試數值,【資料庫引擎】根據保持默認即可;點擊【應用】按鈕,MySQL參數設置完畢。

關掉phpStudy設置對話框,切換到phpStudy2014程序主界面,點擊【重啟】按鈕,重啟Apache和MySQL服務,當運行狀態提示綠色圓圈,時,表示啟動完成,並已經採用上述新的設置了.

啟動完畢就可以最小化phpStudy,讓其在後台運行。以上就是如何一次性設置phpStudy中這三種工具參數的方法經驗,希望大家能順利用上phpStudy集成環境包開發程序。

❾ php微信開發是什麼能不能詳細介紹一下

php微信開發主要是用於微信公眾平台的應用開發。
PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。
PHP 獨特的語法混合了C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。

❿ 如何利用PHP實現 APP端微信支付功能

一丶PHP後台後台生成預支付交易單,返回正確的預支付交易回話標識後再在APP裡面調起支付!官方文檔:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

根據文檔拼接微信需要的參數,這里需要幾個方法,直接上代碼!

傳輸給微信的參數要組裝成xml格式發送,傳如參數數組!
publicfunctionToXml($data=array())

{
if(!is_array($data)||count($data)<=0)
{
return'數組異常';
}

$xml="";
foreach($dataas$key=>$val)
{
if(is_numeric($val)){
$xml.="<".$key.">".$val."";
}else{
$xml.="<".$key.">";
}
}
$xml.="";
return$xml;
}

2.生成隨機字元串,微信所需參數!這里方法很多,看自己愛好都行!

functionrand_code(){
$str='';//62個字元
$str=str_shuffle($str);
$str=substr($str,0,32);
return$str;
}

3.這里是微信比較重要的一步了,這個方法會多次用到!生成簽名

privatefunctiongetSign($params){
ksort($params);//將參數數組按照參數名ASCII碼從小到大排序
foreach($paramsas$key=>$item){
if(!empty($item)){//剔除參數值為空的參數
$newArr[]=$key.'='.$item;//整合新的參數數組
}
}
$stringA=implode("&",$newArr);//使用&符號連接參數
$stringSignTemp=$stringA."&key="."************************";//拼接key
//key是在商戶平台API安全里自己設置的
$stringSignTemp=MD5($stringSignTemp);//將字元串進行MD5加密
$sign=strtoupper($stringSignTemp);//將所有字元轉換為大寫
return$sign;
}

4.傳遞參數給微信,生成預支付訂單!接收微信返回的數據,在反給APP端,APP端調用支付介面,完成支付!APP端所需參數見微信文檔:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2

publicfunctionwx_pay(){

$nonce_str=$this->rand_code();//調用隨機字元串生成方法獲取隨機字元串
$data['appid']='wxdbc5dc*******';//appid
$data['mch_id']='1493*****';//商戶號
$data['body']="APP支付測試";
$data['spbill_create_ip']=$_SERVER['HTTP_HOST'];//ip地址
$data['total_fee']=1;//金額
$data['out_trade_no']=time().mt_rand(10000,99999);//商戶訂單號,不能重復
$data['nonce_str']=$nonce_str;//隨機字元串
$data['notify_url']='https://www.5wx.org/';接收支付後的通知,必須為能直接訪問的網址,不能跟參數
$data['trade_type']='APP';//支付方式
//將參與簽名的數據保存到數組注意:以上幾個參數是追加到$data中的,$data中應該同時包含開發文檔中要求必填的剔除sign以外的所有數據
$data['sign']=$this->getSign($data);//獲取簽名
$xml=$this->ToXml($data);//數組轉xml
//curl傳遞給微信方
$url="https://api.mch.weixin.qq.com/pay/unifiedorder";
//header("Content-type:text/xml");
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
if(stripos($url,"https://")!==FALSE){
curl_setopt($ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
}else{
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴格校驗
}
//設置header
curl_setopt($ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
curl_setopt($ch,CURLOPT_HEADER,FALSE);
//要求結果為字元串且輸出到屏幕上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
//設置超時
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_POST,TRUE);
//傳輸文件
curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
//運行curl
$data=curl_exec($ch);
//返回結果
if($data){
curl_close($ch);
//返回成功,將xml數據轉換為數組.
$re=$this->FromXml($data);
if($re['return_code']!='SUCCESS'){
json("201",'簽名失敗');
}
else{
//接收微信返回的數據,傳給APP!
$arr=array(
'prepayid'=>$re['prepay_id'],
'appid'=>'wxdbc5dc*****',
'partnerid'=>'14937****',
'package'=>'Sign=WXPay',
'noncestr'=>$nonce_str,
'timestamp'=>time(),
);
//第二次生成簽名
$sign=$this->getSign($arr);
$arr['sign']=$sign;
json('200','簽名成功',$arr);
}
}else{
$error=curl_errno($ch);
curl_close($ch);
json('201',"curl出錯,錯誤碼:$error");
}
}

5.將xml數據轉換為數組,接收微信返回數據時用到.

publicfunctionFromXml($xml)
{
if(!$xml){
echo"xml數據異常!";
}
//將XML轉為array
//禁止引用外部xml實體
libxml_disable_entity_loader(true);
$data=json_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true);
return$data;
}

二.APP支付成功後,會調用你填寫的回調地址.返回參數詳見微信文檔:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_7&index=3

//微信支付回調
functionwx_notify(){
//接收微信返回的數據數據,返回的xml格式
$xmlData=file_get_contents('php://input');
//將xml格式轉換為數組
$data=$this->FromXml($xmlData);
//用日誌記錄檢查數據是否接受成功,驗證成功一次之後,可刪除。
$file=fopen('./log.txt','a+');
fwrite($file,var_export($data,true));
//為了防止假數據,驗證簽名是否和返回的一樣。
//記錄一下,返回回來的簽名,生成簽名的時候,必須剔除sign欄位。
$sign=$data['sign'];
unset($data['sign']);
if($sign==$this->getSign($data)){
//簽名驗證成功後,判斷返回微信返回的
if($data['result_code']=='SUCCESS'){
//根據返回的訂單號做業務邏輯
$arr=array(
'pay_status'=>1,
);
$re=M('order')->where(['order_sn'=>$data['out_trade_no']])->save($arr);
//處理完成之後,告訴微信成功結果!
if($re){
echo'';exit();
}
}
//支付失敗,輸出錯誤信息
else{
$file=fopen('./log.txt','a+');
fwrite($file,"錯誤信息:".$data['return_msg'].date("Y-m-dH:i:s"),time()." ");
}
}
else{
$file=fopen('./log.txt','a+');
fwrite($file,"錯誤信息:簽名驗證失敗".date("Y-m-dH:i:s"),time()." ");
}

}

在這里,微信APP支付流程就成功走完了!謝謝支持!

---------------------

熱點內容
oraclesql執行存儲過程 發布:2024-04-24 14:28:07 瀏覽:455
vos伺服器是什麼 發布:2024-04-24 14:17:50 瀏覽:826
冰菓資料庫 發布:2024-04-24 14:17:36 瀏覽:83
鴻蒙系統安卓系統蘋果系統哪個好 發布:2024-04-24 14:04:43 瀏覽:745
網上郵政儲蓄銀行如何修改密碼 發布:2024-04-24 13:57:57 瀏覽:28
sqlserverexistsin 發布:2024-04-24 13:23:13 瀏覽:321
壓縮包暴力破解器 發布:2024-04-24 13:21:46 瀏覽:280
微信對接配置要注意哪些 發布:2024-04-24 13:12:27 瀏覽:657
演算法推薦分類 發布:2024-04-24 13:11:46 瀏覽:804
思域十一代選哪個配置 發布:2024-04-24 13:11:46 瀏覽:369