usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Services;usingSystem.Web.Script.Serialization;usingSystem.Web.Script.Services;usingSystem.Runtime.Serialization.Json;usingSystem.Data;usingSystem.Text;usingSystem.IO;usingSystem.Net;usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;///
///api 的摘要说明///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]public classapi : System.Web.Services.WebService
{
[WebMethod]public void OpenID(stringcode)
{//临时登录凭证code 获取 session_key 和 openid
string js_code =code;//此处填写自己小程序的appid和secret
string serviceAddress = "https://api.weixin.qq.com/sns/jscode2session?appid=appid&secret=secret&js_code=" + js_code + "&grant_type=authorization_code";
HttpWebRequest request=(HttpWebRequest)WebRequest.Create(serviceAddress);
request.Method= "GET";
request.ContentType= "textml;charset=UTF-8";
HttpWebResponse response=(HttpWebResponse)request.GetResponse();
Stream myResponseStream=response.GetResponseStream();
StreamReader myStreamReader= newStreamReader(myResponseStream, Encoding.UTF8);string jsonData =myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();string jsonString =jsonData;
JObject json=JObject.Parse(jsonString);string openid = json["openid"].ToString();
Context.Response.Write(GetJson(openid));
}#region 把对象序列化 JSON 字符串
///
///把对象序列化 JSON 字符串///
/// 对象类型
/// 对象实体
/// JSON字符串
public static string GetJson(T obj)
{//记住 添加引用 System.ServiceModel.Web
/**
* 如果不添加上面的引用,System.Runtime.Serialization.Json; Json是出不来的哦
**/DataContractJsonSerializer json= new DataContractJsonSerializer(typeof(T));using (MemoryStream ms = newMemoryStream())
{
json.WriteObject(ms, obj);string szJson =Encoding.UTF8.GetString(ms.ToArray());returnszJson;
}
}#endregion}