Rumah applet WeChat pembangunan WeChat .Net微信开发之如何解决access_token过期问题解决办法

.Net微信开发之如何解决access_token过期问题解决办法

Mar 28, 2017 pm 02:43 PM
.net WeChat

这篇文章主要为大家详细介绍了.Net微信开发之如何解决access_token过期问题的方法,感兴趣的小伙伴们可以参考一下

因为access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token改造一下。
另外需要说明的是access_token是变化的,有自己的周期,官方解释为:"有效期为7200秒",这就要求我们把获得的access_token存入一个物理文件或者Application中,请求到过期后修改这些内容,需要用的时候读出来.
有些人可能想到了,如果过期我就在获得一个就好了,不用物理文件和Application也可以达到同样的效果,但是需要注意了微信平台对每天获得access_token的次数也作了限制,一个用户出发多次,如果用户多,那肯定就超出了。所以我们还是按照以上的思路实现这些功能:在此之前我们已经了解了获得access_token的方法(连接),现在只需要保证它的随时更新就好了.
首先建立一个Access_token类


/// <summary>
///Access_token 的摘要说明
/// </summary>
public class Access_token
{
 public Access_token()
 {
 //
 //TODO: 在此处添加构造函数逻辑
 //
 }
 string _access_token;
 string _expires_in;

 /// <summary>
 /// 获取到的凭证 
 /// </summary>
 public string access_token
 {
  get { return _access_token; }
  set { _access_token = value; }
 }

 /// <summary>
 /// 凭证有效时间,单位:秒
 /// </summary>
 public string expires_in
 {
  get { return _expires_in; }
  set { _expires_in = value; }
 }
}
Salin selepas log masuk

用下面的XML文件来存放access_token,建立一个XMLFile.xml,把Access_YouXRQ标签的内容写成一个已经过去的时间,这样我们好在一开始调用的时候,发现已经过期,然后获取新的access_token。


<?xml version="1.0" encoding="utf-8"?>
<xml>
 <Access_Token>初始值可以随便写</Access_Token>
 <Access_YouXRQ>1980/12/12 16:06:38</Access_YouXRQ>
</xml>
Salin selepas log masuk

改造一下之前获得Access_token的方法,让他给Access_token实例赋值


public static Access_token GetAccess_token()
 {
  string appid = 你的appid ;
  string secret = 你的secret;
  string strUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
  Access_token mode = new Access_token();

  HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(strUrl);

  req.Method = "GET";
  using (WebResponse wr = req.GetResponse())
  {
   HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();

   StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);

   string content = reader.ReadToEnd();
   //Response.Write(content);
   //在这里对Access_token 赋值
   Access_token token = new Access_token();
   token = JsonHelper.ParseFromJson<Access_token>(content);
   mode.access_token = token.access_token;
   mode.expires_in = token.expires_in;
  }
  return mode;
 }
Salin selepas log masuk

以上的方法用到了Json对象的处理,所以我把JsonHelper的代码一贴出来供大家参考,一下就是JsonHelper.cs的代码:


using System;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Json;
 

public class JsonHelper
{
 /// <summary>
 /// 生成Json格式
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="obj"></param>
 /// <returns></returns>
 public static string GetJson<T>(T obj)
 {
  DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
  using (MemoryStream stream = new MemoryStream())
  {
   json.WriteObject(stream, obj);
   string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson;
  }
 }
 /// <summary>
 /// 获取Json的Model
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="szJson"></param>
 /// <returns></returns>
 public static T ParseFromJson<T>(string szJson)
 {
  T obj = Activator.CreateInstance<T>();
  using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
  {
   DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
   return (T)serializer.ReadObject(ms);
  }
 }
}
Salin selepas log masuk

我们还需要些一个判断access_token是否过期如果过期更新XML文件的方法。


/// <summary>
 /// 根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token
 /// </summary>
 /// <param name="datetime"></param>
 /// <returns></returns>
 public static string IsExistAccess_Token()
 {

  string Token = string.Empty;
  DateTime YouXRQ;
  // 读取XML文件中的数据,并显示出来 ,注意文件路径
  string filepath = Server.MapPath("XMLFile.xml");

  StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8);
  XmlDocument xml = new XmlDocument();
  xml.Load(str);
  str.Close();
  str.Dispose();
  Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText;
  YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText);

  if (DateTime.Now > YouXRQ)
  {
   DateTime _youxrq = DateTime.Now;
   Access_token mode = GetAccess_token();
   xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token;
   _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in));
   xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString();
   xml.Save(filepath);
   Token = mode.access_token;
  }
  return Token;
 }
Salin selepas log masuk

好了,完成了上面的工作,我只需要在使用到access_token的时如下调用就OK了,“客户再也不用担心token的过期”
string _access_token = IsExistAccess_Token();

Atas ialah kandungan terperinci .Net微信开发之如何解决access_token过期问题解决办法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial Generasi Imej DeepSeek Tutorial Generasi Imej DeepSeek Feb 19, 2025 pm 04:15 PM

