网站建设合同属于技术服务么,怎么新建自己的网站,中国互联网上市公司排名,wordpress tag函数效果展示image.png1.公众号设置1.1公众号需要经过认证#xff0c;具有分享接口功能image.png1.2填写正确的域名(域名需要经过备案)image.png1.3 保存好AppID、AppSecret、设置好ip白名单(非常重要)image.png2.php代码(需要有php环境下#xff0c;放到域名目录下)2.1展示下目录…效果展示image.png1.公众号设置1.1公众号需要经过认证具有分享接口功能image.png1.2填写正确的域名(域名需要经过备案)image.png1.3 保存好AppID、AppSecret、设置好ip白名单(非常重要)image.png2.php代码(需要有php环境下放到域名目录下)2.1展示下目录结构-wxDemoimage.pngimage.png2.2index.htmlwxDomedocument.write(/*填写路径是公众号上的安全域名*/var baseUrl http://xxxxx.cn/wxDemo/index.html;var wxData {imgUrl : http://xxxxx.cn/wxDemo/wx300.jpg,link : baseUrl,title : wxDemo-标题,desc : wxDemo-描述信息};wx.config({debug: false,appId: signPackage.appId,timestamp: parseInt(signPackage.timestamp),nonceStr: signPackage.nonceStr,signature: signPackage.signature,jsApiList: [onMenuShareAppMessage,onMenuShareTimeline,updateAppMessageShareData,updateTimelineShareData]});wx.ready(function () {wx.onMenuShareAppMessage({title: wxData.title,desc: wxData.desc,link: wxData.link,imgUrl: wxData.imgUrl,type: link,dataUrl: ,success: function () {}});wx.onMenuShareTimeline({title: wxData.title,desc: wxData.desc,link: wxData.link,imgUrl: wxData.imgUrl,type: link,dataUrl: ,success: function () {}});wx.updateAppMessageShareData({title: wxData.title,desc: wxData.desc,link: wxData.link,imgUrl: wxData.imgUrl,type: link,dataUrl: ,success: function () {}});wx.updateTimelineShareData({title: wxData.title,desc: wxData.desc,link: wxData.link,imgUrl: wxData.imgUrl,type: link,dataUrl: ,success: function () {}});});2.3 signPackage.php// 实现微信分享功能// 通过script标签引入该文件通过url参数传递原网页的完整urlerror_reporting(0);$queryString $_SERVER[QUERY_STRING];// 获取PHP后的网址参数格式为originUrl...$url substr($queryString,10); // 截取原网页的完整urlrequire_once jssdk.php;$jssdk new JSSDK(xxxxxx, xxxxxx, $url);// 改为自己公众号的AppID、AppSecret$signPackage $jssdk-GetSignPackage();echo var signPackage;die(json_encode($signPackage));// 返回微信分享所需参数?2.4 jssdk.phpclass JSSDK {private $appId;private $appSecret;private $url;public function __construct($appId, $appSecret, $url) {$this-appId $appId;$this-appSecret $appSecret;$this-url $url;}public function getSignPackage() {$jsapiTicket $this-getJsApiTicket();// 注意 URL 一定要动态获取不能 hardcode.$url $this-url;$timestamp time();$nonceStr $this-createNonceStr();// 这里参数的顺序要按照 key 值 ASCII 码升序排序$string jsapi_ticket$jsapiTicketnoncestr$nonceStrtimestamp$timestampurl$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(file_get_contents(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?typejsapiaccess_token$accessToken;$res json_decode($this-httpGet($url));$ticket $res-ticket;if ($ticket) {$data-expire_time time() 7000;$data-jsapi_ticket $ticket;$fp fopen(jsapi_ticket.php, w);fwrite($fp, json_encode($data));fclose($fp);}} else {$ticket $data-jsapi_ticket;}return $ticket;}private function getAccessToken() {// access_token 应该全局存储与更新以下代码以写入到文件中做示例$data json_decode(file_get_contents(access_token.php));if ($data-expire_time time()) {// 如果是企业号用以下URL获取access_token// $url https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid$this-appIdcorpsecret$this-appSecret;$url https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappid$this-appIdsecret$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;$fp fopen(access_token.php, w);fwrite($fp, json_encode($data));fclose($fp);}} 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);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($curl, CURLOPT_URL, $url);$res curl_exec($curl);curl_close($curl);return $res;}}2.5 jsapi_ticket.php{expire_time:1588134786,jsapi_ticket:kgt8ON7yVITDhtdwci0qeUFZYyjmx63aUn0jr944H7-QrUdILt6kff8cY3ujO0GNYP4dewtFw5od1LVZl2u9-g}2.6 access_token.php获取access_token expires_in值为7200表示成功将获取到的access_token写到access_token.php里image.pngimage.png{expire_time:1588134785,access_token:32_4MgWOCPonWbReM49JBL7VNN3RFLDFF6-7Vx04S3Pv3lIglbAvr9RNrDT14F5jKXbtNdPBee8C9QJuDql2oI5dqnn1JzTLt2a_3G3-u1DwzRmW47AHU22P1v73goT16-CKRxAOcc6wHtPwq1ZJGPaAJAOLU}3. 服务器我的服务器是远程服务器(window serve 2012 r2)服务器一定要保证可以完全写入文件(这就是我在那坑待了很久的原因)image.png文件下载地址