国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah applet WeChat pembangunan WeChat 基于thinkPHP實現(xiàn)的微信自定義分享功能示例

基于thinkPHP實現(xiàn)的微信自定義分享功能示例

Feb 21, 2017 pm 03:02 PM

本文實例講述了基于thinkPHP實現(xiàn)的微信自定義分享功能。分享給大家供大家參考,具體如下:

在許多大的網(wǎng)站我們都會看到點擊分享就可以把數(shù)據(jù)分享到微信或QQ或其它的平臺了,下面我們來看一段php版微信自定義分享代碼,代碼參考官方開發(fā)的沒有任何問題.

分享需要認證微信訂閱號或者服務(wù)號.

php 代碼(thinkphp):

$appid='xxx';
$appsecret='xxxx';
$timestamp = time();
$noncestr = $this->getRandStr(15);
// dump();
$url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='. $this->get_token($appid,$appsecret) .'&type=jsapi';
$ret_json = $this->curl_get_contents($url);
$ret = json_decode($ret_json);
$ticket = $ret-> ticket;
//var_dump($ret);
$strvalue = 'jsapi_ticket='.$ticket.'&noncestr='.$noncestr.'&timestamp='.$timestamp.'&url=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$signature = sha1($strvalue);
$this->assign('timestamp',$timestamp);
$this->assign('nonceStr',$noncestr);
$this->assign('signature',$signature);
function get_token($appid,$appsecret){
 if(S('access_token')) return S('access_token');
 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
 $ret_json = $this->curl_get_contents($url);
 $ret = json_decode($ret_json);
 if($ret -> access_token){
 S('access_token',$ret -> access_token,7200);
 return $ret -> access_token;
 }
}
function is_weixin(){
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
return true;
}
return false;
}
function getRandStr($length){
 $str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 $randString = '';
 $len = strlen($str)-1;
 for($i = 0;$i < $length;$i ++){
 $num = mt_rand(0, $len);
 $randString .= $str[$num];
 }
 return $randString;
}
function curl_get_contents($url){
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_TIMEOUT, 1);
 curl_setopt($ch, CURLOPT_MAXREDIRS, 200);
 curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);
 curl_setopt($ch, CURLOPT_REFERER, _REFERER_);
 @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 $r = curl_exec($ch);
 curl_close($ch);
 return $r;
}

js代碼:需要引入:http://res.wx.qq.com/open/js/jweixin-1.0.0.js

wx.config({
 debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會通過log打出,僅在pc端時才會打印。
 appId: &#39;wxae7c36a1349c5868&#39;, // 必填,公眾號的唯一標識
 timestamp: &#39;{$timestamp}&#39;, // 必填,生成簽名的時間戳
 nonceStr: &#39;{$nonceStr}&#39;, // 必填,生成簽名的隨機串
 signature: &#39;{$signature}&#39;,// 必填,簽名,見附錄1
 jsApiList: [&#39;onMenuShareTimeline&#39;,&#39;onMenuShareAppMessage&#39;] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
});
wx.ready(function(){
wx.onMenuShareTimeline({
 title: &#39;{$contentInfo.title}&#39;, // 分享標題
 link: window.location.href, // 分享鏈接
 imgUrl: &#39;http://&#39;+window.location.host+&#39;{$categoryInfo.image}&#39;, // 分享圖標
 success: function () {
 // 用戶確認分享后執(zhí)行的回調(diào)函數(shù)
 //alert(1111);
 //fxfunc();
 },
 cancel: function () {
 // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
 //alert("您取消了分享");
 }
});
wx.onMenuShareAppMessage({
 title: &#39;{$contentInfo.title}&#39;, // 分享標題
 desc: removeHTMLTag(&#39;{$contentInfo.content}&#39;), // 分享描述
 link: window.location.href, // 分享鏈接
 imgUrl: &#39;http://&#39;+window.location.host+&#39;{$categoryInfo.image}&#39;, // 分享圖標
 type: &#39;&#39;, // 分享類型,music、video或link,不填默認為link
 dataUrl: &#39;&#39;, // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認為空
 success: function () {
 // 用戶確認分享后執(zhí)行的回調(diào)函數(shù)
 //fxfunc();
 },
 cancel: function () {
 //alert("您取消了分享");
 // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
 }
});
 // config信息驗證后會執(zhí)行ready方法,所有接口調(diào)用都必須在config接口獲得結(jié)果之后,config是一個客戶端的異步操作,所以如果需要在頁面加載時就調(diào)用相關(guān)接口,則須把相關(guān)接口放在ready函數(shù)中調(diào)用來確保正確執(zhí)行。對于用戶觸發(fā)時才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中。
});
function removeHTMLTag(str) {
 str = str.replace(/<\/?[^>]*>/g,&#39;&#39;); //去除HTML tag
 str = str.replace(/[ | ]*\n/g,&#39;\n&#39;); //去除行尾空白
 //str = str.replace(/\n[\s| | ]*\r/g,&#39;\n&#39;); //去除多余空行
 str=str.replace(/ /ig,&#39;&#39;);//去掉 
 return str;
}

更多基于thinkPHP實現(xiàn)的微信自定義分享功能示例相關(guān)文章請關(guān)注PHP中文網(wǎng)!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276