微信自定义分享(含微信共享收货地址)

$AccessToken获取地址(GET):

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid(公众号)&secret=secret(公众号)


$jsapi_ticket获取地址(GET):

https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$AccessToken(上面获取)}&type=jsapi


$signature加密(sha1):

$timestamp=time();

$nonceStr=(16位的随机字符串)

$url=(当前需要自定义分享的页面的完整地址)

$signature=sha1("jsapi_ticket={$jsapi_ticket}&noncestr={$nonceStr}×tamp={$timestamp}&url={$url}");

结果获取内容:

$signPackage = array(

"appId" => appid(公众号),

"timestamp" => $timestamp,

"nonceStr" => $nonceStr,

"signature" => $signature,

);

JS调用地址:http://res.wx.qq.com/open/js/jweixin-1.1.0.js   (注意旧版是1.0.0)

js部分:

wx.config({

debug: false,

appId: appId,

timestamp: timestamp,

nonceStr: nonceStr,

signature: signature,

jsApiList: [

// 所有要调用的 API 都要加到这个列表中

'checkJsApi',

'openAddress',

'onMenuShareTimeline',

'onMenuShareAppMessage'

]

});

这里写了获取地址及页面内容分享到朋友圈和分享给朋友。(checkJsApi - 检测)

自定义内容部分(当前测试安卓手机部分分享无效-苹果手机正常      【纠结】):

wx.onMenuShareTimeline({

title: '分享标题', // 分享标题

link: 'http://xxx/', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

imgUrl: 'http://xxx/static/web/images/vip.png', // 分享图标

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});

wx.onMenuShareAppMessage({

title: '分享标题', // 分享标题

desc: '分享描述', // 分享描述

link: 'http://xxx.com/', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

imgUrl: 'http://xxx.com/yue_ico.png', // 分享图标

type: '', // 分享类型,music、video或link,不填默认为link

dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

success: function () {

// 用户确认分享后执行的回调函数

},

cancel: function () {

// 用户取消分享后执行的回调函数

}

});



获取微信共享地址:

检测:

wx.checkJsApi({

jsApiList: [

'openAddress'

],

success: function (res) {

console.log(JSON.stringify(res));

}

});


实际应用(点击获取地址):

$("#address").click(function(){

wx.ready(function () {

wx.openAddress({

success: function (res) {

alert('收货人姓名:' + res.userName);  

alert('收货人电话' + res.telNumber);

alert('邮编' + res.postalCode);

alert('国标收货地址第一级地址' + res.provinceName);

alert('国标收货地址第二级地址' + res.cityName);

alert('国标收货地址第三级地址' + res.countryName);

alert('详细收货地址信息' + res.detailInfo);

alert('收货地址国家码' + res.nationalCode);

}

});

});

});


总结:

1.接口地址最新版本 【1.1.0】 http://res.wx.qq.com/open/js/jweixin-1.1.0.js

2.$signature签名加密更新后跟以前旧版的不一样的,注意:noncestr获取的时候写法需要大写 nonceStr   而加密的时候小写就可以了

3.只有自己实际测试才知道,很多时候一个小东西的处理不当相当纠结,官方的说明也不好而且写了多个地方更新的又不一致,还是老实自己测试。

3.随意记录一下,不好勿喷。


你可能感兴趣的:(微信自定义分享(含微信共享收货地址))