前段时间做了微信公众号,因为近期太多朋友问想相关的事情,所以稍作整理贴出来一下
以下直接HTML做示范
1.openid获取
$(document).ready(function(){
var vurl="https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_uri}&response_type=code&scope=SCOPE&state={state}#wechat_redirect";
$.ajax({
url:vurl,
type:"get",
dataType:"",
data:{},
error:function(){
alert("1");
},
success:function(){
alert("2")
}
});
});
appid:申请公众号后微信会分配一个APPID
redirect_uri:配置要跳转的链接页面
state:这个值是跟业务场景有关,一些特定的业务场景,将该值传给微信后,微信回调redirect_uri时会带上该参数,那么你可以根据该值做一些处理了
微信认证通过后,回调的redirect_uri地址:{redirect_uri}?code={openid}&state={state}
2.微信JS API相关
1).获取access-token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}
2).获取jsapi_ticket
Https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={AccessToken}&type=jsapi
3).签名
jsapi_ticket={ticket}&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url={url}
细节:
- noncestr (随机字符串,由开发者随机生成),
- timestamp (由开发者生成的当前时间戳),
- url(当前网页的URL,不包含#及其后面部分。
- 注意:对于没有只有域名没有 path 的 URL ,浏览器会自动加上 / 作为 path,如打开 http://qq.com 则获取到的 URL 为 http://qq.com/)。
- 对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,
- 使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串 string1。这里需要注意的是所有参数名均为小写字符。
- 接下来对 string1 作 sha1 加密,字段名和字段值都采用原始值,不进行 URL 转义。即 signature=sha1(string1)
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: {appid}, // 必填,公众号的唯一标识
timestamp:{timestamp} , // 必填,生成签名的时间戳
nonceStr: {nonceStr}, // 必填,生成签名的随机串
signature: '4d83b8dea302b76e46740c80f1e07f5bfef7f169', // 必填,签名,
jsApiList: ['getLocation','hideOptionMenu'] // 必填,需要使用的JS接口列表(这个列表可参考微信官方API)
});