|
|
@@ -20,13 +20,22 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
20
|
20
|
private static string Smsuserid = ConfigHelper.GetValue("Smsuserid");
|
|
21
|
21
|
static string Smspwd = ConfigHelper.GetValue("Smspwd");
|
|
22
|
22
|
[AllowAnonymous]
|
|
23
|
|
- public ActionResult SendSms()
|
|
|
23
|
+ public ActionResult SendSms(string content,string mobile)
|
|
24
|
24
|
{
|
|
25
|
25
|
|
|
26
|
|
- var obj = AddSmS(0, "12346", "17839539537", "");
|
|
|
26
|
+ var obj = AddSmS(0, content, mobile, "");
|
|
27
|
27
|
return Success("", obj);
|
|
28
|
28
|
}
|
|
|
29
|
+ [AllowAnonymous]
|
|
|
30
|
+ public ActionResult SnedUrl()
|
|
|
31
|
+ {
|
|
|
32
|
+
|
|
|
33
|
+ var byStr = HttpUtility.UrlDecode("%e6%b5%8b%e8%af%95%e5%9b%9e%e5%a4%8d8");
|
|
|
34
|
+
|
|
29
|
35
|
|
|
|
36
|
+ return Success("", byStr);
|
|
|
37
|
+ }
|
|
|
38
|
+
|
|
30
|
39
|
/// <summary>
|
|
31
|
40
|
/// MD5加密
|
|
32
|
41
|
/// </summary>
|
|
|
@@ -61,7 +70,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
61
|
70
|
values.Add("content", Content);
|
|
62
|
71
|
values.Add("timestamp", currentTime);
|
|
63
|
72
|
|
|
64
|
|
- string responseString = HttpMethods .HttpPost (Smsurl, values.ToJson (), "application/json;charset=UTF-8");
|
|
|
73
|
+ string responseString = HttpMethods .HttpPost (Smsurl+ "/sms/v2/std/single_send", values.ToJson (), "application/json;charset=UTF-8");
|
|
65
|
74
|
JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
|
|
66
|
75
|
if (jo["result"].ToString() == "0")
|
|
67
|
76
|
{
|
|
|
@@ -100,34 +109,204 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
100
|
109
|
|
|
101
|
110
|
}
|
|
102
|
111
|
|
|
103
|
|
- public ActionResult GetReceive(string mobile, string smsContent, string sendTime, string addSerial)
|
|
|
112
|
+ public class mos
|
|
|
113
|
+ {/// <summary>
|
|
|
114
|
+ /// 平台流水号
|
|
|
115
|
+ /// </summary>
|
|
|
116
|
+ public long msgid { set; get; }
|
|
|
117
|
+ /// <summary>
|
|
|
118
|
+ /// 手机号
|
|
|
119
|
+ /// </summary>
|
|
|
120
|
+ public string mobile { set; get; }
|
|
|
121
|
+ /// <summary>
|
|
|
122
|
+ /// 完整的通道号
|
|
|
123
|
+ /// </summary>
|
|
|
124
|
+ public string spno { set; get; }
|
|
|
125
|
+ /// <summary>
|
|
|
126
|
+ /// 下行时填写的exno
|
|
|
127
|
+ /// </summary>
|
|
|
128
|
+ public string exno { set; get; }
|
|
|
129
|
+ /// <summary>
|
|
|
130
|
+ /// 上行返回的时间: YYYY-MM-DD HH:MM:SS
|
|
|
131
|
+ /// </summary>
|
|
|
132
|
+ public string rtime { set; get; }
|
|
|
133
|
+ /// <summary>
|
|
|
134
|
+ /// 短信内容:最大支持1000个字(含签名),一个字母或一个汉字都视为一个字。 编码方法:urlencode(UTF-8明文)
|
|
|
135
|
+ /// </summary>
|
|
|
136
|
+ public string content { set; get; }
|
|
|
137
|
+ }
|
|
|
138
|
+ [AllowAnonymous]
|
|
|
139
|
+ public ActionResult GetSMSReceive1()
|
|
|
140
|
+ {
|
|
|
141
|
+ var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
|
|
142
|
+ var currentTime = Convert.ToInt64(ts.TotalSeconds).ToString();
|
|
|
143
|
+ Dictionary<string, string> values = new Dictionary<string, string>();
|
|
|
144
|
+ values.Add("userid", Smsuserid);
|
|
|
145
|
+ values.Add("pwd", Md5(Smsuserid + "00000000" + Smspwd + currentTime));
|
|
|
146
|
+ values.Add("timestamp", currentTime);
|
|
|
147
|
+
|
|
|
148
|
+ string responseString = HttpMethods.HttpPost(Smsurl + "/sms/v2/std/get_mo", values.ToJson(), "application/json;charset=UTF-8");
|
|
|
149
|
+ JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
|
|
|
150
|
+ return Success("", responseString);
|
|
|
151
|
+
|
|
|
152
|
+ }
|
|
|
153
|
+ [AllowAnonymous]
|
|
|
154
|
+ public ActionResult GetSMSReceive()
|
|
104
|
155
|
{
|
|
105
|
156
|
|
|
106
|
|
- Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
|
|
107
|
|
- dModel.CallerNum = mobile.Trim();
|
|
108
|
|
- dModel.Content = smsContent.Trim();
|
|
109
|
|
- dModel.RecvModemIMEI = addSerial;
|
|
110
|
|
- // dModel.F_Name = workorderid;
|
|
111
|
|
- dModel.State = 1;
|
|
112
|
|
- // dModel.F_UserID = userId;
|
|
113
|
157
|
try
|
|
114
|
158
|
{
|
|
115
|
|
- dModel.RecvTime = DateTime.Parse(addSerial);
|
|
|
159
|
+ var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
|
|
160
|
+ var currentTime = Convert.ToInt64(ts.TotalSeconds).ToString();
|
|
|
161
|
+ Dictionary<string, string> values = new Dictionary<string, string>();
|
|
|
162
|
+ values.Add("userid", Smsuserid);
|
|
|
163
|
+ values.Add("pwd", Md5(Smsuserid + "00000000" + Smspwd + currentTime));
|
|
|
164
|
+ values.Add("timestamp", currentTime);
|
|
|
165
|
+ string responseString = HttpMethods.HttpPost(Smsurl + "/sms/v2/std/get_mo", values.ToJson(), "application/json;charset=UTF-8");
|
|
|
166
|
+ JObject jo = (JObject)JsonConvert.DeserializeObject(responseString);
|
|
|
167
|
+ if (jo["result"].ToString() == "0")
|
|
|
168
|
+ {
|
|
|
169
|
+
|
|
|
170
|
+ List<mos> moslist = JsonConvert.DeserializeObject<List<mos>>(jo["mos"].ToString());
|
|
|
171
|
+ if (moslist != null && moslist.Count > 0)
|
|
|
172
|
+ {
|
|
|
173
|
+ foreach (var it in moslist)
|
|
|
174
|
+ {
|
|
|
175
|
+ var RecvSMS = new BLL.T_SMS_RecvSMS().GetModelList($"RecvModemIMEI='{it.msgid.ToString()}'");
|
|
|
176
|
+ if (RecvSMS != null && RecvSMS.Count > 0)
|
|
|
177
|
+ continue;
|
|
|
178
|
+ Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
|
|
|
179
|
+ dModel.CallerNum = it.mobile;
|
|
|
180
|
+ dModel.Content = HttpUtility.UrlDecode(it.content);
|
|
|
181
|
+ dModel.RecvModemIMEI = it.msgid.ToString();
|
|
|
182
|
+ dModel.State = 1;
|
|
|
183
|
+ try
|
|
|
184
|
+ {
|
|
|
185
|
+ dModel.RecvTime = DateTime.Parse(it.rtime);
|
|
|
186
|
+ }
|
|
|
187
|
+ catch
|
|
|
188
|
+ {
|
|
|
189
|
+ dModel.RecvTime = DateTime.Now;
|
|
|
190
|
+ }
|
|
|
191
|
+ int b = new BLL.T_SMS_RecvSMS().Add(dModel);
|
|
|
192
|
+ if (b > 0)
|
|
|
193
|
+ {
|
|
|
194
|
+ return Success("获取成功");
|
|
|
195
|
+ }
|
|
|
196
|
+ else
|
|
|
197
|
+ {
|
|
|
198
|
+ return Error("获取失败");
|
|
|
199
|
+ }
|
|
|
200
|
+ }
|
|
|
201
|
+ return Error("暂无数据");
|
|
|
202
|
+ }
|
|
|
203
|
+ else
|
|
|
204
|
+ return Error("暂无数据1");
|
|
|
205
|
+
|
|
|
206
|
+ }
|
|
|
207
|
+ else
|
|
|
208
|
+ {
|
|
|
209
|
+ string desc = jo["result"].ToString();
|
|
|
210
|
+ return Error("发送失败:错误码" + "(" + desc + ")");
|
|
|
211
|
+
|
|
|
212
|
+ }
|
|
116
|
213
|
}
|
|
117
|
|
- catch
|
|
|
214
|
+ catch (Exception e)
|
|
118
|
215
|
{
|
|
119
|
|
- dModel.RecvTime = DateTime.Now;
|
|
|
216
|
+ return Error("发送失败:" + "(" + e.Message + ")");
|
|
120
|
217
|
}
|
|
121
|
218
|
|
|
122
|
|
- int b = new BLL.T_SMS_RecvSMS().Add(dModel);
|
|
123
|
|
- if (b > 0)
|
|
124
|
|
- {
|
|
125
|
|
- return Success("获取成功");
|
|
126
|
|
- }
|
|
127
|
|
- else
|
|
|
219
|
+
|
|
|
220
|
+ }
|
|
|
221
|
+
|
|
|
222
|
+
|
|
|
223
|
+
|
|
|
224
|
+
|
|
|
225
|
+
|
|
|
226
|
+
|
|
|
227
|
+ [AllowAnonymous]
|
|
|
228
|
+ public ActionResult GetReceive()
|
|
|
229
|
+ {
|
|
|
230
|
+
|
|
|
231
|
+ StreamReader reader = new StreamReader( RequestString .GetInputStream());
|
|
|
232
|
+ var postString = reader.ReadToEnd();
|
|
|
233
|
+
|
|
|
234
|
+ JObject result = null;
|
|
|
235
|
+
|
|
|
236
|
+ LogHelper.Warn(postString);
|
|
|
237
|
+ result = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(postString);
|
|
|
238
|
+
|
|
|
239
|
+ string userid= result["userid"].ToString();
|
|
|
240
|
+ string seqid = result["seqid"].ToString();
|
|
|
241
|
+ string timestamp = result["timestamp"].ToString();
|
|
|
242
|
+ string pwd = result["pwd"].ToString();
|
|
|
243
|
+ string mos = result["mos"].ToString();
|
|
|
244
|
+ if (userid!= Smsuserid)
|
|
|
245
|
+ {
|
|
|
246
|
+ var obj1 =
|
|
|
247
|
+ new
|
|
|
248
|
+ {
|
|
|
249
|
+ cmd = "MO_RESP",
|
|
|
250
|
+ seqid = seqid,
|
|
|
251
|
+ result = "-100001"
|
|
|
252
|
+ };
|
|
|
253
|
+ return Content (obj1.ToJson());
|
|
|
254
|
+ }
|
|
|
255
|
+
|
|
|
256
|
+ var password = Md5(Smsuserid + "00000000" + Smspwd + timestamp);
|
|
|
257
|
+
|
|
|
258
|
+ if (password != pwd)
|
|
|
259
|
+ {
|
|
|
260
|
+ var obj2 =
|
|
|
261
|
+ new
|
|
|
262
|
+ {
|
|
|
263
|
+ cmd = "MO_RESP",
|
|
|
264
|
+ seqid = seqid,
|
|
|
265
|
+ result = "-100001"
|
|
|
266
|
+ };
|
|
|
267
|
+ LogHelper.Warn(pwd);
|
|
|
268
|
+ return Content(obj2.ToJson());
|
|
|
269
|
+ }
|
|
|
270
|
+ LogHelper.Warn(mos);
|
|
|
271
|
+ if (!string .IsNullOrEmpty (mos))
|
|
128
|
272
|
{
|
|
129
|
|
- return Error("获取失败");
|
|
|
273
|
+ List<mos> moslist = JsonConvert.DeserializeObject<List<mos>>(mos);
|
|
|
274
|
+ if (moslist != null && moslist.Count > 0)
|
|
|
275
|
+ {
|
|
|
276
|
+ foreach (var it in moslist)
|
|
|
277
|
+ {
|
|
|
278
|
+ Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
|
|
|
279
|
+ dModel.CallerNum = it.mobile;
|
|
|
280
|
+ dModel.Content = it.content;
|
|
|
281
|
+ dModel.RecvModemIMEI = it.msgid.ToString();
|
|
|
282
|
+ dModel.State = 1;
|
|
|
283
|
+ try
|
|
|
284
|
+ {
|
|
|
285
|
+ dModel.RecvTime = DateTime.Parse(it.rtime);
|
|
|
286
|
+ }
|
|
|
287
|
+ catch
|
|
|
288
|
+ {
|
|
|
289
|
+ dModel.RecvTime = DateTime.Now;
|
|
|
290
|
+ }
|
|
|
291
|
+ int b = new BLL.T_SMS_RecvSMS().Add(dModel);
|
|
|
292
|
+
|
|
|
293
|
+ }
|
|
|
294
|
+
|
|
|
295
|
+ }
|
|
130
|
296
|
}
|
|
|
297
|
+
|
|
|
298
|
+ var obj =
|
|
|
299
|
+ new
|
|
|
300
|
+ {
|
|
|
301
|
+ cmd = "MO_RESP",
|
|
|
302
|
+ seqid = seqid,
|
|
|
303
|
+ result = "0"
|
|
|
304
|
+ };
|
|
|
305
|
+ return Content(obj.ToJson());
|
|
|
306
|
+
|
|
|
307
|
+
|
|
|
308
|
+
|
|
|
309
|
+
|
|
131
|
310
|
}
|
|
132
|
311
|
/// <summary>
|
|
133
|
312
|
/// 指定Post地址
|
|
|
@@ -187,7 +366,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
187
|
366
|
int pageindex = 1;
|
|
188
|
367
|
string strpagesize = RequestString.GetQueryString("pagesize");
|
|
189
|
368
|
int pagesize = 10;
|
|
190
|
|
- sql += " and State= 0 ";
|
|
|
369
|
+ sql += " and State= '"+ State + "' ";
|
|
191
|
370
|
if (strtel.Trim() != "" && strtel != "undefined")
|
|
192
|
371
|
{
|
|
193
|
372
|
sql += " and CallerNum= '" + strtel.Trim() + "' ";
|