使用微信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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM