国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

thinkphp5.x中集成微信JS-SDK

2019-11-09 14:41:38
字體:
供稿:網(wǎng)友

Question

使用thinkphp框架開發(fā)微信公眾號需要用到j(luò)ssdk的一些功能。Mark一些如何解決部署、模塊設(shè)計一些小的case啦。 下面是參考的一些傳送門:https://my.oschina.net/superkangning/blog/368043 http://www.jianshu.com/p/dee2d998422e https://mp.weixin.QQ.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E8.8E.B7.E5.8F.96.E2.80.9C.E5.88.86.E4.BA.AB.E5.88.B0.E6.9C.8B.E5.8F.8B.E5.9C.88.E2.80.9D.E6.8C.89.E9.92.AE.E7.82.B9.E5.87.BB.E7.8A.B6.E6.80.81.E5.8F.8A.E8.87.AA.E5.AE.9A.E4.B9.89.E5.88.86.E4.BA.AB.E5.86.85.E5.AE.B9.E6.8E.A5.E5.8F.A3

1、環(huán)境

thinkphp5.0.2 微信測試賬號為例

2、登錄微信公眾平臺后臺或者測試賬號后臺

進入后臺之后。設(shè)置js安全域名。如圖:這里寫圖片描述填寫一級域名就ok了。設(shè)置完之后,會可能延遲生效一小會,不要著急。

3、下載微信安裝的sdk安裝包并準備文件

下載地址:http://demo.open.weixin.qq.com/jssdk/sample.zip下載完之后,找到php的版本,包括access_token.json、 jsapi_ticket.json、jssdk.php。其中將前兩個文件內(nèi)容設(shè)置如下:這里寫圖片描述 然后在你的thinkphp5.x框架的的第三方接口擴展目錄下(我這里是extend)里面建立文件夾,命名為org(為了標準)。然后創(chuàng)建類文件Jssdk.php,把jssdk.php中的內(nèi)容復(fù)制進去。不要忘記設(shè)置命名空間,如下圖所示 這里寫圖片描述 這三個文件的位置如下圖所示: 這里寫圖片描述 因為tp路由的關(guān)系,所以我們要對Jssdk.php的內(nèi)容進行改寫。 加上私有屬性path,并且在構(gòu)造函數(shù)中設(shè)置this->path = DIR.DS。如下圖所示: 這里寫圖片描述

4、開始調(diào)用

完成上述操作之后,我們已經(jīng)成功的將微信jssdk部署到我們的項目中。通過閱讀微信jssdk開發(fā)的手冊,我們可以發(fā)現(xiàn),我們使用jssdk主要是要獲得一些重要的參數(shù):主要是appId、timestamp、$nonceStr…..不贅述,自己看文檔。而這些是可以復(fù)用的代碼,所以我在view層建立了public文件夾和jssdk.html文件,讓需要使用到j(luò)ssdk的模塊添加這個文件就好了。如圖:這里寫圖片描述 jssdk.html的內(nèi)容是:

<script type="text/javascript"> $(document).ready(function(){ share(); });</script><script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script> function share(){ var imgUrl = "{$imgUrl}"; var link = "{$link}"; var title = "--------"; var descContent = "------------"; var shareTitle = "---------------"; wx.config({ debug: false, appId: '{$appId}', timestamp: '{$timestamp}', nonceStr: '{$nonceStr}', signature: '{$signature}', jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'hideMenuItems' ] }); wx.ready(function(){ //朋友圈 wx.onMenuShareTimeline({ title: descContent, link: link, imgUrl: imgUrl, trigger: function (res) { }, success: function () { // 用戶確認分享后執(zhí)行的回調(diào)函數(shù) //self.location= link; }, cancel: function () { // 用戶取消分享后執(zhí)行的回調(diào)函數(shù) } }); wx.onMenuShareAppMessage({ title: shareTitle, link: link, desc: descContent, imgUrl: imgUrl, type: '', // 分享類型,music、video或link,不填默認為link dataUrl: '', // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認為空 success: function () { //self.location= link; }, cancel: function () { } }); wx.onMenuShareQQ({ title: shareTitle, desc: descContent, link: link, imgUrl: imgUrl, success: function () { //self.location= link; }, cancel: function () { } }); wx.onMenuShareWeibo({ title: shareTitle, desc: descContent, link: link, imgUrl: imgUrl, success: function () { //self.location= link; }, cancel: function () { } }); }); }</script>

我這里只做了分享的功能。如果別的功能,我認為可以按照類似的模式來開發(fā)。其中

var imgUrl = "{$imgUrl}";var link = "{$link}";appId: '{$appId}',timestamp: '{$timestamp}',nonceStr: '{$nonceStr}',signature: '{$signature}',

里面的參數(shù)值,都是通過tp模板賦值寫入的。來寫入的控制器的代碼如下:

<?php/** * Created by PhpStorm. * User: tao * Date: 2017/2/7 * Time: 上午10:36 * Description: */namespace app/index/controller;use think/Config;use think/Controller;use app/index/model/Activityinfo;use org/wechat/Jssdk;use think/Request;class Activity extends Controller{ public function __construct(Request $request) { parent::__construct($request); $this->wechatShare(); } //jssdk分享功能封裝 public function wechatShare() { $jssdkObj = new Jssdk(Config::get('WEIXINAPPID'), Config::get('WEIXINAPPSERCET')); $res = $jssdkObj->getSignPackage(); $appId = $res['appId']; $timestamp = $res['timestamp']; $nonceStr = $res['nonceStr']; $signature = $res['signature']; $link = 'http://www.baidu.com'; $imgUrl = Config::get('ROOT').'/static/index/img/activity_logo.png'; $this->assign( array( 'appId'=>$appId, 'timestamp'=>$timestamp, 'nonceStr'=>$nonceStr, 'signature'=>$signature, 'link'=>$link, 'imgUrl'=>$imgUrl ) ); }

我這個控制下的渲染的Html文件中幾乎到調(diào)用到j(luò)ssdk,所以我就在構(gòu)造函數(shù)中將其賦值。這樣,同一個控制一下的html模板只要寫{include file='public/jssdk'} 就可以來使用jssdk的功能。假如更多的使用的話,可以自己定義基類來使用。that`s all.


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丘北县| 彭阳县| 宁南县| 吉安县| 汉源县| 民县| 林周县| 张家口市| 清苑县| 白河县| 麻阳| 青冈县| 汝南县| 宁晋县| 定边县| 双鸭山市| 梁平县| 安康市| 湖口县| 吴川市| 阳新县| 库尔勒市| 临西县| 任丘市| 松阳县| 泰兴市| 富顺县| 宾川县| 三亚市| 兰考县| 蒲江县| 湖南省| 阿城市| 宣城市| 河北省| 大庆市| 金塔县| 搜索| 蛟河市| 镇巴县| 含山县|