微信config配置一直说签名无效

licheng873860162 2015-10-07 06:31:57

//这是获取access_token
public string GetAccessToken(string appid, string appsecret, HttpContext context)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
string accessToken = string.Empty;
string respText = string.Empty;
string url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, appsecret);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

using (Stream stream = response.GetResponseStream())
{

StreamReader sr = new StreamReader(stream, Encoding.Default);
respText = sr.ReadToEnd();
sr.Close();
}

Dictionary<string, object> dic = (Dictionary<string, object>)jss.DeserializeObject(respText);
accessToken = dic["access_token"].ToString();

//缓存AccessToken
context.Session["AccessToken"] = accessToken;
context.Session.Timeout = 7200;


return accessToken;
}

public string GetJsApiInfo(string appid, string appsecret, HttpContext context)
{

JavaScriptSerializer jss = new JavaScriptSerializer();

string timestamp = TenpayUtil.getTimestamp();//生成签名时的时间戳
string nonceStr = TenpayUtil.getNoncestr();//随机字符串
//string url = "http://yskf.weixin.wangwo.net/storelist.aspx";
string url = context.Request.Url.AbsoluteUri.ToString().Split('#')[0];//当前地址
string jsapi_ticket = "";
string token = GetTokenSession(appid, appsecret, context);

if (context.Session["jsapi_ticket"] == null)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + token + "&type=jsapi");
request.Method = "GET";
string text = "";

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{

Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
text = sr.ReadToEnd();
sr.Close();
}

Dictionary<string, object> dic = (Dictionary<string, object>)jss.DeserializeObject(text);
jsapi_ticket = dic["ticket"].ToString();

//缓存jsapi_ticket
context.Session["jsapi_ticket"] = dic["ticket"].ToString();
context.Session.Timeout = 7200;
}
else
{
jsapi_ticket = context.Session["jsapi_ticket"].ToString();
}

string[] arrayList = { "jsapi_ticket=" + jsapi_ticket, "timestamp=" + timestamp, "noncestr=" + nonceStr, "url=" + url };
Array.Sort(arrayList);//按字典序进行排序

string signature = string.Join("&", arrayList);//串联成key1=value1&key2=value2...格式
signature = FormsAuthentication.HashPasswordForStoringInConfigFile(signature, "SHA1").ToLower();//sha1加密

//string json = "{\"appId\":\"" + appid + "\",\"timestamp\":\"" + timestamp + "\",\"nonceStr\":\"" + nonceStr + "\",\"signature\":\"" + signature + "\"}";

string json = "{\"jsapi_ticket\"=\"" + jsapi_ticket + "\",\"noncestr\"=\"" + nonceStr + "\",\"url\"=\"" + url + "\",\"timestamp\"=\"" + timestamp + "\",\"token\"=\"" + token + "\"}";

return json;
}


在网上查了些资料
发现jsapi_ticket打印出来时undefind
token也是undefind
我也找不到是哪点的问题了 求大神指点下啊
...全文
360 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xzi2966 2016-09-10
  • 打赏
  • 举报
回复
为什么啊! 我也遇到了。 啥错误都没啊
licheng873860162 2015-10-07
  • 打赏
  • 举报
回复
不要沉啊 help me

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