使用微信js接口的方法 ,以调用相机为例

Posted 雪原日暮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用微信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

以上是关于使用微信js接口的方法 ,以调用相机为例的主要内容,如果未能解决你的问题,请参考以下文章

微信JS-SDK上传多张照片

如何调用微信js

云调用:一行代码直通微信开放接口能力

微信小程序开发时如何调用本地图片

从片段中的相机拍照

微信相机