PHP自定義實現微信分享朋友圈原始碼演示下載
PHP自定義實現微信分享朋友圈原始碼演示下載:http://www.erdangjiade.com/php/2746.html
1、先載入微信自帶的介面程式碼
<?php
class JSSDK {
private $appId;
private $appSecret;
public function __construct($appId, $appSecret) {
$this->appId = $appId;
$this->appSecret = $appSecret;
}
public function getSignPackage() {
$jsapiTicket = $this->getJsApiTicket();
// 注意 URL 一定要動態獲取,不能 hardcode.
$protocol = (!empty($_SERVER[`HTTPS`]) && $_SERVER[`HTTPS`] !== `off` || $_SERVER[`SERVER_PORT`] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$timestamp = time();
$nonceStr = $this->createNonceStr();
// 這裡引數的順序要按照 key 值 ASCII 碼升序排序
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array(
"appId" => $this->appId,
"nonceStr" => $nonceStr,
"timestamp" => $timestamp,
"url" => $url,
"signature" => $signature,
"rawString" => $string
);
return $signPackage;
}
private function createNonceStr($length = 16) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$str = "";
for ($i = 0; $i < $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
}
return $str;
}
private function getJsApiTicket() {
// jsapi_ticket 應該全域性儲存與更新,以下程式碼以寫入到檔案中做示例
$data = json_decode($this->get_php_file("jsapi_ticket.php"));
if ($data->expire_time < time()) {
$accessToken = $this->getAccessToken();
// 如果是企業號用以下 URL 獲取 ticket
// $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
$res = json_decode($this->httpGet($url));
$ticket = $res->ticket;
if ($ticket) {
$data->expire_time = time() + 7000;
$data->jsapi_ticket = $ticket;
$this->set_php_file("jsapi_ticket.php", json_encode($data));
}
} else {
$ticket = $data->jsapi_ticket;
}
return $ticket;
}
private function getAccessToken() {
// access_token 應該全域性儲存與更新,以下程式碼以寫入到檔案中做示例
$data = json_decode($this->get_php_file("access_token.php"));
if ($data->expire_time < time()) {
// 如果是企業號用以下URL獲取access_token
// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
$res = json_decode($this->httpGet($url));
$access_token = $res->access_token;
if ($access_token) {
$data->expire_time = time() + 7000;
$data->access_token = $access_token;
$this->set_php_file("access_token.php", json_encode($data));
}
} else {
$access_token = $data->access_token;
}
return $access_token;
}
private function httpGet($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 為保證第三方伺服器與微信伺服器之間資料傳輸的安全性,所有微信介面採用https方式呼叫,必須使用下面2行程式碼開啟ssl安全校驗。
// 如果在部署過程中程式碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證照判別檔案。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
private function get_php_file($filename) {
return trim(substr(file_get_contents($filename), 15));
}
private function set_php_file($filename, $content) {
$fp = fopen($filename, "w");
fwrite($fp, "<?php exit();?>" . $content);
fclose($fp);
}
}
2、修改自己的配製資訊用微信瀏覽器開啟就可以了
<?php
require_once "jssdk.php";
$appid = `wx110`;
$APPSECRET = `110`;
$jssdk = new JSSDK($appid, $APPSECRET);
$signPackage = $jssdk->GetSignPackage();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js微信自定義分享標題、連結和圖示</title>
<meta name="keywords" content="js微信分享,php微信分享" />
<meta name="description" content="PHP自定義微信分享內容,包括標題、圖示、連結等,分享成功和取消有js回撥函式。" />
</head>
<body>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
/*
* 注意:
* 1. 所有的JS介面只能在公眾號繫結的域名下呼叫,公眾號開發者需要先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。
* 2. 如果發現在 Android 不能分享自定義內容,請到官網下載最新的包覆蓋安裝,Android 自定義分享介面需升級至 6.0.2.58 版本及以上。
* 3. 常見問題及完整 JS-SDK 文件地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
*
* 開發中遇到問題詳見文件“附錄5-常見錯誤及解決辦法”解決,如仍未能解決可通過以下渠道反饋:
* 郵箱地址:weixin-open@qq.com
* 郵件主題:【微信JS-SDK反饋】具體問題
* 郵件內容說明:用簡明的語言描述問題所在,並交代清楚遇到該問題的場景,可附上截圖圖片,微信團隊會盡快處理你的反饋。
*/
wx.config({
debug: false,
appId: `<?php echo $appid; ?>`,
timestamp: <?php echo $signPackage["timestamp"]; ?>,
nonceStr: `<?php echo $signPackage["nonceStr"]; ?>`,
signature: `<?php echo $signPackage["signature"]; ?>`,
jsApiList: [
`onMenuShareTimeline`
]
});
wx.ready(function() {
wx.onMenuShareTimeline({
title: `二當家的`, // 分享標題
link: `http://www.erdangjiade.com/`, // 分享連結
imgUrl: ``, // 分享圖示
success: function() {
// 使用者確認分享後執行的回撥函式
},
cancel: function() {
// 使用者取消分享後執行的回撥函式
}
});
});
</script>
<p style="text-align: center;color:red;font-size:20px;margin-top: 120px">請用微信瀏覽器開啟,並開啟右上方按鈕。分享到朋友圈試試。</p>
</html>
相關文章
- 微信自定義分享支援https(php)HTTPPHP
- php實現的微信分享到朋友圈並記錄分享次數功能PHP
- [文件教程]PHP實現微信開放平臺掃碼登入原始碼下載PHP原始碼
- 如何利用微狗仔實現微信自定義分享卡片連結
- 關於微信分享自定義標題,說明,圖示基於PHP的功能實現PHP
- 自定義QQ和微信分享卡片
- 使用微信js-sdk自定義分享JS
- 微信JSSDK遇見的坑--vue微信自定義分享JSVue
- 微信小程式自定義元件實現 tabBar、navBar微信小程式元件tabBar
- 微信小程式朋友圈分享圖片生成方案實現微信小程式
- 實現高效能微信朋友圈
- 微信小程式Tree自定義控制元件實現微信小程式控制元件
- 微信小程式底部實現自定義動態Tabbar微信小程式tabBar
- php短視訊原始碼,jQuery實現自定義輪播圖外掛PHP原始碼jQuery
- thinkphp實現超級外賣訂餐系統原始碼演示下載PHP原始碼
- PHP實現個人免簽約微信支付介面原理+原始碼PHP原始碼
- 微信網頁自定義分享踩坑日誌網頁
- 微信公眾號,H5自定義分享H5
- 微信內 H5 頁面自定義分享H5
- 實現微信分享功能
- 微信公眾號連結自定義分享總結
- .Net微信網頁開發之使用微信JS-SDK自定義微信分享內容網頁JS
- 微信公眾號開發5-自定義選單-微信開發phpPHP
- 微信小程式自定義tab,多層tab巢狀實現微信小程式巢狀
- php分銷版微商城原始碼分享PHP原始碼
- 微信群活碼以及微信活碼防封如何實現技術分享
- 記錄一次vue2.0(history模式)下微信自定義分享的坑Vue模式
- 微信小程式實現商城案例(賦原始碼)微信小程式原始碼
- 微信小程式 自定義tabbar微信小程式tabBar
- 微信小程式自定義tabBar微信小程式tabBar
- 微信朋友圈
- python實現超級瑪麗小遊戲(動圖演示+原始碼分享)Python遊戲原始碼
- PHP 底層原始碼下載地址PHP原始碼
- [原始碼和文件分享]基於WinInet的FTP檔案下載實現原始碼FTP
- uniapp商城前端原始碼下載/uniapp多店鋪PHP商城原始碼下載APP前端原始碼PHP
- 模擬微信實現長按朋友圈圖片功能
- 微信域名檢測實現機制與程式碼分享
- Mybatis原始碼分析(七)自定義快取、分頁的實現MyBatis原始碼快取
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView