zoukankan      html  css  js  c++  java
  • 使用微信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(1970, 1, 1, 0, 0, 0, 0);
                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}&timestamp={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(1970, 1, 1, 0, 0, 0, 0);
                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
  • 相关阅读:
    Linux useradd 命令介绍
    lsscsi
    安装MegaCli,查看linux服务器raid信息
    ipmitool命令详解
    python 收发邮件
    angularjs 高级玩法 创建递归的模板
    我的Android进阶之旅------&gt;Android Activity的singleTask载入模式和onActivityResult方法之间的冲突
    Git实战(三)环境搭建
    使用Samba实现Linux与Windows文件共享实践
    设计模式个人备忘(享元模式,strategy, templete strategy)
  • 原文地址:https://www.cnblogs.com/muxueyuan/p/5262886.html
Copyright © 2011-2022 走看看