導航:首頁 > 編程語言 > php調用微信jssdk

php調用微信jssdk

發布時間:2022-05-16 06:26:07

『壹』 如何在DISCUZ論壇引入微信JSSDK與分享功能

首先在公眾號管理後台「公眾號設置」的「功能設置」里填寫JS介面安全域名,域名需要通過ICP備案,沒有備案域名可以用SAE、BAE等平台。自定義分享功能需要通過微信認證才能使用,沒有認證的可以跟關系好的朋友借用許可權,在他的JS介面安全域名設置這里填上你的域名和共享同一個開發者ID。沒有認證微信號的,可參考文章末尾的辦法。

2、下載官方示例代碼:jssdk-php.zip
下載後解壓,然後在DZ根目錄新建一個文件夾命名為jssdk 把解壓得到的jssdk.php直接上傳到剛建設好的文件夾中。

3、修改header.htm模板文件
在DZ模板文件header.htm中添加如下代碼

『貳』 如何調用微信jssdk中的介面

一,首先在公眾號管理後台「公眾號設置」的「功能設置」里填寫JS介面安全域名,域名需要通過ICP備案,沒有備案域名可以用SAE、BAE等平台。此外,自定義分享功能需要通過微信認證才能使用,沒有認證的可以跟關系好的朋友借用許可權,在他的JS介面安全域名設置這里填上你的域名和共享同一個開發者ID。
二,在需要調用JS介面的頁面引入微信JSSDK的JS文件:這個文件在需要分享的頁面是必須要引用的,單獨特別重申一下,其他方面請閱讀官方文檔。

『叄』 php開發微信jssdk介面 iphone手機當一次多圖上傳時,只有一張上傳成功怎麼回事,安

微信上傳圖片,只能遞歸方法上傳多張,所以你可能是JS代碼里只上傳了一次

『肆』 微信jssdk demo php版怎麼用那些按鈕點了沒反應怎麼測試菜鳥

你如果沒有過不懂網頁開發的話,你就不要用這些東西了,你不會用的

『伍』 不用php怎麼調用微信jssdk

使用姿勢

^ajax(Common.ServerUrl+"GetWX.php",{
data:{
Type:"config",
url:location.href.split('#')[0]
},
dataType:'json',
type:'get',
timeout:5000,
success:function(data){
wx.config({
debug:true,//開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會列印。
appId:'……',//必填,公眾號的唯一標識
timestamp:data.timestamp,//必填,生成簽名的時間戳
nonceStr:data.nonceStr,//必填,生成簽名的隨機串
signature:data.signature,//必填,簽名,見附錄1
jsApiList:["getLocation"]//必填,需要使用的JS介面列表,所有JS介面列表見附錄2
});
}
})
wx.ready(function(){
wx.getLocation({
type:'wgs84',//默認為wgs84的gps坐標,如果要返回直接給openLocation用的火星坐標,可傳入'gcj02'
success:function(res){
varlatitude=res.latitude;//緯度,浮點數,范圍為90~-90
varlongitude=res.longitude;//經度,浮點數,范圍為180~-180。
plus2.storage.setItem("latitude",latitude);
plus2.storage.setItem("longitude",longitude);
}
});
});

服務端GetWX.PHP

<?php
include"lib/Cache.php";
define($APPID,"……");
define($SECRET,"……")
if($_GET['Type']=="access_token"){//echogetAccess_token();
}
elseif($_GET['Type']=="jsapi_ticket"){//echogetJsapi_ticket();
}
elseif($_GET['Type']=="config"){
$jsapi_ticket=getJsapi_ticket();
$nonceStr="x".rand(10000,100000)."x";//隨機字元串
$timestamp=time();//時間戳
$url=$_GET['url'];
$signature=getSignature($jsapi_ticket,$nonceStr,$timestamp,$url);

$result=array("jsapi_ticket"=>$jsapi_ticket,"nonceStr"=>$nonceStr,"timestamp"=>$timestamp,"url"=>$url,"signature"=>$signature);
echojson_encode($result);
}

