我說我長的不帥,她們說我說謊,還打我。
阿新 • • 發佈:2019-01-09
這裡所有的內容都是從微信介面頁面裡面參考過來的,加上自己的實踐,我在此總結一下步驟和過程,如果下面的內容,有問題,請聯絡 郵箱: [email protected]
3.` 這裡是微信開發給的介面程式碼,程式碼後面,我會具體講解每一個屬性是什麼,怎麼得到
wx.config({ debug: false, //是否除錯,true,會彈窗 appId: '<%=appId%>', //得到這個東西,首先必須有一個公眾號,或者企業號,如果已經擁有了,你可以就知道AppId在哪裡了。 timestamp: 1414587457,//生成簽名的時間戳,隨機數,之後會用這個生成一個簽名 nonceStr: 'Wm3WZYTPz0wzccnW',//生成簽名的隨機串,隨機串,之後會用這個生成一個簽名 signature: '<%=signature%>',//這個就是簽名了,在步驟4,我會詳細講解 jsApiList: [ 'scanQRCode' //開啟掃一掃功能,這裡還可以新增更多的功能,比如微信支付 ] }); wx.ready(function () { //點選按鈕,出現掃描介面 document.querySelector('#sm').onclick = function () { wx.scanQRCode({ desc: 'scanQRCode desc', needResult: 1, // 預設為0,掃描結果由微信處理,1則直接返回掃描結果, scanType: ["qrCode","barCode"], // 可以指定掃二維碼還是一維碼,預設二者都有 success: function (res) { var url = res.resultStr; var tempArray = url.split(','); var tempNum = tempArray[1];//這個就是掃描後返回值掃描值 } }); }; });`
4.這裡我會專門講解,怎麼拿到簽名。
4.1,先找到自己的corpid和secret, corpid,必須有自己的公眾號或者企業號,secret,這個需要在公眾號裡面,點選設定,在點選第二個選項,許可權管理然後新增一個管理員(微訊號),就會生成一個secret
4.2 、這裡需要提前寫幾個幫助類
4.2.1、使用get請求得到資訊
public static string GetHtml(string tUrl)
{
string strResult;
try
{
HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(tUrl);
hwr.Timeout = 19600 ;
HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse();
Stream myStream = hwrs.GetResponseStream();
StreamReader sr = new StreamReader(myStream, Encoding.UTF8);
StringBuilder sb = new StringBuilder();
while (-1 != sr.Peek())
{
sb.Append(sr.ReadLine() + "\r\n" );
}
strResult = sb.ToString();
hwrs.Close();
}
catch (Exception ee)
{
strResult = ee.Message;
}
return strResult;
}
4.2.2、這個幫助類是為了得到微信那邊返回的Json資料,然後解析出來
public class JsonHelper
{
public static T DeserializeObject<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
}
4.2.3、這個是 token類 ,命名為:AccessToken.cs
public class AccessToken
{
public string access_token { get; set; }
public string expires_in { get; set; }
}
4.2.4、這個是ticket 類,命名為:Access_ticket.cs
public class Access_ticket
{
public string errcode { get; set; }
public string errmsg { get; set; }
public string ticket { get; set; }
public string expires_in { get; set; }
}
4.2.5、這個是sha1加密
public class SHA1Helper
{
/// <summary>
/// 32位小寫
/// </summary>
/// <returns></returns>
public static string SHA1(string s)
{
s = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "SHA1").ToString();
return s.ToLower();
}
}
public class WxApi
{
private static string corpid = "這個填寫公眾號的corpId";
//在公眾號裡面點選設定
private static string corpsecret = "這個填寫公眾號的secret";
//這個是用corpId和secret,得到token
private static string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}";
//通過得到的token,得到ticket
private static string url2 = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token={0}";
//這個是得到token,使用get請求
public static AccessToken accessToken()
{
string json = HttpHelper.GetHtml(string.Format(url, corpid, corpsecret));
return JsonHelper.DeserializeObject<AccessToken>(json);
}
//這個得到Ticket,使用get請求
public static Access_ticket accessTicket()
{
AccessToken AccessToken = accessToken();
string json = HttpHelper.GetHtml(string.Format(url2, AccessToken.access_token));
return JsonHelper.DeserializeObject<Access_ticket>(json);
}
//獲取簽名
public static string sha1(string url)
{
Access_ticket Access_ticket = accessTicket();
//這個是所有得到的東西拼接成一個字串,1.jsapi_ticket:上面得到的ticket 2.noncestr:這個是隨機的字串,必須和上面(3)的那個一樣 3.timestamp:這個是隨機的字串,必須和上面(3)的那個一樣,
//4.url:地址一定要詳細,比如:http://baidu.com/1.html 哪個頁面需要呼叫 掃一掃,就使用哪個頁面的地址
string string1 = "jsapi_ticket=" + Access_ticket.ticket+ "&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url="+url+"";
//使用sha1加密這個字串
return Helper.MD5Helper.SHA1(string1);
}
}
總結:這是所有的呼叫微信介面掃一掃功能,在網上看到別人說的,都沒說明白,今天我把詳細程式碼發出來,供大家參考,如有什麼地方不懂,可以聯絡我