国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信jssdk 簽名獲取方法

這篇具有很好參考價(jià)值的文章主要介紹了微信jssdk 簽名獲取方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

using Google.Protobuf.WellKnownTypes;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.Types;

public class JsSdkTicket : MonoBehaviour
{
? ? [DllImport("__Internal")]
? ? private static extern void OpenWechatShare(string encodeURIPtr);

? ? [DllImport("__Internal")]
? ? private static extern void OpenWechatShareMenu(string appId, string time_stamp, string noncestring, string signatureStr);

? ? [DllImport("__Internal")]
? ? private static extern string GetCurWebUrl();

? ? public class AccessToken
? ? {
? ? ? ? public string access_token { get; set; }

? ? ? ? public double expires_in { get; set; }
? ? }

? ? public class JSTicket
? ? {
? ? ? ? public int errcode { get; set; }

? ? ? ? public string errmsg { get; set; }

? ? ? ? public string ticket { get; set; }

? ? ? ? public string expires_in { get; set; }
? ? }

? ? private string createNonceStr()
? ? {
? ? ? ? int length = 16;
? ? ? ? string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
? ? ? ? string str = "";
? ? ? ? System.Random rad = new System.Random();
? ? ? ? for (int i = 0; i < length; i++)
? ? ? ? {
? ? ? ? ? ? str += chars.Substring(rad.Next(0, chars.Length - 1), 1);
? ? ? ? }
? ? ? ? return str;
? ? }
? ? //SHA1哈希加密算法 ?
? ? public static string SHA1_Hash(string str_sha1_in)
? ? {
? ? ? ? SHA1 sha1 = new SHA1CryptoServiceProvider();
? ? ? ? byte[] bytes_sha1_in = System.Text.UTF8Encoding.Default.GetBytes(str_sha1_in);
? ? ? ? byte[] bytes_sha1_out = sha1.ComputeHash(bytes_sha1_in);
? ? ? ? string str_sha1_out = BitConverter.ToString(bytes_sha1_out);
? ? ? ? str_sha1_out = str_sha1_out.Replace("-", "").ToLower();
? ? ? ? return str_sha1_out;
? ? }

? ? public string GetSha1(string str)
? ? {
? ? ? ? //建立SHA1對(duì)象

? ? ? ? SHA1 sha = new SHA1CryptoServiceProvider();
? ? ? ? //將mystr轉(zhuǎn)換成byte[]
? ? ? ? ASCIIEncoding enc = new ASCIIEncoding();
? ? ? ? byte[] dataToHash = enc.GetBytes(str);
? ? ? ? //Hash運(yùn)算
? ? ? ? byte[] dataHashed = sha.ComputeHash(dataToHash);
? ? ? ? //將運(yùn)算結(jié)果轉(zhuǎn)換成string
? ? ? ? string hash = BitConverter.ToString(dataHashed).Replace("-", "").ToLower();
? ? ? ? return hash;
? ? }

? ? public IEnumerator GetWechatToken()
? ? {
? ? ? ? string appID = "wx22db6c710f661f68";
? ? ? ? string appSecret = "ba47bf18ad036518310145743cdc7a04";
? ? ? ? string url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appID}&secret={appSecret}";
? ? ? ? using UnityWebRequest webRequest = UnityWebRequest.Get(url);
? ? ? ? yield return webRequest.SendWebRequest();
? ? ? ? if (webRequest.result == UnityWebRequest.Result.Success)
? ? ? ? {
? ? ? ? ? ? var json = webRequest.downloadHandler.text;
? ? ? ? ? ? if (!string.IsNullOrEmpty(json))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? AccessToken atoken = JsonUtility.FromJson<AccessToken>(json);
? ? ? ? ? ? ? ? tip = atoken.access_token;
? ? ? ? ? ? ? ? //json={"access_token":"71_VWNQS5lobipBuw0cpMXycMlhN5l-cP0lCWyVCAd8xfbxbMLID6ku2Tttw6ivwyjSkp1HIuTw-29bVFCmuHl78GvoPnaJYhsRVO5_Tslr1HJa3Ayp4G8tzf5y74MKPEhAIAVAP","expires_in":7200};
? ? ? ? ? ? ? ? string jsapi_url = $"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={atoken.access_token}&type=jsapi";
? ? ? ? ? ? ? ? using UnityWebRequest jsapiRequest = UnityWebRequest.Get(url);
? ? ? ? ? ? ? ? yield return jsapiRequest.SendWebRequest();
? ? ? ? ? ? ? ? if (jsapiRequest.result == UnityWebRequest.Result.Success)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? //{"errcode":0,"errmsg":"ok","ticket":"LIKLckvwlJT9cWIhEQTwfCAOltWVYohgnqfFqTJCnBfBw3-pEXDs3v7UrlsEJte7DaGDvYoxD4znvTviQQM5IA","expires_in":7200}
? ? ? ? ? ? ? ? ? ? var tickitJson = webRequest.downloadHandler.text;
? ? ? ? ? ? ? ? ? ? JSTicket jSTicket = JsonUtility.FromJson<JSTicket>(tickitJson);
? ? ? ? ? ? ? ? ? ? Debug.Log("gcj: " + jSTicket);
? ? ? ? ? ? ? ? ? ? string JSTicketTicket = jSTicket.ticket;
? ? ? ? ? ? ? ? ? ? tip = "JSTicketTicket: "+ JSTicketTicket;
? ? ? ? ? ? ? ? ? ? TimeSpan span = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
? ? ? ? ? ? ? ? ? ? string timestamp = Convert.ToInt64(span.TotalSeconds).ToString();
? ? ? ? ? ? ? ? ? ? string nonceStr = createNonceStr();

? ? ? ? ? ? ? ? ? ? //簽名用的url必須是調(diào)用JS接口頁面的完整URL。

? ? ? ? ? ? ? ? ? ? string UrlMsg = "";
? ? ? ? ? ? ? ? ? ? try
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? UrlMsg = GetCurWebUrl();

? ? ? ? ? ? ? ? ? ? ? ? // 這里參數(shù)的順序要按照 key 值 ASCII 碼升序排序 ?
? ? ? ? ? ? ? ? ? ? ? ? string rawstring = "jsapi_ticket=" + JSTicketTicket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + UrlMsg + "";

? ? ? ? ? ? ? ? ? ? ? ? //string signature = FormsAuthentication.HashPasswordForStoringInConfigFile(rawstring, "SHA1").ToLower();
? ? ? ? ? ? ? ? ? ? ? ? string signature = GetSha1(rawstring);
? ? ? ? ? ? ? ? ? ? ? ? tip = "signature: " + signature;
? ? ? ? ? ? ? ? ? ? ? ? //Hashtable signPackage = new Hashtable();
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("appId", "wx22db6c710f661f68");
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("nonceStr", nonceStr);
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("timestamp", timestamp);
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("url", url);
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("signature", signature);
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("rawString", rawstring);
? ? ? ? ? ? ? ? ? ? ? ? //signPackage.Add("JSTicketTicket", JSTicketTicket);
? ? ? ? ? ? ? ? ? ? ? ? OpenWechatShareMenu(appID, timestamp, nonceStr, signature);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? catch (System.Exception e)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? UnityEngine.Debug.Log(e.Message);
? ? ? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }

? ? string tip = "";
? ? private void OnGUI()
? ? {
? ? ? ? GUI.Label(new Rect(200, 200, 500, 500), tip);
? ? }

? ? void Start()
? ? {
? ? ? ? //StartCoroutine( GetWechatToken());

? ? ? ? //TimeSpan span = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
? ? ? ? //string timestamp = "1692415454"; //Convert.ToInt64(span.TotalSeconds).ToString();
? ? ? ? //string nonceStr = "yCPqfcy4DRVu3QCH"; //createNonceStr();

? ? ? ? //Debug.Log("timestamp: "+timestamp);
? ? ? ? //Debug.Log("nonceStr: "+nonceStr);

? ? ? ? //string JSTicketTicket = "LIKLckvwlJT9cWIhEQTwfCAOltWVYohgnqfFqTJCnBdvECHdP06M2ysW3sQqCTMv8tgUxU9av9Dn8ghivMZ0PQ";
? ? ? ? //Debug.Log("JSTicketTicket: " + JSTicketTicket);

? ? ? ? 簽名用的url必須是調(diào)用JS接口頁面的完整URL。

? ? ? ? //string UrlMsg = "";
? ? ? ? //try
? ? ? ? //{
? ? ? ? // ? ?UrlMsg = "http://localhost/WebGL/"; //GetCurWebUrl();

? ? ? ? // ? ?Debug.Log("UrlMsg: " + UrlMsg);

? ? ? ? // ? ?//jsapi_ticket=LIKLckvwlJT9cWIhEQTwfCAOltWVYohgnqfFqTJCnBdvECHdP06M2ysW3sQqCTMv8tgUxU9av9Dn8ghivMZ0PQ&noncestr=yCPqfcy4DRVu3QCH&timestamp=1692415454&url=http://localhost/WebGL/
? ? ? ? // ? ?// 這里參數(shù)的順序要按照 key 值 ASCII 碼升序排序 ?
? ? ? ? // ? ?string rawstring = "jsapi_ticket=" + JSTicketTicket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + UrlMsg + "";

? ? ? ? // ? ?//string signature = FormsAuthentication.HashPasswordForStoringInConfigFile(rawstring, "SHA1").ToLower();
? ? ? ? // ? ?string signature = GetSha1(rawstring);
? ? ? ? // ? ?tip = "signature: " + signature;

? ? ? ? // ? ?//cf839bdf7af95e5764c3eea8459c8c6acf112081
? ? ? ? // ? ?Debug.Log(tip);

? ? ? ? // ? ?//Hashtable signPackage = new Hashtable();
? ? ? ? // ? ?//signPackage.Add("appId", "wx22db6c710f661f68");
? ? ? ? // ? ?//signPackage.Add("nonceStr", nonceStr);
? ? ? ? // ? ?//signPackage.Add("timestamp", timestamp);
? ? ? ? // ? ?//signPackage.Add("url", url);
? ? ? ? // ? ?//signPackage.Add("signature", signature);
? ? ? ? // ? ?//signPackage.Add("rawString", rawstring);
? ? ? ? // ? ?//signPackage.Add("JSTicketTicket", JSTicketTicket);
? ? ? ? // ? ?//OpenWechatShareMenu(appID, timestamp, nonceStr, signature);
? ? ? ? //}
? ? ? ? //catch(Exception ex)
? ? ? ? //{

? ? ? ? //}

? ? }
}
?