functiongetSignature($jsapi_ticket,$noncestr,$timestamp,$url){
$string1="jsapi_ticket=".$jsapi_ticket."&noncestr=".$noncestr."&timestamp=".$timestamp."&url=".$url;
$sha1=sha1($string1);
return$sha1;
}

functiongetJsapi_ticket(){
$cache=newCache();
$cache=newCache(7000,'cache/');//需要創建cache文件夾存儲緩存文件。
//從緩存從讀取鍵值$key的數據
$jsapi_ticket=$cache->get("jsapi_ticket");
$access_token=getAccess_token();
//如果沒有緩存數據
if($jsapi_ticket==false){
$access_token=getAccess_token();
$url='https://api.weixin.qq.com/cgi-bin/ticket/getticket';
$data=array('type'=>'jsapi','access_token'=>$access_token);
$header=array();
$response=json_decode(curl_https($url,$data,$header,5));
$jsapi_ticket=$response->ticket;
//寫入鍵值$key的數據
$cache->put("jsapi_ticket",$jsapi_ticket);
}
return$jsapi_ticket;
}

functiongetAccess_token(){
$cache=newCache();
$cache=newCache(7000,'cache/');
//從緩存從讀取鍵值$key的數據
$access_token=$cache->get("access_token");

//如果沒有緩存數據
if($access_token==false){
$url='https://api.weixin.qq.com/cgi-bin/token';
$data=array('grant_type'=>'client_credential','appid'=>$APPID,'secret'=>$SECRET);
$header=array();

$response=json_decode(curl_https($url,$data,$header,5));
$access_token=$response->access_token;
//寫入鍵值$key的數據
$cache->put("access_token",$access_token);
}
return$access_token;
}

/**curl獲取https請求
*@paramString$url請求的url
*@paramArray$data要發送的數據
*@paramArray$header請求時發送的header
*@paramint$timeout超時時間,默認30s
*/
functioncurl_https($url,$data=array(),$header=array(),$timeout=30){
$ch=curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//跳過證書檢查
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);

$response=curl_exec($ch);

if($error=curl_error($ch)){
die($error);
}

curl_close($ch);

return$response;

}
?>

Cache.php

<?phpclassCache{
private$cache_path;
//pathforthecache
private$cache_expire;
//secondsthatthecacheexpires

//cacheconstructor,
publicfunctionCache($exp_time=3600,$path="cache/"){
$this->cache_expire=$exp_time;
$this->cache_path=$path;
}

//returnsthefilenameforthecache
privatefunctionfileName($key){
return$this->cache_path.md5($key);
}

//,$key==nameofthecache,datatheinfo/valuestostore
publicfunctionput($key,$data){
$values=serialize($data);
$filename=$this->fileName($key);
$file=fopen($filename,'w');
if($file){//abletocreatethefile
fwrite($file,$values);
fclose($file);
}else
returnfalse;
}

//returnscacheforthegivenkey
publicfunctionget($key){
$filename=$this->fileName($key);
if(!file_exists($filename)||!is_readable($filename)){//can'treadthecache
returnfalse;
}
if(time()<(filemtime($filename)+$this->cache_expire)){//cacheforthekeynotexpired
$file=fopen($filename,"r");
//readdatafile
if($file){//abletoopenthefile
$data=fread($file,filesize($filename));
fclose($file);
returnunserialize($data);
//returnthevalues
}else
returnfalse;
}else
returnfalse;
//wasexpiredyouneedtocreatenew
}

}?>

『陸』 微信公眾平台開發,oauth2.0認證地址,打開jssdk頁面無法驗證通過

給你個PHP的例子:
下面的代碼保存為get_sdkper.php
<?php
require_once "jssdk.php";

//1.注意:所有的JS介面只能在公眾號綁定的域名下調用,公眾號開發者需要先登錄微信公眾平台進入「公眾號設置」的「功能設置」里填寫「JS介面安全域名」。
//2.填寫appid和secret
$appid="你的appid";
$secret="你的secret";
$getUrl=$_POST["url"];