DeepSeek: Alat Generasi Imej AI yang kuat! DeepSeek sendiri bukan alat penjanaan imej, tetapi teknologi terasnya yang kuat memberikan sokongan yang mendasari untuk banyak alat lukisan AI. Ingin tahu cara menggunakan DeepSeek untuk menjana imej secara tidak langsung? Sila teruskan membaca! Menjana imej dengan alat AI berasaskan DeepSeek: Langkah-langkah berikut akan membimbing anda untuk menggunakan alat ini: Lancarkan alat lukisan AI: Cari dan buka alat lukisan AI berasaskan Deepseek (contohnya, cari "AI Simple"). Pilih Mod Lukisan: Pilih "Lukisan AI" atau fungsi yang serupa, dan pilih Jenis Imej mengikut keperluan anda, seperti "Anime Avatar", "Landskap"

Laman Web Platform Perdagangan Laman Web Gateio Cina. Laman Web Platform Perdagangan Laman Web Gateio Cina. Feb 21, 2025 pm 03:06 PM

Gate.io, sebuah platform perdagangan cryptocurrency terkemuka yang ditubuhkan pada tahun 2013, menyediakan pengguna Cina dengan laman web rasmi Cina yang lengkap. Laman web ini menyediakan pelbagai perkhidmatan, termasuk perdagangan tempat, perdagangan niaga hadapan dan pinjaman, dan menyediakan ciri khas seperti antara muka Cina, sumber yang kaya dan sokongan masyarakat.

Senarai yuran pengendalian untuk platform perdagangan okx Senarai yuran pengendalian untuk platform perdagangan okx Feb 15, 2025 pm 03:09 PM

Platform perdagangan OKX menawarkan pelbagai kadar, termasuk yuran transaksi, yuran pengeluaran dan yuran pembiayaan. Untuk urus niaga tempat, yuran urus niaga berbeza -beza mengikut jumlah urus niaga dan tahap VIP, dan mengamalkan "model pembuat pasaran", iaitu, pasaran mengenakan bayaran pengendalian yang lebih rendah untuk setiap transaksi. Di samping itu, OKX juga menawarkan pelbagai kontrak niaga hadapan, termasuk kontrak standard mata wang, kontrak USDT dan kontrak penghantaran, dan struktur yuran setiap kontrak juga berbeza.

GATEIO EXCHANGE Versi lama Gateio Exchange App Versi Lama Saluran Muat turun GATEIO EXCHANGE Versi lama Gateio Exchange App Versi Lama Saluran Muat turun Mar 04, 2025 pm 11:36 PM

Saluran muat turun aplikasi gerbang untuk versi lama, meliputi pasaran aplikasi rasmi, pihak ketiga, komuniti forum dan saluran lain.

Pintu Masuk Masuk Log Masuk Masuk. Pintu Masuk Masuk Log Masuk Masuk. Mar 04, 2025 pm 04:51 PM

Gate.io (Pintu Terbuka Sesame) adalah platform perdagangan cryptocurrency terkemuka di dunia. Tutorial ini meliputi langkah -langkah seperti pendaftaran akaun dan log masuk, pensijilan KYC, mata wang fiat dan mata wang digital, pemilihan pasangan dagangan, pesanan urus niaga/pasaran, dan pesanan dan rekod transaksi melihat, membantu anda memulakan platform GATE.IO untuk perdagangan cryptocurrency. Sama ada pemula atau veteran, anda boleh mendapat manfaat daripada tutorial ini dan mudah menguasai kemahiran perdagangan Gate.io.

Tutorial muat turun domestik Tutorial muat turun domestik Mar 21, 2025 pm 05:42 PM

Artikel ini menyediakan panduan terperinci untuk muat turun selamat aplikasi OUYI OKX di China. Oleh kerana sekatan ke kedai aplikasi domestik, pengguna dinasihatkan untuk memuat turun aplikasi melalui laman web rasmi OUYI OKX, atau menggunakan kod QR yang disediakan oleh laman web rasmi untuk mengimbas dan memuat turun. Semasa proses muat turun, pastikan anda mengesahkan alamat laman web rasmi, periksa kebenaran aplikasi, lakukan imbasan keselamatan selepas pemasangan, dan membolehkan pengesahan dua faktor. Semasa penggunaan, sila mematuhi undang -undang dan peraturan tempatan, gunakan persekitaran rangkaian yang selamat, melindungi keselamatan akaun, berhati -hati terhadap penipuan, dan melabur secara rasional. Artikel ini hanya untuk rujukan dan tidak menjadi nasihat pelaburan.

Perbezaan antara program H5 dan mini dan aplikasi Perbezaan antara program H5 dan mini dan aplikasi Apr 06, 2025 am 10:42 AM

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

Cara menyalin penulisan salinan Xiaohongshu Tutorial grafik tentang cara menyalin penulisan salinan Xiaohongshu. Cara menyalin penulisan salinan Xiaohongshu Tutorial grafik tentang cara menyalin penulisan salinan Xiaohongshu. Jan 16, 2025 pm 04:03 PM

Belajar untuk menyalin penulisan salinan Xiaohongshu dengan mudah! Tutorial ini mengajar anda langkah demi langkah cara menyalin salinan video Xiaohongshu dengan cepat, mengucapkan selamat tinggal kepada langkah yang membosankan. Buka APP Xiaohongshu, cari video yang anda suka, dan klik pada kawasan [Copywriting] di bawah video. Tekan lama teks salin dan pilih fungsi [Ekstrak Teks] daripada pilihan pop timbul. Sistem akan mengekstrak teks secara automatik, klik butang [Salin] di sudut kiri bawah. Buka WeChat atau aplikasi lain, seperti Moments, tekan lama kotak input, dan pilih [Tampal]. Klik Hantar untuk melengkapkan salinan. Semudah itu!

See all articles