代码描述:基于C#的发送短信接口调用示例

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


 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

using Newtonsoft.Json;

using System;

using System.Collections.Generic;

using System.IO;

using System.Net;

using System.Security.Cryptography;

using System.Text;

namespace YZX_Demo

{

//短信发送示例代码

class YunZhiXinChargeDemo

{

/// <summary>

/// 请求地址

/// </summary>

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

/// <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 mobile = "";

//商户提交的订单号(商户保证其唯一性)(手动填入)

string orderId = "";

//用户服务器时间戳(13位)

long time = TimeStamp() * 1000;

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

string tplId = "";

//短信所需传入的参数,格式见文档(手动填入)

string param = "";

//生成签名

StringBuilder source = new StringBuilder();

source.Append(mobile).Append("|")

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

.Append(time).Append("|")

.Append(tplId).Append("#")

.Append(TRADE_KEY);

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

//组织请求参数

StringBuilder smsRequestParam = new StringBuilder();

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

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

smsRequestParam.Append("&order_id=").Append(orderId);

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

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

smsRequestParam.Append("&params=").Append(param);

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

Console.WriteLine(smsRequestParam);

//进行访问

try

{

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

Console.WriteLine(response);

//需要导入Newtonsoft.Json;

var result = JsonConvert.DeserializeObject<ResponseModel>(response);

if (SUCCESS.Equals(result.return_code))

{

//提交成功

}

else {

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

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

Console.Read();

}

}

catch (Exception e)

{

throw;

}

}

//发送短信请求方法

private static void requestCharge(Dictionary<string, string> smsRequestParam) {

}

/// <summary>

/// 对字符串进行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>

/// 时间戳

/// </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>

/// 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>

/// 提交充值请求返回结果

/// </summary>

public class ResponseModel

{

/// <summary>

/// 返回码

/// </summary>

public string return_code { get; set; }

/// <summary>

/// 返回订单号

/// </summary>

public string order_id { get; set; }

}

}

}