111 lines
3.8 KiB
C#
111 lines
3.8 KiB
C#
using CRM.Core.BLL.Util;
|
|
using CRM.Core.CoreService.PkgSms.InterfaceModel;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web;
|
|
|
|
|
|
namespace CRM.Core.CoreService.PkgSms.InterfaceExec
|
|
{
|
|
public class YiZhengSms2 : IMsgSend
|
|
{
|
|
string account = "";
|
|
string pwd = "";
|
|
string url = "";
|
|
public YiZhengSms2(string _account = "", string _password = "")
|
|
{
|
|
var config = new YiZhengConfig2();
|
|
account = config.account;
|
|
pwd = config.pwd;
|
|
url = config.url;
|
|
if (!string.IsNullOrEmpty(_account) && !string.IsNullOrEmpty(_password))
|
|
{
|
|
pwd = _password;
|
|
account = _account;
|
|
}
|
|
}
|
|
public ReturnResult Execute(string[] mobiles, string msg, string typeCode)
|
|
{
|
|
return Send(mobiles, msg);
|
|
}
|
|
|
|
public decimal queryAmt()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
ReturnResult Send(string[] mobiles, string msg)
|
|
{
|
|
var mobilesStr = string.Join(",", mobiles);
|
|
var result = new ReturnResult();
|
|
result.SendStr = mobilesStr;
|
|
result.ReturnStr = mobilesStr;
|
|
try
|
|
{
|
|
//WX.CRM.Common.LogHelper.Error("url:" + url);
|
|
var list = new List<SmsDto>();
|
|
foreach (var item in mobiles)
|
|
{
|
|
list.Add(new SmsDto() { mobile = item, message = msg });
|
|
}
|
|
var json = JsonConvert.SerializeObject(list);
|
|
SecurityHelper sHelper = new SecurityHelper();
|
|
//var para = sHelper.createSignEncodingStr(json);
|
|
string clientid = "UPWEBSITE";
|
|
//string key = "content={0}&clientid=gd_crm&sign={1}";
|
|
string jiami = sHelper.encyptData(clientid, json);
|
|
string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8);
|
|
string jiasuo = sHelper.signData(clientid, jiami);
|
|
string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8);
|
|
|
|
var para = new PutSmsDto() { clientid = clientid, content = jiami1, sign = jiasuo1 };
|
|
|
|
WebClient webClient = new WebClient();
|
|
webClient.Encoding = Encoding.UTF8;
|
|
webClient.Headers.Add("Content-Type", "application/json");
|
|
//LogHelper.Info("url:" + url);
|
|
//LogHelper.Info("para:" + JsonConvert.SerializeObject(para));
|
|
var jsonResult = webClient.UploadString(url, "POST", JsonConvert.SerializeObject(para));
|
|
|
|
//var jsonResult = Utility.GetData(url, para, Encoding.UTF8);
|
|
var objResult = JsonConvert.DeserializeObject<SmsResult>(jsonResult);
|
|
if (objResult.result)
|
|
{
|
|
result.submitStatus = SubmitStatus.success;
|
|
}
|
|
else
|
|
{
|
|
result.submitStatus = SubmitStatus.fail;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
result.submitStatus = SubmitStatus.fail;
|
|
WX.CRM.Common.LogHelper.Error("YiZhengSms2.Send:" + ex.Message + ex.StackTrace);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private class SmsDto
|
|
{
|
|
public string message { get; set; }
|
|
public string mobile { get; set; }
|
|
}
|
|
private class SmsResult
|
|
{
|
|
public bool result { get; set; }
|
|
public int retcode { get; set; }
|
|
}
|
|
|
|
private class PutSmsDto
|
|
{
|
|
public string content { get; set; }
|
|
public string clientid { get; set; }
|
|
public string sign { get; set; }
|
|
}
|
|
}
|
|
}
|