初识微信公众平台,获取接口凭证方法
原创获取 access_token 的方法可以分为两种:手动获取和程序获取。手动获取就是将请求内容放在浏览器的地址栏上进行直接访问;程序获取是指通过调用后台代码去获取接口凭证。在自定义开发中往往要使用程序来获取接口凭证,但本质上都是向微信服务器发送 HTTPS GET 请求。假定某微信公众平台的参数如下:
AppID=wx90b00d2ef40bde4b
AppSecret=56ea34ef1bec24d0a2e70f5f204e354e
正常情况下,微信会返回下述 JSON 数据包给公众号:
1. { 2. "access_token":"ACCESS_TOKEN","expires_in":7200 3. }
1. 手动获取
在浏览器地址栏上输入以下内容(建议使用谷歌浏览器):
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid= wx90b00d2ef40bde 4b&secret=56ea34ef1bec24d0a2e70f5f204e354e
获取的接口访问凭证正确时返回的字符串如图 8-1 所示。

图 8-1 正确获取接口访问凭证时返回的字符串
当 AppID 或 AppSecret 有错误时,将返回错误,这些字符串都比较长,不建议手工输入,尽量使用复制粘贴来,出现错误时返回的字符串如图 8-2 所示。

图 8-2 错误获取接口访问凭证时返回的字符串
2. 程序获取
在 C#中,访问 HTTP 链接需要使用 HttpWebRequest 类,获取凭证的示例代码如下:
1. public class HttpService 2. { 3. /// <summary> 4. /// 处理 HTTP GET 请求,返回数据 5. /// </summary> 6. /// <param name=「url」> 请求的 URL 地址 </param> 7. /// <returns>HTTP GET 成功后返回的数据,失败抛 WebException 异常 </returns> 8. public static string Get(string url) 9. { 10. System.GC.Collect(); 11. string result = 「」; 12. HttpWebRequest request = null; 13. HttpWebResponse response = null; 14. //请求 URL 以获取数据 15. try 16. { 17. //设置最大连接数 18. ServicePointManager.DefaultConnectionLimit = 200; 19. //设置 HTTPS 验证方式 20. if (url.StartsWith(「https」, StringComparison.OrdinalIgnoreCase)) 21. { 22. ServicePointManager.ServerCertificateValidationCallback = 23. new RemoteCertificateValidationCallback(Check ValidationResult); 24. } 25. 26. /*************************************************************** 27. * 下面设置 HttpWebRequest 的相关属性* 28. ****************************************************************/ 29. request = (HttpWebRequest)WebRequest.Create(url); 30. request.Method = 「GET」; 31. 32. //获取服务器返回 33. response = (HttpWebResponse)request.GetResponse(); 34. 35. //获取 HTTP 返回数据 36. StreamReader sr = new StreamReader(response.GetResponse Stream(), Encoding.UTF8); 37. result = sr.ReadToEnd().Trim(); 38. sr.Close(); 39. } 40. catch (System.Threading.ThreadAbortException e) 41. { 42. Log.Error(「HttpService」,「Thread - caught ThreadAbortException - resetting.」); 43. Log.Error(「Exception message: {0}」, e.Message); 44. System.Threading.Thread.ResetAbort(); 45. } 46. catch (WebException e) 47. { 48. Log.Error(「HttpService」, e.ToString()); 49. if (e.Status == WebExceptionStatus.ProtocolError) 50. { 51. Log.Error(「HttpService」, 「StatusCode : 」 + ((Http WebResponse)e.Response).StatusCode); 52. Log.Error(「HttpService」, 「StatusDescription : 」 + ((HttpWebResponse)e.Response).StatusDescription); 53. } 54. throw new WxPayException(e.ToString()); 55. } 56. catch (Exception e) 57. { 58. Log.Error(「HttpService」, e.ToString()); 59. throw new WxPayException(e.ToString()); 60. } 61. finally 62. { 63. //关闭连接和流 64. if (response != null) 65. { 66. response.Close(); 67. } 68. if (request != null) 69. { 70. request.Abort(); 71. } 72. } 73. return result; 74. } 75. 76. public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) 77. { 78. //直接确认,否则打不开 79. return true; 80. } 81. }
版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/9579
阅读推荐
更多...- 建立销售成功的关键: 客户说「便宜点就买了」,销售员如何应对 2023-04-14
- 微视频营销解密微商?微视频营销优势、内容、趋势是什么? 2022-07-22
- [微信创业]怎样才能成为不讨厌的人? 2023-07-11
- 如何拜访客户才能顺利约见,并且有利于成交呢?送你 4 招 2023-05-22
- 恶习不改型,实现销售业绩的持续增长 2023-04-01
- 「互联网+」背景下大学生微商创业的相关财务问题探讨 2023-07-14
- 活泼型做销售的不足及建议,怎样做好销售? 2023-03-04
- 速卖通保证金怎么取出来?保证金退要多久? 2022-07-30
- 「猴子」定律:四两拨千斤的销售法则 2023-03-04
- 多点商量,少点武断「销售管理」 2023-03-02
- APP营销八大特点是什么?APP营销的特点有哪些? 2022-07-26
- 微店全攻略,微店全攻略 2023-07-14
- 让业绩高速增长! 说对一句话,初次拜访就见到最终买单人 2023-05-19
- 有礼有节,重视礼,有「礼」才有「利」,最大程度地优化销售资源和流程 2023-04-01
- 初创发展:筑牢产业根基(年) 2023-10-08
- 「抖商经验」通过抖音评论区引流 2023-02-12
- 销售无等级化,拉近客户距离,不断提高您的销售技巧和业绩 2023-04-01
- 你了解销售中的情商运用吗 2023-03-02