代码描述:基于C#的查询模板状态调用示例

接口地址:http://api.yunzhixin.com:11140/txp/sms/queryTemplate


 starSky

     

 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

using Newtonsoft.Json;

using System;

using System.Net;

using System.Security.Cryptography;

using System.Text;

namespace YZX_Demo

{

class QueryTemplate

{

/// <summary>

/// 请求地址

/// </summary>

private static readonly string REQUEST_URL = "http://api.yunzhixin.com:11140/txp/sms/queryTemplate";

/// <summary>

/// 配置您申请的tradeKey(手动填入)

/// </summary>

private static readonly string TRADE_KEY = "";

/// <summary>

/// 返回成功时,返回码的值

/// </summary>

private static readonly string SUCCESS = "0000";

public static void Main(string[] args)

{

//输入用户编号,即注册www.yunzhixin.com的手机号码(手动填入)

string account = "";

//短信模板编号(手动填入)

string tpl_id = "";

//生成签名

StringBuilder source = new StringBuilder();

source.Append(account).Append("|")

.Append(tpl_id).Append("#")

.Append(TRADE_KEY);

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

//组织请求参数

StringBuilder smsRequestParam = new StringBuilder();

smsRequestParam.Append("account=").Append(account);

smsRequestParam.Append("&tpl_id=").Append(tpl_id);

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

Console.WriteLine(smsRequestParam);

//进行访问

try

{

var response = Post(REQUEST_URL, smsRequestParam.ToString());

Console.WriteLine(response);

//需要导入Newtonsoft.Json;

var result = JsonConvert.DeserializeObject(response);

if (SUCCESS.Equals(result.return_code))

{

//提交成功

Console.WriteLine("状态码:" + result.return_code);

Console.WriteLine("审核结果:" + result.status);

Console.WriteLine("审核信息:" + result.msg);

Console.Read();

}

else

{

//提交失败,具体状态码含义需查询文档进行判断

Console.WriteLine("错误状态码:" + result.return_code);

Console.Read();

}

}

catch (Exception e)

{

throw;

}

}

//发送短信请求方法

///

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

/// </summary>

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

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

/// <returns></returns>

public static string Md5Encrypt(string input)

{

var md5 = new MD5CryptoServiceProvider();

var buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(input));

var builder = new StringBuilder(32);

foreach (var t in buffer)

{

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

}

return builder.ToString();

}

/// <summary>

/// 使用webclient进行post请求

/// </summary>

/// <param name="url"></param>

/// <param name="data"></param>

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

/// <param name="proxy"></param>

/// <returns></<returns>

public static string Post(string url, string data, Encoding enc = null, WebProxy proxy = null)

{

if (enc == null) enc = Encoding.UTF8;

var postdata = Encoding.UTF8.GetBytes(data);

var webClient = new WebClient()

{

Encoding = enc,

Proxy = proxy

};

webClient.Headers.Add(HttpRequestHeader.KeepAlive, "False");

webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

var response = webClient.UploadData(url, "POST", postdata); //得到返回字符流

return enc.GetString(response); //解码

}

/// <summary>

/// 获取代理IP

/// </summary>

/// <param name="url"></<param>

/// <param name="port"></<param>

/// <param name="usr"></<param>

/// <param name="pwd"></<param>

/// <returns></<returns>

public static WebProxy GetProxy(string url, string port, string usr, string pwd)

{

try

{

var client = new WebClient { Encoding = Encoding.UTF8 };

var ip = client.DownloadString(url).Trim();

var proxy = new WebProxy($"{ip}:{port}")

{

Credentials = new NetworkCredential(usr, pwd)

};

return proxy;

}

catch

{

return null;

}

}

/// <summary>

/// 提交查询请求返回结果

/// </summary>

public class ResponseModel

{

/// <summary>

/// 返回码

/// </summary>

public string return_code { get; set; }

/// <summary>

/// 返回模板状态

/// </summary>

public string status { get; set; }

/// <summary>

/// 审核失败信息

/// </summary>

public string msg { get; set; }

}

}

}