ecmall 调用微信分享接口
来源:互联网 发布:复制的链接在淘宝打开 编辑:程序博客网 时间:2024/05/21 07:01
/* 用户判断是否在微信端 */$this->assign('isWeixin', isWeixin()); //isWeixin() 在系统核心基础类的ecmall.php里定义好了 是微信端则返回值是ture phpcms里也有一个判断是否是微信的方法,叫什么来着 是 from_weixin()/*start@author:hans@date:20160718*///引入微信授权if( isWeixin() ){ import('weixinsdk'); //引入微信的js-sdk文件 import()在系统核心基础类的ecmall.php里定义好了$weixin_config = require_once('data/weixin_config.php'); //引入微信的配置文件 包含appid等必要东西$jssdk = new JSSDK($weixin_config['appId'], $weixin_config['appSecret']); //实例化$signPackage = $jssdk->GetSignPackage(); // 调用获取access_token的方法 注意获取微信签名的时候 返回的$signPackage里的url一定要和当前地址栏的url一样才能成功$this->assign('wxsignPackage',$signPackage);}/*end@author:hans@date:20160718*/
注意获取微信签名的时候 返回的$signPackage里的url一定要和当前地址栏的url一样,才会显示成功。也就是说 js-ssdk里面的GetSignPackage()这个方法有可能自己要修改
这段代码写在了frontend.base.php文件中 也就是 前台控制器基础类 FrontendApp 类的 display 方法里 (引入模版就要用到display)--致敬大腿,写在了display里,腻害了,要是我的话估计哪里用才写 = =||
在控制器对应的方法(例如是index)里需要配置SEO信息
/* 配置seo信息 */ $this->_config_seo($this->_get_seo_info($store));//这个_get_seo_info()并不是必须的,他只是为了处理参数,其实可以直接给_config_seo()传一个数组,作为参数,数组里包含想分享的内容
配置SEO的方法(_config_seo)在includes/ecapp.base.php中 , 用于分享的链接,标题等等的显示
function _get_seo_info($data) { $seo_info = $keywords = array(); $seo_info['title'] = format_js($data['store_name'] . ' - ' . Conf::get('site_title'), false); $keywords = array( str_replace("\t", ' ', $data['region_name']), $data['store_name'], ); //$seo_info['keywords'] = implode(',', array_merge($keywords, $data['tags'])); $seo_info['keywords'] = implode(',', $keywords); $seo_info['description'] = format_js(sub_str(strip_tags($data['description']), 100, true), false); $seo_info['imgUrl'] = SITE_URL . '/' .$data['store_logo']; $seo_info['link'] = SITE_URL . '/' . str_replace(array('&isappinstalled=0','&from=timeline'),array('',''),str_replace('&', '&', url($_SERVER['QUERY_STRING'])));//分享链接不能转义 //debug//$handler = init_phpconsole();//$handler->debug($seo_info, 'share'); return $seo_info; }
然后在上述方法(index)里引入的模版页面加入分享的js,这里是写了一个公共模版文件,在index方法引入模版的最下方引入该分享模版
<div class="ui-actionsheet"> <div class="ui-actionsheet-cnt"><h4>分享到</h4> <button id="weixinfriend">微信</button> <button id="weixintimeline">微信朋友圈</button> <button id="tweibo">腾讯微博</button> <button id="qzone">QQ空间</button> <button id="cancelShare">取消</button> </div> </div><script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script type="text/javascript">function share_pop(){ $('.ui-actionsheet').addClass('show');}$(function(){ Zepto("#cancelShare").tap(function(){$('.ui-actionsheet').removeClass('show'); });/* {if $isWeixin} */wx.config({debug: false,appId: '{$wxsignPackage.appId}',timestamp: '{$wxsignPackage.timestamp}',nonceStr: '{$wxsignPackage.nonceStr}',signature: '{$wxsignPackage.signature}',jsApiList: [ //分享到朋友圈 'onMenuShareTimeline', //分享给朋友 'onMenuShareAppMessage', //分享到QQ空间 'onMenuShareQZone', //分享到腾讯微博 'onMenuShareWeibo']});wx.ready(function () {//分享给朋友wx.onMenuShareAppMessage({title: '{$_seo_info.title}', // 分享标题desc: '{$_seo_info.description}', // 分享描述link: '{$_seo_info.link}', // 分享链接imgUrl: '{$_seo_info.imgUrl}' // 分享图标});//分享到朋友圈wx.onMenuShareTimeline({title: '{$_seo_info.title}', // 分享标题link: '{$_seo_info.link}', // 分享链接imgUrl: '{$_seo_info.imgUrl}' // 分享图标});//分享到QQwx.onMenuShareQZone({title: '{$_seo_info.title}', // 分享标题desc: '{$_seo_info.description}', // 分享描述link: '{$_seo_info.link}', // 分享链接imgUrl: '{$_seo_info.imgUrl}' // 分享图标});//分享到微博wx.onMenuShareWeibo({title: '{$_seo_info.title}', // 分享标题desc: '{$_seo_info.description}', // 分享描述link: '{$_seo_info.link}', // 分享链接imgUrl: '{$_seo_info.imgUrl}' // 分享图标});});/* {/if} */});</script>
上面的display方法里 不是传过来 isWeixin这个变量了吗,在这里进行判断, 如果是微信端 那么
通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用。
配置的参考文档:https://mp.weixin.qq.com/wiki
微信网页开发/微信JS-SDK说明文档
通过了权限验证 那么就会执行wx。ready(function(){ })
到这里就结束了。
阅读全文
0 0
- ecmall 调用微信分享接口
- JAVA-微信调用自定义分享接口
- 微信分享接口配置和调用
- 微信分享接口配置和调用
- 调用微信分享接口,自定义分享内容(2)-调用分享接口(java开发)
- 微信分享接口
- 微信分享接口
- 微信分享接口:
- 微信分享接口调用-java和js 版本
- web app调用微信、qq、等分享接口
- 调用微信JS-SDK自定义分享以及其他接口
- Android调用微信原生分享接口,进入微信分享界面返回不了!
- 调用微信分享
- 微信接口调用
- 微信接口调用
- 微信 jssdk 分享接口
- 微信分享接口开发
- 微信分享接口开发
- OKHttp的使用GET和POS 请求方式,处理json数据
- 百度地图API
- 安装python 2.7 与opencv
- 微信开发,图片接口
- 单点登录原理
- ecmall 调用微信分享接口
- Android开发中Gradle的高级用法
- Lambda表达式 学习
- 桥接模式
- 删除centos自带jdk
- 不上征信的贷款,有没有必要还?
- 福利来了,企业信息化应用云服务永久免费
- js显示时间为双位数
- C,C++头文件的区别和联系