1、基于C#的加油卡接口调用代码实例 代码描述:基于C#的加油卡接口调用代码实例 代码平台:聚合数据 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using Xfrog.Net; using System.Diagnostics; using System.Web; //---------------------------------- // 加油卡充值调用示例
2、代码 - 聚合数据 // 在线接口文档: // 代码中JsonObject类下载地址: //---------------------------------- namespace ConsoleAPI { class Program { static void Main(string[] args) { string appkey = "*******************"; //配置您申请的appkey //1.订单状态查询
3、 string url1 = "
var parameters1 = new Dictionary
4、 JsonObject newObj1 = new JsonObject(result1); String errorCode1 = newObj1["error_code"].Value; if (errorCode1 == "0") { Debug.WriteLine("成功"); Debug.WriteLine(newObj1); } else {
5、 //Debug.WriteLine("失败");
Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value);
}
//2.账户余额查询
string url2 = "
var parameters2 = new Dictionary
6、Add("timestamp" , ""); //当前时间戳,如:1432788379 parameters2.Add("key", appkey);//你申请的key parameters2.Add("sign" , ""); //校验值,md5(OpenID+key+timestamp),OpenID在个人中心查询 string result2 = sendPost(url2, parameters2, "get"); JsonObject newObj2 = new Jso
7、nObject(result2); String errorCode2 = newObj2["error_code"].Value; if (errorCode2 == "0") { Debug.WriteLine("成功"); Debug.WriteLine(newObj2); } else { //Debug.WriteLine(
8、"失败");
Debug.WriteLine(newObj2["error_code"].Value+":"+newObj2["reason"].Value);
}
//3.加油卡充值
string url3 = "
var parameters3 = new Dictionary
9、中石化50元加油卡)、10001(中石化100元加油卡)、10003(中石化500元加油卡)、10004(中石化1000元加油卡)、10007(中石化任意金额充值)、10008(中石油任意金额充值) parameters3.Add("cardnum" , ""); //充值数量 任意充 (整数(元)),其余面值固定值为1 parameters3.Add("orderid" , ""); //商家订单号,8-32位字母数字组合 parameters3.Add("game_userid" , ""); //加油卡卡号,中
10、石化:以100011开头的卡号、中石油:以9开头的卡号 parameters3.Add("gasCardTel" , ""); //持卡人手机号码 parameters3.Add("gasCardName" , ""); //持卡人姓名 parameters3.Add("chargeType" , ""); //加油卡类型 (1:中石化、2:中石油;默认为1) parameters3.Add("key", appkey);//你申请的key parameters3.
11、Add("sign" , ""); //校验值,md5(OpenID+key+proid+cardnum+game_userid+orderid),OpenID在个人中心查询 string result3 = sendPost(url3, parameters3, "get"); JsonObject newObj3 = new JsonObject(result3); String errorCode3 = newObj3["error_code"].Value; if
12、errorCode3 == "0") { Debug.WriteLine("成功"); Debug.WriteLine(newObj3); } else { //Debug.WriteLine("失败"); Debug.WriteLine(newObj3["error_code"].Value+":"+newObj3["reason"].Value);
13、 }
}
///
14、tatic string sendPost(string url, IDictionary
15、 try { req = (HttpWebRequest)WebRequest.Create(url); req.Method = method; req.KeepAlive = false; req.ProtocolVersion = HttpVersion.Version10; req.Timeout = 5000;
16、 req.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8")); reqStream = req.GetRequestStream(); reqStream.Write(postData, 0, postDat
17、a.Length); rsp = (HttpWebResponse)req.GetResponse(); Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } catch (Exception ex) {
18、 return ex.Message; } finally { if (reqStream != null) reqStream.Close(); if (rsp != null) rsp.Close(); } } else { //创建
19、请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(parameters, "utf8")); //GET请求 request.Method = "GET"; request.ReadWriteTimeout = 5000; request.ContentType = "text/html;charset
20、UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
21、//返回内容
string retString = myStreamReader.ReadToEnd();
return retString;
}
}
///
22、请求数据
static string BuildQuery(IDictionary
23、 while (dem.MoveNext()) { string name = dem.Current.Key; string value = dem.Current.Value; // 忽略参数名或参数值为空的参数 if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value) {
24、 if (hasParam) { postData.Append("&"); } postData.Append(name); postData.Append("="); if (encode == "gb2312") { postDa
25、ta.Append(HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312"))); } else if (encode == "utf8") { postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8)); } el
26、se
{
postData.Append(value);
}
hasParam = true;
}
}
return postData.ToString();
}
///
27、 /// 响应流对象
/// 编码方式
///
28、 null; try { // 以字符流的方式读取HTTP响应 stream = rsp.GetResponseStream(); reader = new StreamReader(stream, encoding); return reader.ReadToEnd(); } finally { // 释放资源 if (reader != null) reader.Close(); if (stream != null) stream.Close(); if (rsp != null) rsp.Close(); } } } }
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818