ecmall 调用微信分享接口
/* 用户判断是否在微信端 */$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(){ })
到这里就结束了。
ecmall 调用微信分享接口相关推荐
- vue 调用微信分享接口 分享截图图片
vue 调用微信分享接口 分享截图图片 现在好多应用 都需要分享 图片等等的需求 . 大体需要 这几个步骤 获取分享图片 将 ...
- vue 如何调用微信分享_Vue项目通过JSSDK调用微信分享接口
最近在做一个公司微信分享项目的功能,毕竟第一次做,对于小白也是个挑战,特此记录一下自己的开发过程,以便以后查阅.(转载请标明出处,码字好辛苦的qaq) 使用步骤: 1.绑定域名: 一开始当然是去查微信 ...
- 微信分享接口调用(自测通过可以用)
微信分享 后台逻辑 import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import ja ...
- java对接微信分享_Java编程调用微信分享功能示例
本文实例讲述了Java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...
- java如何调用微信功能_Java编程调用微信分享功能示例
本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...
- php微信分享接口调用,TP5的微信分享接口和JSSDK使用
TP5的微信分享接口和JSSDK使用 项目开发中,经常会用到微信分享接口,使用官方提供的SDK可以实现微信分享到朋友圈或者好友以后,能够正常显示页面的Logo图片.标题和描述内容,而不仅仅只是简单粗暴 ...
- 微信公众号开发 自定义分享 从前台到Java后台 调用微信JS接口分享朋友圈
20180811写在前面的话 有很多人遇到问题之后问我,结果大多数是因为配置问题,所以请详细阅读前面的配置步骤. 20181016注意事项 收到反馈,之前写的接口即将废弃,源代码中的js接口需要修改, ...
- vue 分享微信传参_vue 中使用微信分享接口(简单实用)
前言 开发微信小程序时,基本上都要接入微信的SDK,而微信也提供了非常多的接口供我们去完成我们想要的功能.微信分享功能常常是我们在开发中常见的需求之一,本文将围绕微信分享接口使用展开,给自己以后碰到需 ...
- 微信分享接口示例(设置标题、缩略图、连接、描述),附demo下载
前几天因为项目所需要实现微信分享接口,在网上搜了一大堆,实现办法大致分为两种,第一:在body之后加一个img标签并且设置display:none,这种方法感觉不科学所以我没有测试过.第二:使用微信的 ...
最新文章
- 神器np.unique、np.argsort
- 实例讲解-单向列表的实现(1)
- 【深度学习】DIY 人脸识别技术的探索(一)
- 【KVM系列02】KVM的CPU 和内存虚拟化
- 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
- MoSCow和Kano
- web报告工具FineReport在使用方法和解决方案常见错误遇到(一)
- 【Angular】MVVM
- 如何在 SAP CRM WebClient UI 里在 Context node 上下文里访问其他 Context Node 的数据
- OSPF——GRE Tunnel(含配置命令)详解
- 去哪儿-09-city-list
- 我的所有邮箱 My all E-mail
- DotNetBar.Bar作为容器使用的方法及Text更新原理
- (转载)Mac系统下利用ADB命令连接android手机并进行文件操作
- php面试题——Linux部分(高级部分)
- PyQt5 the application failed to start because no Qt platform could be initialized
- 测试英语小软件,儿童学英语软件哪个好,亲测这四款很不错
- SLAM数据集(tum/kitti)轨迹对齐与结果评估
- 微信创建公众号菜单时出现48001,api unauthorized rid怎么解决?
- 003-位运算异或“∧”使特定bit位翻转