API接入

代码描述:基于C#的千游互娱API服务接口调用示例

关联数据:购卡查询API服务

接口地址:

http://api.qianyou.cn:11140/UserOrderController/queryBuyCardOrder


 qianyou

     

 2017-10-16 10:04

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163

using Newtonsoft.Json;

using System;

using System.Collections.Generic;

using System.IO;

using System.Net;

using System.Security.Cryptography;

using System.Text;

 

namespace Qianyou

{

class Program

{

//请求网址

private static readonly string REQUESTURL = "http://api.qianyou.cn:11140/queryBuyCardOrder";

static void Main(string[] args)

{

QueryCard();

}

/// <summary>

/// 购卡订单

/// </summary>

public static void QueryCard()

{

//生成签名

StringBuilder source = new StringBuilder();

source.Append("userNo").Append(userNo);// userNo 用户编号,注册www.qianyou.cn的手机号码

source.Append("orderId").Append(orderId);//orderId 用户提交的订单号

source.Append(key);//key

var sign = Md5Encrypt(source.ToString());//加密

//请求地址

var url = REQUESTURL;

//组装请求参数

StringBuilder data = new StringBuilder();

data.Append("userNo=").Append(userNo);

data.Append("&orderId=").Append(orderId);//同上

data.Append("&sign=").Append(sign);

try

{

var response = HttpPost(url, data.ToString());

if (response.Contains("code"))

{

var result = JsonConvert.DeserializeObject<QueryResponseModel>(response);//获取到的响应

}

}

catch (Exception ex)

{

 

Console.WriteLine(ex.Message);

}

}

/// <summary>

/// post请求方法 (仅供参考)

/// </summary>

/// <param name="Url"></param>

/// <param name="postDataStr"></param>

/// <returns></returns>

private static string HttpPost(string Url, string postDataStr)

{

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";

request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);

Stream myRequestStream = request.GetRequestStream();

StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));

myStreamWriter.Write(postDataStr);

myStreamWriter.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream myResponseStream = response.GetResponseStream();

StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));

string retString = myStreamReader.ReadToEnd();

myStreamReader.Close();

myResponseStream.Close();

return retString;

}

/// <summary>

/// 对字符串进行MD5加密

/// </summary>

/// <param name="input"></param>

/// <returns></returns>

public static string Md5Encrypt(string input)

{

return Md5Encrypt(input, Encoding.UTF8);

}

 

/// <summary>

/// 对字符串进行MD5加密

/// </summary>

/// <param name="input"></param>

/// <param name="enc"></param>

/// <returns></returns>

public static string Md5Encrypt(string input, Encoding enc)

{

var md5 = new MD5CryptoServiceProvider();

var buffer = md5.ComputeHash(enc.GetBytes(input));

var builder = new StringBuilder(32);

foreach (var t in buffer)

{

builder.Append(t.ToString("x").PadLeft(2, '0'));

}

return builder.ToString();

}

 

/// <summary>

/// 时间戳

/// </summary>

/// <returns></returns>

public static long TimeStamp()

{

DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区

long receivetime = (long)((Convert.ToDateTime(DateTime.Now)) - startTime).TotalSeconds; // 相差秒数

return receivetime;

}

}

/// <summary>

/// 订单信息

/// </summary>

public class Order

{

public string userOrderId { get; set; }

public string goodsId { get; set; }

public string totalMoney { get; set; }

public string account { get; set; }

public string userTimeStamp { get; set; }

public string MyProperty { get; set; }

}

/// <summary>

/// 请求返回结果

/// </summary>

public class ResponseModel

{

/// <summary>

/// 返回说明

/// </summary>

public string msg { get; set; }

/// <summary>

/// 返回码

/// </summary>

public string code { get; set; }

/// <summary>

/// 用户提交的订单号

/// </summary>

public string orderId { get; set; }

/// <summary>

/// 订单状态(0充值中1成功2失败)

/// </summary>

public string orderState { get; set; }

/// <summary>

/// 购买卡密信息

/// </summary>

public List<Cards> cards { get; set; }

}

public class Cards

{

/// <summary>

/// 卡号

/// </summary>

public string cardNumber { get; set; }

/// <summary>

/// 卡密,需要des解密获得真实卡密,解密key是接口key的前8位

/// </summary>

public string cardPwd { get; set; }

}

}

千游互娱平台-游戏点卡充值 视频会员直充 卡密购买 API接口