使用微信js接口的方法 ,以调用相机为例
protected string GetTimeStamp_Str="";
protected string nonceStr_Str = "";
protected string signature_Str = "";
protected void Page_Load(object sender, EventArgs e)
{
GetTimeStamp_Str = GetTimeStamp();
//nonceStr_Str = new Guid().ToString("N"); var GetTakenStr = HttpHelper.HttpGetConnectToServer("https://api.weixin.qq.com/cgi-bin/token", "grant_type=client_credential&appid=wx6596bfb9388cc63c&secret=eb0c0d643d4e7bd3a43b61fd1031a2f2");//get
Taken_Model taken_Model=JsonHelper.DeserializeObject<Taken_Model>(GetTakenStr); var jsapi_ticket_Str = HttpHelper.HttpGetConnectToServer("https://api.weixin.qq.com/cgi-bin/ticket/getticket", "access_token=" + taken_Model.access_token + "&type=jsapi");//get
Jsapi_Ticket jsapi_ticket = JsonHelper.DeserializeObject<Jsapi_Ticket>(jsapi_ticket_Str); TimeSpan ts = DateTime.UtcNow - new DateTime(, , , , , , );
var tstem = GetTimeStamp_Str;// Convert.ToInt64(ts.TotalSeconds).ToString();
var noncestr = "tianpeng";
//var jsapi_ticket = "sM4AOVdWfPE4DxkXGEs8VF-YEiVh31f4b2Z4rz5E1kuduFEPIz0RgvSnRKebdULuK-yWvsNB_21vVh3IhyR1yg";
var jmdata = "jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}";
jmdata = string.Format(jmdata, jsapi_ticket.ticket, noncestr, tstem, "http://hstwx.wisdom-gps.com:52539/SignUp/SignUp.aspx");
signature_Str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(jmdata, "sha1");
nonceStr_Str = noncestr; } protected void btn_Login_Click(object sender, EventArgs e)
{ } public static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(, , , , , , );
return Convert.ToInt64(ts.TotalSeconds).ToString();
} } public class Taken_Model
{
public string access_token { get; set; }
public int expires_in { get; set; }
} public class Jsapi_Ticket
{
public int errcode { get; set; }
public string errmsg { get; set; }
public string ticket { get; set; }
public int expires_in { get; set; }
} 前端的写法
前端的写法
<script>
var GetTimeStamp_Str="<%=GetTimeStamp_Str%>";
var nonceStr_Str ="<%=nonceStr_Str%>";
var signature_Str = "<%=signature_Str%>"; wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'wx6596bfb9388cc63c', // 必填,公众号的唯一标识
timestamp: GetTimeStamp_Str, // 必填,生成签名的时间戳
nonceStr: nonceStr_Str, // 必填,生成签名的随机串
signature: signature_Str,// 必填,签名,见附录1
jsApiList: ['chooseImage', 'previewImage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){ // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 });
wx.error(function(res){ // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。 }); function aaaaa()
{
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
alert("fsdfsfsd");
}
});
}
</script>
如果
signature不合法的话 可以在测试地址中比对http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
如果url不合法的话 在js安全域名里面处理
JS接口安全域名
hstwx.wisdom-gps.com:52539 成功~~~~~(前端还要加个引用)
测试地址:http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
使用微信js接口的方法 ,以调用相机为例的更多相关文章
- 微信JS接口
微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置来源:http://www.cnblogs.com/txw1958/p/ ...
- 微信JS接口汇总及使用详解
这篇文章主要介绍了微信JS接口汇总及使用详解,十分的全面.详尽,包含分享到朋友圈,分享给朋友,分享到QQ,拍照或从手机相册中选图,识别音频并返回识别结果,使用微信内置地图查看位置等接口,有需要的小伙伴 ...
- md笔记——微信JS接口
微信js接口 隐藏微信中网页右上角按钮 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { Weix ...
- JS和C#方法相互调用
JS和C#方法相互调用 1.JS调用C#后台方法 方法一: 1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中;2.在前台写一个js函数,内容为document.getEle ...
- 微信JS支付代码_前端调用微信支付接口
转自:http://dditblog.com/itshare_553.html 跟大家分享一段微信支付的js代码片段.V3版的微信支付没有paySignKey参数.基本上是直接复制就可以使用了.改一改 ...
- facebook页面种简单测试js调用flash开放的js接口的方法
无意间折腾出来的,此方法很triky,但是很简单有效. 背景说明: facebook种内嵌的iframe无法直接访问. 解决方法: chrome浏览器为例 1.右键查看iframe源代码,此时进入if ...
- Weixin API -- 微信js接口
今天在开发项目的时候,由于需要在微信中实现分享功能(分享成功后实现页面跳转并记录).问度娘,找了很久,终于找到一个不错的方法.收藏起来以后备用,也希望对大家有所帮助! 在github的地址:https ...
- 微信js接口自定义分享内容
最近客户有个要求,需要给网页添加微信分享功能,当然指的是用微信自带浏览器的时候,希望用户在最后一页点击分享的时候是分享的首页.曾经无意中看到过微信公众开发者平台提供了js接口,所以试着做了做,果然,跌 ...
- 关于微信js接口调用时,token效期问题
如果一个应用的不同模块分配两个独立的公众号微官网使用,这时调用JS接口生成的token一定就冲突,原因是,token的有效期为两个小时. 解决方案: 将两个公众号的APPID与SERVERID分给不同 ...
随机推荐
- 忽然想到,为什么以前iOS的工资高
听说做iOS的在上海工资也可以 前几年还行,现在也不太行了除非你水平很高 现在移动应用已经100多万了,基本饱和了以前是新的商业模式要抢时间,会的人也少
- 使用API网关构建微服务
使用传统的异步回调方法编写API组合代码会让你迅速坠入回调地狱.代码会变得混乱.难以理解且容易出错.一个更好的方法是使用响应式方法以一种声明式样式编写API网关代码.响应式抽象概念的例子有Scala中 ...
- perl 监控数据库用到的数据结构
[root@yun1 test]# cat a1.pl my $h={'192.168.11.187'=>['root','1234567'], '192.168.5.7' =>['roo ...
- Learning WCF Chapter2 Data Contracts
A data contract describes how CLR types map to XSD schema definitions. Data contracts are the prefer ...
- Java中文乱码解决
Jvm内部编码采用的是Unicode编码. 常见的字符编码集:ASCII编码,GBK编码,Unicode编码 UTF-8只是unicode的实现方式之一: UTF-8最大的一个特点,就是它是一种变长的 ...
- 【转】iOS开发者申请发布证书及真机调试图文详解
原文网址:http://www.tqcto.com/article/mobile/57822.html 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆之后在网页右 ...
- 【转】eclipse内存设置,tomcat内存设置,查看内存大小
原文网址:http://www.cnblogs.com/youngjoy/p/4239978.html 首先可以通过java/jdk/bin下的java visualVM查看eclipse的内存大小和 ...
- 计算几何(凸包模板):HDU 1392 Surround the Trees
There are a lot of trees in an area. A peasant wants to buy a rope to surround all these trees. So a ...
- python 零散记录(三) 格式化字符串 字符串相关方法
使用 % 符号格式化字符串: """常用转换说明符:""" #%s: 按照str()方式转换 #%r: 按照repr()方式转换 #%d: ...
- 【单页应用】view与model相关梳理(转载)
[单页应用]view与model相关梳理 前情回顾 根据之前的学习,我们形成了一个view与一个messageCenterview这块来说又内建了一套mvc的东西,我们这里来理一下首先View一层由三 ...