微信JS-SDK怎样使用
前两天要用到微信JS库的的一句话——wx.closeWindow();可是整个调用过程有点儿泪奔了。。
。。
尽管开发人员平台上说的清清楚楚,可是使用起来就是not ok!
一,绑定域名
登录到微信公众平台:
在公众号设置里面:
找到功能设置,填入JS接口安全域名:
二,引入JS
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> </script>
三。通过config接口注入权限验证配置
感觉这里的调用还是相当繁琐的,希望微信能做个安全方便的接口来调用。
// wx.config({
// debug: false, // 开启调试模式,调用的全部api的返回值会在clientalert出来,若要查看传入的參数,能够在pc端打开。參数信息会通过log打出,仅在pc端时才会打印。
// appId: '<%=appId%>', // 必填,公众号的唯一标识
// timestamp: <%=timestamp%>, // 必填。生成签名的时间戳
// nonceStr: '<%=nonceStr%>', // 必填,生成签名的随机串
// signature: '<%=Signature%>',// 必填。签名。见附录1
// jsApiList: ['closeWindow'] // 必填,须要使用的JS接口列表,全部JS接口列表见附录2
// });
wx对象提供了非常多方法调用,而这些方法的返回值能够在config里面设置。方便调试的时候观察报错信息。
appid。timestamp,noncestr,jsApiList都是比較好填写的參数。唯一比較麻烦的是签名。
签名步骤比較小复杂:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
/// <summary>
/// 生成签名
/// </summary>
/// <param name="jsapi_ticket">The jsapi_ticket.</param>
/// <param name="noncestr">The noncestr.</param>
/// <param name="timestamp">The timestamp.</param>
/// <param name="url">The URL.</param>
/// <returns>System.String.</returns>
/// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:20:43</remarks>
private string GetSignature()
{ WxAccount wa = WxAccountAdapter.Instance.LoadByCode(PubAccCode);//获取当前公众号
WebClientBase wcb = new WebClientBase(); //获取Access_token信息
string strAccess_token = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wa.AppID + "&secret=" + wa.AppSecret);
access_tokenEntity at = WxAPITools.JSONUtil<access_tokenEntity>.FromJsonToObject<access_tokenEntity>(strAccess_token); string strJson = wcb.RequestMyWebClient(EnumSubmitMethod.Get, "", "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + at.access_token + "&type=jsapi"); jsapi_ticket jt = WxAPITools.JSONUtil<jsapi_ticket>.FromJsonToObject<jsapi_ticket>(strJson);//转化为对象
string url = HttpContext.Current.Request.Url.ToString();
url = url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url;
string tmpStr = "jsapi_ticket=" + jt.ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url;
return FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); } /// <summary>
/// jsapi_ticket是公众号用于调用微信JS接口的暂时票据
/// </summary>
/// <remarks>Editor:v-liuhch CreateTime:2015/6/1 18:25:27</remarks>
public class jsapi_ticket
{ public string errcode { get; set; }
public string errmsg { get; set; }
public string ticket { get; set; }
public string expires_in { get; set; } } /// <summary>
/// Class access_tokenEntity
/// </summary>
/// <remarks>Editor:v-liuhch CreateTime:2015/6/1 21:08:07</remarks>
public class access_tokenEntity
{
public string access_token { get; set; }
public string expires_in { get; set; } }
须要注意的是URL地址究竟取的是哪一部分。获取数据的方式都是get。对全部待签名參数依照字段名的ASCII 码从小到大排序。
假设开启debug后,返回一个config:ok就说明成功了。
PS:确认接口签名的时候。能够使用微信提供的这个网页调试工具:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
微信JS-SDK怎样使用的更多相关文章
- 实战微信JS SDK开发:贺卡制作与播放(1)
前段时间忙于CanTK 2.0的开发,所以博客一直没有更新.CanTK 2.0主要增强了游戏和富媒体的开发,现在编码和测试基本完成了,等文档完成了再正式发布,里面有不少激动人心的功能,等发布时再一一细 ...
- 微信JS SDK接入的几点注意事项
微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.备注:登录后可在“开发者中心”查看对 ...
- 微信js sdk上传多张图片
微信js sdk上传多张图片,微信上传多张图片 该案例已tp3.2商城为例 直接上代码: php代码: public function ind(){ $appid="111111111111 ...
- 调用微信js sdk
场景:需要调用微信获取当前位置的借口. 途径:查看微信 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 .后 ...
- 微信JS SDK配置授权,实现分享接口
微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
- 微信js SDK接口
微信JS-SDK说明文档 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 一.微信登录功能 在进行微信OAut ...
- 微信JS SDK使用权限签名算法
jsapi_ticket 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据.正常情况下,jsapi_ticket的有效期为7200秒, ...
- 微信js sdk分享开发摘记java版
绑定域名和引入js的就不说了 废话不说直接上代码 public void share(HttpServletRequest request) throws Exception { StringBuff ...
- 微信js sdk动态引用
一般情况下,微信的js-sdk只需要直接引用script即可 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js&qu ...
- 微信JS SDK Demo 官方案例[转]
摘要: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用 ...
随机推荐
- POJ_1062_(dijkstra)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 48126 Accepted: 14343 Descripti ...
- SpringBoot开源项目学习总结
一.实现日期格式数据类型的转换 首先,定义DateConverter实现Converter<String, Date>接口: package com.stevlu.common; impo ...
- jenkins自动部署测试环境
构建脚本如下: echo "当前目录":$(pwd)echo "当前时间":$(date +%Y-%m-%d_%H:%M)find ./ -type f -na ...
- find命令查找和替换
find命令查找和替换 语法: find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g' #查找替换当前目录下包含字符串并进行替换 ...
- Spring Boot 与消息
一.消息概述 在大多数应用中,可以通过消息服务中间件来提升系统的异步通信.扩展解耦和流量削峰等能力. 当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地. 消息队列主要有两种形 ...
- with一个对象,自动触发__enter__方法
class Foo(object): def __init__(self): pass def __enter__(self): print("__enter__") def __ ...
- CF441D
题目大意 给出一个有n个数的序列 求符合 区间各数或起来的数大于区间最大数 的区间的个数 题解 预处理出每个数每一位是0的那位左边最近的1和右边最近的1,用单调栈找出每个最大值所在的区间的左右端点,统 ...
- PAT 1142 Maximal Clique
A clique is a subset of vertices of an undirected graph such that every two distinct vertices in the ...
- java List 数组删除元素
在 java 中,ArrayList 是一个很常用的类,在编程中经常要对 ArrayList 进行增.删.改.查操作.之前在学校时一直认为删除操作是最简单的,现在才越发觉得自己愚蠢.只需要设置好预期条 ...
- [luoguP1076] 寻宝(模拟)
传送门 模拟就好! 然后需要把一圈的有楼梯的都记录一下,取膜乱搞. 代码 #include <cstdio> #include <iostream> #define N 100 ...