js部分代碼

? ? GetCurWebUrl: function () {

? ? ? ? // var returnStr = window.top.location.href;

? ? ? ? // var buffer = _malloc(lengthBytesUTF8(returnStr) + 1);

? ? ? ? // writeStringToMemory(returnStr, buffer);

? ? ? ? // return buffer;

? ? ? ? var returnStr = window.top.location.href;

? ? ? ? var bufferSize = lengthBytesUTF8(returnStr)+1;

? ? ? ? var buffer = _malloc(bufferSize);

? ? ? ? stringToUTF8(returnStr, buffer, bufferSize);

? ? ? ? return buffer;

? ? },文章來源地址http://www.zghlxwxcb.cn/news/detail-659773.html

到了這里,關(guān)于微信jssdk 簽名獲取方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp移動(dòng)端——企業(yè)微信H5調(diào)用jssdk實(shí)現(xiàn)掃一掃,通過weixin-java-cp獲取ticket簽名,配置config

    背景: 使用企業(yè)微信開發(fā)掃一掃功能 可信域名驗(yàn)證 ?(1)企業(yè)微信的可信域名需要和企業(yè)微信的備案主體一致。 域名備案主體可通過站長工具查看域名備案主體。https://icp.chinaz.com/ 企業(yè)微信備案主體可以咨詢管理員 (2)通過nginx配置域名歸屬驗(yàn)證txt文件 具體操作詳見: htt

    2024年01月25日
    瀏覽(25)
  • Python零基礎(chǔ)教程6——編輯器的選擇(IDLE?Visual Studio Code?PyCharm?Anaconda?)

    Python零基礎(chǔ)教程6——編輯器的選擇(IDLE?Visual Studio Code?PyCharm?Anaconda?)

    上一節(jié)課是1-5節(jié)課復(fù)盤 大家無論之前有沒有看過 都對(duì)前面的知識(shí)有了一定的了解 我在其中提到我的2023年總結(jié) 沒人評(píng)論的事 沒想到真有熱心腸的小伙伴幫忙 再次感謝! 有評(píng)必回呀,互動(dòng)起來! 這節(jié)課就是復(fù)盤之后產(chǎn)生的 遂 更加貼合實(shí)際! 在我們熟悉了一定的編程之后 我

    2024年01月25日
    瀏覽(24)
  • Visual Studio Code設(shè)置中文的方法

    Visual Studio Code設(shè)置中文的方法

    visual studio?Code這是一款編程軟件,可以進(jìn)行c語言文件的編輯操作,很多編程專業(yè)的小伙伴經(jīng)常會(huì)使用該軟件進(jìn)行編輯,Visual Studio Code的功能非常的強(qiáng)大,該軟件提供很多個(gè)版本,有些版本之間可能有的功能有些差異,越是新版,功能越是更加的豐富,但是我們下載的Visual

    2024年02月04日
    瀏覽(29)
  • Visual Studio Code 連接遠(yuǎn)程服務(wù)器方法

    Visual Studio Code 連接遠(yuǎn)程服務(wù)器方法

    1、輸入用戶名和服務(wù)器ip連接遠(yuǎn)程服務(wù)器 2、選擇配置文件 配置文件路徑:C:UsersAdministrator.sshconfig config的內(nèi)容大致如下: 3、根據(jù)配置的用戶名新建窗口,連接后即可打開文件夾,編輯代碼 這個(gè)步驟,如果出現(xiàn)Host key verification failed 類似錯(cuò)誤,C:UsersAdministrator.sshknown_hos

    2024年01月23日
    瀏覽(22)
  • 修改『Visual Studio Code(VS Code)』插件默認(rèn)安裝路徑的方法

    修改『Visual Studio Code(VS Code)』插件默認(rèn)安裝路徑的方法

    提示:文章中“『』”符號(hào)“加粗”都為著重說明,此二者同時(shí)使用一般為輸入內(nèi)容。 作者希望將『Visual Studio Code(以下簡(jiǎn)稱為“ VS Code ”)』的插件安裝在 數(shù)據(jù)盤 (D盤),用于統(tǒng)一管理,因此需要修改VS Code插件 安裝路徑 。 VS Code插件默認(rèn)的安裝位置為: C:Users{個(gè)人用戶名

    2024年02月07日
    瀏覽(52)
  • 解決方法:Visual Studio Code中npm腳本找不到

    解決方法:Visual Studio Code中npm腳本找不到

    第一步:通過 設(shè)置/用戶設(shè)置/擴(kuò)展/MPM 更改NPM默認(rèn)配置,如下圖所示 第二步:重啟VS Code,并且 雙擊打開package.json文件 ,然后點(diǎn)擊 資源管理器處的3個(gè)小點(diǎn) , 勾選npm腳本選項(xiàng) ,如圖所示 然后就能都顯示NPM腳本小窗口了。

    2024年02月10日
    瀏覽(25)
  • Ubuntu 18.04安裝Visual Studio Code的方法

    Ubuntu 18.04安裝Visual Studio Code的方法

    因?yàn)椴┲饔玫氖荲isual Studio Code的開發(fā)環(huán)境,就在這篇博客中記錄下在Ubuntu 18.04系統(tǒng)中安裝VsCode的方法,此方法同樣適用于Ubuntu 16.04。 安裝的方法有很多,最直接的就是通過官網(wǎng) https://code.visualstudio.com/Download 下載安裝包: 然后用 dpkg -i 命令安裝,但是從官網(wǎng)下載速度極其慢,

    2024年02月08日
    瀏覽(23)
  • Visual Studio Code中npm腳本找不到解決方法

    Visual Studio Code中npm腳本找不到解決方法

    1.在運(yùn)用npm途中,發(fā)現(xiàn)Visual Studio Code第一次打開時(shí),npm腳本還在 ?2.第二次打開,就發(fā)現(xiàn)npm腳本不見了 ?3.上網(wǎng)查了一下,很多博主說被隱藏了,但是我隱藏哪里也沒有 ?4.在網(wǎng)上嘗試了倆種方法( 注意:以下倆種方法,對(duì)我出現(xiàn)npm腳本都沒用,但是你們電腦可以嘗試一下?) ? 方

    2024年02月08日
    瀏覽(31)
  • Ubuntu 18.04快速安裝Visual Studio Code的方法及插件

    Ubuntu 18.04安裝Visual Studio Code的方法_李71~李先森的博客-CSDN博客 Step1:update apt,安裝依賴項(xiàng): sudo apt update sudo apt install gnupg2 software-properties-common apt-transport-https wget Step2:使用wget命令導(dǎo)入Microsoft GPG key: wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - Step3:激活

    2024年02月13日
    瀏覽(33)
  • 企業(yè)微信小程序用戶信息獲取以及JSSDK使用

    企業(yè)微信小程序用戶信息獲取以及JSSDK使用

    海馬匯與企業(yè)微信小程序 企業(yè)微信小程序訪問的是在線子應(yīng)用(即可直接通過瀏覽器訪問),因此只需將海馬匯打包部署到服務(wù)器上即可。 海馬匯子應(yīng)用目前使用過兩種模式: 純?cè)qR匯框架開發(fā) 該模式所有子應(yīng)用/頁面都需要自己開發(fā),不存在標(biāo)準(zhǔn)子應(yīng)用,因此開發(fā)工

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包