API接入

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

关联数据:卡密购买API服务

接口地址:

http://api.qianyou.cn:11140/receiveUserBuyCardOrder


 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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Net;

using System.Security.Cryptography;

using System.Text;

using Newtonsoft.Json;

 

namespace Qianyou

{

class Program

{

//请求地址

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

static void Main(string[] args)

{

BuyCard();

}

/// <summary>

/// 卡密购买

/// </summary>

public static void BuyCard()

{

var userTimeStamp = TimeStamp() * 1000;//时间戳

//生成签名

StringBuilder source = new StringBuilder();

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

source.Append("userOrderId").Append(userOrderId);// 用户的订单号(最长32位)

source.Append("goodsId").Append(goodsId);//商品编号,具体参照商品查询接口返回

source.Append("chargeAmount").Append(chargeAmount);//购买数量

source.Append("userTimeStamp").Append(userTimeStamp);//订单创建时间,Unix时间戳,精确到毫秒

source.Append(Key);//key是用户key

var sign = Md5Encrypt(source.ToString());

//请求地址

var url = REQUESTURL;

//组装请求参数

StringBuilder data = new StringBuilder();

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

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

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

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

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

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

try

{

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

if(response .Contains("code"))

{

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

var cardpwd = DesDecrypt(CardPwd, "***", "***");//CardPwd:卡密Des加密原串 密码秘钥请联系商务索要

}

}

catch (Exception ex)

{

throw;

}

}

/// <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.Default);

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>

/// Des解密

/// <param name="data">解密原串</param>

/// <param name="key">8位字符的密钥字符串(解密key是接口key的前8位)</param >

/// <param name="iv">8位字符的初始化向量字符串</param >

/// <returns></returns>

public static string DesDecrypt(string data, string key, string iv)

{

var byKey = Encoding.ASCII.GetBytes(key);

var byIv = Encoding.ASCII.GetBytes(iv);

var byEnc = Convert.FromBase64String(data);

var cryptoProvider = new DESCryptoServiceProvider();

using (var ms = new MemoryStream(byEnc))

{

using (var cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIv), CryptoStreamMode.Read))

{

using (var sr = new StreamReader(cst))

{

return sr.ReadToEnd();

}

}

}

}

/// <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 userOrderId { get; set; }

/// <summary>

/// 用户编号,注册www.qianyou.cn的手机号码

/// </summary>

public string userNo { get; set; }

/// <summary>

/// 千游订单号

/// </summary>

public string platOrderId { get; set; }

/// <summary>

/// Cards

/// </summary>

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

}

public class Cards

{

/// <summary>

/// 卡号

/// </summary>

public string cardNumber { get; set; }

/// <summary>

/// 卡密,des加密结果

/// </summary>

public string cardPwd { get; set; }

}

}

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