微信分享调用jssdk实例

0、上demo,补充一点小问题

按照之前的思路,发现一直签名失败,我查了半天,发现是url那地方有问题。通过api获取时,签名的url默认获取的是接口的api地址,比较纳闷。后来我在请求时加入了当前网址,然后再myapi中获取一下,再赋值过去。就可以了。具体代码见第三段。
测试通过了一个demo,下载地址如下:demo下载地址

效果如图。
这里写图片描述
demo下载地址

1、问题说明

搞了半天,终于搞定。说下基本需求,很简单,网页在微信中打开,分享。
网页是html格式,原来分享时会一直显示链接,看了下代码中没有调用jssdk,调用的是一个第三方的平台的分享接口,坑爹。

2、问题解析

根据微信官方给出的demo,可以看到核心就是获取四个参数,从而配置wx.config。
四个参数分别是appId、timestamp、nonceStr、signature
appId不用说,后面三个都是根据微信的接口得到的,有兴趣的可以看下官方,不过也可以不管。

3、解析思路

接下来,说下我的思路,在js中通过ajax调用jssdk部署的接口,返回上述所需参数。
我测了php,写了一个myapi.php接口,很简单:

<?php
require_once "jssdk.class.php";

$uurl = "";
if(is_array($_GET)&&count($_GET)>0)//先判断是否通过get传值了
{
    if(isset($_GET["urlparam"]))//是否存在"urlparam"的参数
    {
        $uurl=$_GET["urlparam"];//存在
    }
}

$cfg_appid = "你的appid";
$cfg_screct = "你的appsecrect";
$weixin = new jssdk($cfg_appid, $cfg_screct, $uurl);

$signPackage = $weixin->get_sign();

$data = array(
  'appId' => $signPackage["appId"], 
  'timestamp' => $signPackage["timestamp"],
  'nonceStr' => $signPackage["nonceStr"],
  'signature' => $signPackage["signature"]);

echo json_encode($data);

前端页面

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">

  $(function(){
        $.ajax({
               type: "GET",
               url: "../wxconfig/myapi.php",
               data: "urlparam="+window.location.href.split('#')[0],
               success: function(data){
                    var result = JSON.parse(data);                      
                    if (result != null) {  
                        wx.config({  
                            debug: false,  
                            appId: result.appId,  
                            timestamp: result.timestamp,  
                            nonceStr: result.nonceStr,  
                            signature: result.signature,  
                            jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage']  
                    });  
                    }  
               },
               error: function(){

               }
            });
    });

  window.sharedata = {
        title: '标题',
        desc: '描述',
        link: window.location.href,
        imgUrl: 'http://avatar.csdn.net/0/4/F/1_zyq527758142.jpg',
        success: function () {
            alert('成功分享');
        },
        cancel: function () {
            alert('取消分享');
        }
    };

    wx.ready(function () {

        wx.onMenuShareAppMessage(sharedata);
        wx.onMenuShareTimeline(sharedata);
    });
</script>
4、知识点

1、微信分享jssdk的使用
2、html调用ajax
3、解决微信分享为何出现链接的问题

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值