亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 微信小程式 微信開發(fā) 基於thinkPHP實作的微信自訂分享功能範例

基於thinkPHP實作的微信自訂分享功能範例

Feb 21, 2017 pm 03:02 PM

本文實例講述了基於thinkPHP實作的微信自訂分享功能。分享給大家供大家參考,具體如下:

在許多大的網(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實作的微信自訂分享功能範例相關(guān)文章請關(guān)注PHP中文網(wǎng)!

#
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應(yīng)的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276