博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信jssdk配置的问题,使用MVC制作的demo
阅读量:6594 次
发布时间:2019-06-24

本文共 4286 字,大约阅读时间需要 14 分钟。

一,view代码

@**@

二,控制器代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using WebTestDemo.Code;namespace WebTestDemo.Controllers{    ///     /// 微信JSSDK的使用    ///     public class JssdkController : BaseController    {        public static string AppId = "";        public static string timestamp = "";        public static string nonceStr = "";        public static string signature = "";        public ActionResult Index()        {            timestamp = JssdkHelper.ConvertDateTimeInt(DateTime.Now).ToString();   //时间戳获取当前时间            nonceStr = "Test" + new Random().Next(1, 1000) + "Demo";               //随机字符串没有固定的字符和没有特定的格式            string url = HttpContext.Request.Url.ToString();  // url(当前网页的URL,不包含#及其后面部分)            url = url.Substring(0, url.IndexOf('#') == -1 ? url.Length : url.IndexOf('#'));            signature = JssdkHelper.ReturnSignature(timestamp, nonceStr, url);            ViewBag.AppId = JssdkHelper.appid;            ViewBag.timestamp = timestamp;            ViewBag.nonceStr = nonceStr;            ViewBag.signature = signature;            return View();        }    }}

三,JSSDK帮助类代码

public static class JssdkHelper    {        public const string appid = "你的appid";        public const string appsecret = "你的appsecret ";        public const string baseurl = "https://api.weixin.qq.com/";        public const string openurl = "https://open.weixin.qq.com/";        public const string token = "test";        public static int ConvertDateTimeInt(DateTime time)        {            DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));            return (int)(time - startTime).TotalSeconds;        }        ///         /// 返回签名        ///         ///         ///         ///         /// 
public static string ReturnSignature(string timestamp, string nonce, string url) { string tmpStr = string.Empty; string jsapi_ticket = Getjsapi_ticket(); SortedList
SLString = new SortedList
(); SLString.Add("jsapi_ticket", jsapi_ticket); SLString.Add("noncestr", nonce); SLString.Add("timestamp", timestamp); SLString.Add("url", url); foreach (KeyValuePair
des in SLString) //返回的是KeyValuePair,在学习的时候尽量少用var,起码要知道返回的是什么 { tmpStr += des.Key + "=" + des.Value + "&"; } if (tmpStr.Length > 0) tmpStr = tmpStr.Substring(0, tmpStr.Length - 1); return Utils.SHA1Encrypt(tmpStr); } ///
/// 获取Token /// ///
public static string GetToken() { string token = CookieHelper.GetCookie(CookieHelper.StrWXTokenCookieName); if (string.IsNullOrEmpty(token)) { string url = string.Format("{0}cgi-bin/token?grant_type=client_credential&appid={1}&secret={2}", baseurl, appid, appsecret); string str = Utils.HttpGet(url); JObject j = JObject.Parse(str); token = j.Value
("access_token"); } return token; } public static string Getjsapi_ticket() { string access_token = GetToken(); string url = string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", access_token); string backStr = HttpClientHelper.GetResponse(url); //string backStr = "{ \"errcode\":0,\"errmsg\":\"ok\",\"ticket\":\"kgt8ON7yVITDhtdwci0qeZWDYY9llY5RrKsWxKD--zOUIRYqJ1XwMo305bwZhG22b5hOl-TZ-gZAXCbMMHwvCw\",\"expires_in\":7200}"; string str_ticket = backStr.Split(',')[2].Split(':')[1]; string Jsapi_ticket = str_ticket.Substring(1, str_ticket.Length - 2); return Jsapi_ticket; } }

四,invalid url domain出现后的解决方法

在微信开发文档中有一个这样的解决方法,当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,仅支持80(http)和443(https)两个端口,因此不需要填写端口号,但这个是什么意思呢?

1,建议在IIS部署的网站是80端口,如果是还出现问题就看2,就是JS接口安全域名这里的配置有问题,js安全域名怎么配置呢?
2,先去掉http,比如我们的域名是www,xxx.com,我们不能配置成http://www,xxx.com/Jssdk/Index,要去掉http://以及后面的文件目录(/Jssdk/Index),写成www,xxx.com即可

 

转载于:https://www.cnblogs.com/May-day/p/9662878.html

你可能感兴趣的文章
你的GitHub,怎么和我用的不太一样?
查看>>
Windows Server入门系列37 创建网络共享
查看>>
自己diy封装xp操作系统
查看>>
veritas升级及备份至磁盘两个问题简要说明
查看>>
Scoket:UDP通讯模型
查看>>
扯点关于经济的淡-贸易顺差都是有利的吗
查看>>
[yui][译]Yahoo!User Interface Libray 介绍
查看>>
“边开发边测试”给测试带来的变化
查看>>
这款奇葩的Android勒索软件竟然让受害者用语音说出解锁密码
查看>>
国产IT厂商激辩微软 微软反垄断调查或有突破
查看>>
《驯狮记——Mac OS X 10.8 Mountain Lion使用手册》——1.2 OS X Mountain新特性概述——从iOS获得的灵感...
查看>>
《进化——我们在互联网上奋斗的故事》一一1.4 从精兵到强将 ——技术人员的职场发展之路...
查看>>
Git@OSC 项目推荐 — Spark 源代码注释与翻译
查看>>
通过 LLVM 在 Android 上运行 Swift 代码
查看>>
《HttpClient官方文档》1.7. Redirect handling 翻译
查看>>
《像计算机科学家一样思考Python》——4.9 文档字符串
查看>>
《C程序员从校园到职场》一第2章 学校到职场2.1 认清自身不足
查看>>
《重构:改善既有代码的设计》目录—导读
查看>>
jquery遍历的json有两层list时的解决方法
查看>>
价格战之后,云计算市场将迎来云服务生态竞争
查看>>