/* 用户判断是否在微信端 */$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 调用微信分享接口相关推荐

  1. vue 调用微信分享接口 分享截图图片

                                          vue 调用微信分享接口 分享截图图片 现在好多应用 都需要分享 图片等等的需求 . 大体需要 这几个步骤 获取分享图片 将 ...

  2. vue 如何调用微信分享_Vue项目通过JSSDK调用微信分享接口

    最近在做一个公司微信分享项目的功能,毕竟第一次做,对于小白也是个挑战,特此记录一下自己的开发过程,以便以后查阅.(转载请标明出处,码字好辛苦的qaq) 使用步骤: 1.绑定域名: 一开始当然是去查微信 ...

  3. 微信分享接口调用(自测通过可以用)

    微信分享 后台逻辑 import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import ja ...

  4. java对接微信分享_Java编程调用微信分享功能示例

    本文实例讲述了Java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...

  5. java如何调用微信功能_Java编程调用微信分享功能示例

    本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...

  6. php微信分享接口调用,TP5的微信分享接口和JSSDK使用

    TP5的微信分享接口和JSSDK使用 项目开发中,经常会用到微信分享接口,使用官方提供的SDK可以实现微信分享到朋友圈或者好友以后,能够正常显示页面的Logo图片.标题和描述内容,而不仅仅只是简单粗暴 ...

  7. 微信公众号开发 自定义分享 从前台到Java后台 调用微信JS接口分享朋友圈

    20180811写在前面的话 有很多人遇到问题之后问我,结果大多数是因为配置问题,所以请详细阅读前面的配置步骤. 20181016注意事项 收到反馈,之前写的接口即将废弃,源代码中的js接口需要修改, ...

  8. vue 分享微信传参_vue 中使用微信分享接口(简单实用)

    前言 开发微信小程序时,基本上都要接入微信的SDK,而微信也提供了非常多的接口供我们去完成我们想要的功能.微信分享功能常常是我们在开发中常见的需求之一,本文将围绕微信分享接口使用展开,给自己以后碰到需 ...

  9. 微信分享接口示例(设置标题、缩略图、连接、描述),附demo下载

    前几天因为项目所需要实现微信分享接口,在网上搜了一大堆,实现办法大致分为两种,第一:在body之后加一个img标签并且设置display:none,这种方法感觉不科学所以我没有测试过.第二:使用微信的 ...

最新文章

  1. 神器np.unique、np.argsort
  2. 实例讲解-单向列表的实现(1)
  3. 【深度学习】DIY 人脸识别技术的探索(一)
  4. 【KVM系列02】KVM的CPU 和内存虚拟化
  5. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
  6. MoSCow和Kano
  7. web报告工具FineReport在使用方法和解决方案常见错误遇到(一)
  8. 【Angular】MVVM
  9. 如何在 SAP CRM WebClient UI 里在 Context node 上下文里访问其他 Context Node 的数据
  10. OSPF——GRE Tunnel(含配置命令)详解
  11. 去哪儿-09-city-list
  12. 我的所有邮箱 My all E-mail
  13. DotNetBar.Bar作为容器使用的方法及Text更新原理
  14. (转载)Mac系统下利用ADB命令连接android手机并进行文件操作
  15. php面试题——Linux部分(高级部分)
  16. PyQt5 the application failed to start because no Qt platform could be initialized
  17. 测试英语小软件,儿童学英语软件哪个好,亲测这四款很不错
  18. SLAM数据集(tum/kitti)轨迹对齐与结果评估
  19. 微信创建公众号菜单时出现48001,api unauthorized rid怎么解决?
  20. 003-位运算异或“∧”使特定bit位翻转

热门文章

  1. Cisco ASA5520 配置说明
  2. 互联网社交20年,多的是你不知道的事!
  3. oracle日期查询
  4. 【个人笔记】嵌入式多种通讯方式总结
  5. ParameterizedType获取java泛型参数类型
  6. 10分钟,我写完了8小时的CSS样式,我真棒!
  7. dell笔记本安装Ubuntu20.04双系统+cuckoo布谷鸟沙箱
  8. Angular4 实现多图片上传预览
  9. 创业者必须要知道的18条商业定律与法则
  10. 像外行一样思考,像专家一样实践