微信的sdk文档要求接入方缓存两个参数:access_token和jsapi_ticket,在一定时间内这两个参数的值是不会过期的,不需要每次请求微信服务器获取。以下示例是通过thinkphp自带的缓存函数S实现。
参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):/15/54ce45d8d30b6bf6758f68d2e95bc627html
用第一步拿到的access_token采用>
以下代码片段示例如何缓存生成的access_token和jsapi_ticket(采用最新版ThinkPHP,包括Redis,Memcached等原理都是一样的):
确认签名算法正确,可用t=jsapisign页面工具进行校验。也就是你自己后台生成签名要和微信校验算法生成的签名一致才可以(可能大小写不同)。注意:签名生成规则如下:参与签名的字段包括有效的jsapi_ticket(获取方式详见微信JSSDK文档),noncestr(随机字符串,由开发者随机生成),timestamp(由开发者生成的当前时间戳),url(当前网页的URL,不包含#及其后面部分。注意:对于没有只有域名没有path的URL,浏览器会自动加上/作为path,如打开/)。特别注意:你在利用参数生成签名的时候,要对所有待签名参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。我的最开始的错误就是没有注意到生成签名的那几个参数要按照key=value的样式连接成一个字符串,然后在sha1加密生成。/Java写的参数拼接算法/String[]paramArr=newString[]{"jsapi_ticket="+jsapi_ticket,"timestamp="+timestamp,"noncestr="+nonce,"url="+jsurl};Arrayssort(paramArr);//将排序后的结果拼接成一个字符串Stringcontent=paramArr[0]concat("&"+paramArr[1])concat("&"+paramArr[2])concat("&"+paramArr[3]);Systemoutprintln("拼接之后的content为:"+content);确认config中nonceStr(js中驼峰标准大写S),timestamp与用以签名中的对应noncestr,timestamp一致。确认url是页面完整的url(请在当前页面alert(locationhrefsplit('#')[0])确认),包括'>
打开 JS 接口签名校验工具 填入相应的数据: 1)jsapi_ticket: 填入上一步获取的ticket 2)noncestr: 这里随机生成一个字符串填进去(VQhYOUJRz6RolHqN) 3)timestamp: 这里填入一个时间戳,去掉毫秒的3位(如:1420870884) - 这里尽量写tick如何在Cocos2d-JS游戏中快速接入微信SDK
以上就是关于前端sdk封装(node)全部的内容,包括:前端sdk封装(node)、微信自定义分享(含微信共享收货地址)、如何在React中调用微信的jsSDK等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)