LVPHP

微信JS SDK

引入微信JS文件

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

获取access_token

1
$access_info = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET");

正常情况下,微信会返回下述JSON数据包给公众号:

1
{"access_token":"ACCESS_TOKEN","expires_in":7200}

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

1
{"errcode":40013,"errmsg":"invalid appid"}

注意
获取access_token有频次限制,获取的access_token需要在做缓存

获取jsapi_ticket

1
$ticket_info = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi");

成功返回如下JSON:

1
2
3
4
5
6
{
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
}

注意
获取jsapi_ticket有频次限制,获取的jsapi_ticket需要在做缓存

计算签名

1
$signature = sha1("jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=http://mp.weixin.qq.com?params=value")
  • jsapi_ticket: 获取的jsapi_ticket
  • noncestr: 随机串
  • timestamp: 时间戳
  • url: 当前网页的URL,不包含#及其后面部分

调用SDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'wx1a1bba241ca4cce5', // 必填,公众号的唯一标识
timestamp: 1428980719, // 必填,生成签名的时间戳
nonceStr: 'Wm3WZYTPz0wzccnW', // 必填,生成签名的随机串
signature: '2c3b0863b61fe7cc37961d7ce3ce71dc1d7360a8',// 必填,签名,见附录1
jsApiList: ["previewImage"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){
$(".img").click(function(){
wx.previewImage({
current: 'http://apps.sinaapp.com/app/screen.jpeg', // 当前显示的图片链接
urls: ['http://apps.sinaapp.com/app/link.png', 'http://apps.sinaapp.com/app/search.png', 'http://apps.sinaapp.com/app/searchn.png'] // 需要预览的图片链接列表
});
});
});