$jssdk = new JSSDK($appid, $secret,$getUrl);
$signPackage = $jssdk->GetSignPackage();
echo("{\"appId\":\"".$signPackage["appId"]."\",\"timestamp\":\"".$signPackage["timestamp"]."\",\"nonceStr\":\"".$signPackage["nonceStr"]."\",\"signature\":\"".$signPackage["signature"]."\",\"url\":\"".$signPackage["url"]."\"}");
?>

下面是調用方法:
//調用微信JS API介面
var GetappId="",Gettimestamp="",GetnonceStr="",Getsignature="";
function CallWechatJSAPI()
{
$.ajax({
url:"get_sdkper.php",
type:"POST",
data:"url="+escape(location.href.split('#')[0]),
dataType:"JSON",
success:function(result){
var resultData = $.evalJSON(result);
if(resultData){
GetappId = resultData.appId;
Gettimestamp = resultData.timestamp;
GetnonceStr = resultData.nonceStr;
Getsignature = resultData.signature;

wx.config({
debug: false,
appId: GetappId,
timestamp: Gettimestamp,
nonceStr: GetnonceStr,
signature: Getsignature,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareQQ',
'onMenuShareWeibo',
'hideMenuItems',
'hideAllNonBaseMenuItem',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getNetworkType',
'openLocation',
'getLocation',
'hideOptionMenu',
'closeWindow',
'scanQRCode',
'chooseWXPay',
'openProctSpecificView',
'addCard',
'chooseCard',
'openCard'
]
});
}

},
error:function(){
//alert("連接網路失敗,請重試。");
}
});

}

『柒』 【求幫助】 微信JSSDK 分享介面,調用沒反應

你在wx.config時,打開調試模式,自己測試測試,在調試模式下,都會alert信息出來,看看alert出來的是什麼信息。

『捌』 怎麼使用微信JSSDK的自定義分享功能

  1. 備案信息;

  2. 公眾號賬號;

  1. 首先在公眾號管理後台「公眾號設置」的「功能設置」里填寫JS介面安全域名,域名需要通過ICP備案,沒有備案域名可以用SAE、BAE等平台。

  2. 以上是常規的在動態頁面的調用方法,為了更方便的多頁面調用,建議通過AJAX跨域請求來實現調用許可權。

注意:

在PHP文件夾下sample.php是調用API介面的示例文件。

『玖』 thinkphp結合微信jssdk文檔 第一次轉發朋友圈跳轉鏈接 第二次不用在轉發就可以獲取跳轉的鏈接怎麼做

你可以這么做,資料庫裡面有一個欄位是來判斷是不是第一次,欄位為1的話就是已經轉發過了,為0的話就是還沒有轉發,如果為1你就不要執行jssdk的分享

『拾』 jssdk的api能調出微信刷卡界面嗎或者,通過PHP如何調出微信刷卡界面

目前好像是沒有的,無論是jssdk還是php

閱讀全文

與php調用微信jssdk相關的資料

熱點內容
日本那部電影病嬌男主要當女主的狗是校園電影 瀏覽:210
抗日戰爭片400部 瀏覽:730
編程可以賺錢嗎 瀏覽:729
eclipseandroid建立工程 瀏覽:732
大胸女友主演 瀏覽:276
佛教電影《解怨》國語 瀏覽:474
哪部電影男孩叫安東 瀏覽:13
有騎木驢的電影叫什麼感覺 瀏覽:265
windows重啟mysql命令 瀏覽:730
單片機輸入輸出口接收脈沖 瀏覽:121
控制電腦滑鼠的命令 瀏覽:213
男男強暴電影 瀏覽:604
便利店送貨上門app叫什麼 瀏覽:468
win8怎麼打開命令行 瀏覽:129
p開頭的一個看片軟體 瀏覽:755
西班牙電影不準備的愛情 瀏覽:177
python轉換器使用教程 瀏覽:629
cad圖紙重復圖形命令 瀏覽:769
法國女同床戲多私處可見的電影 瀏覽:926
那你給年齡那邊電影想電影想一起電影 瀏覽:994