📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "EMEATLLib_OCX"
#pragma link "EMESENDERLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WideString UserName=Edit1->Text; //用户名
WideString PassWord=Edit4->Text; //密码
WideString ServiceID=Edit8->Text; //业务代码
WideString ServiceType="test"; //业务代码一
WideString IPAddress=Edit2->Text; //本地ip地址
String Port=Edit5->Text; //本地端口号
WideString LogIP=Edit3->Text; //业务服务器ip地址
String LogPort=Edit6->Text; //业务服务器端口
WideString ServiceType2="123"; //业务代码二
long Fee=300; //费率
long FeeType = 3 ; //默认为1
long logport;
logport=StrToInt(LogPort);
long port;
port=StrToInt(Port);
EmeSmsSvr1->Port=port;
EmeSmsSvr1->LoginSvrIPAddr=LogIP;
EmeSmsSvr1->LoginSvrPort=logport;
EmeSmsSvr1->Actived=true; //激活服务
EmeSmsSvr1->SetFeeInfo(ServiceID,FeeType,Fee); //费率设置,如果每次业务请求的费率都不同,请用evt对象的属性操作,否则,可用此函数设置。
try
{
EmeSmsSvr1->ServiceLogin(UserName,PassWord,1,ServiceType,ServiceType2,IPAddress,port) ;
}
catch(const Exception &E)
{
AnsiString str8=E.Message;
Memo1->Lines->Add(str8);
}
//登录信息
AnsiString str="用户"+UserName+"登录"+" "+"请求登录服务器:"+IPAddress+" 监听端口:"+Port;
AnsiString str2="登录服务器:"+LogIP+" 发送申请端口:"+LogPort;
Memo1->Lines->Clear();
Memo1->Lines->Add(str);
Memo1->Lines->Add(str2);
String dateS;
dateS = GetLocalTime();
Memo1->Lines->Add(dateS);
Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
String __fastcall TForm1::GetLocalTime()
{
AnsiString DateTmp = DateToStr(Date());
AnsiString TimeTmp = TimeToStr(Time());
String date;
date = DateTmp+" "+TimeTmp;
return date;
}
//--------------------------------------------------------------------------
void __fastcall TForm1::EmeSmsSvr1UserRequest(TObject *Sender,
Variant *evt)
{
String Stemp;
String TeleCode;
String Log;
String date;
String Return_Str;
//String Return_StrSuccess ="感谢您的参与,您将有机会参加下月16日的抽奖活动!";
//String Return_StrError = "对不起!无您所投的 %s 选手,正确投票请回复3位数字选手编号。";
//String Return_StrTwo = "对不起!您已经登记过了,无须再次登记,谢谢您的参与!";
String LinkID;
String stmp;
String ServiceType;
String First;
int indx;
int num;
int SendType;
String SourceMobile = Edit7->Text;
SAFEARRAY *pSa;
VARIANT *pVariant;
pSa=evt->parray;
SafeArrayAccessData(pSa, (void**)&pVariant);
Stemp=pVariant[emeRequestStr].bstrVal; //获取上行短信信息
TeleCode=pVariant[emeUserID].bstrVal; //获取上行短信来源
LinkID = pVariant[emeLinkID].bstrVal; //获取linkid
ServiceType = Edit8->Text;
indx = Stemp.Pos(" ");
Stemp=Stemp.SubString(indx+1,Stemp.Length());
Stemp=Stemp.UpperCase();
Stemp=Stemp.Trim();
TeleCode=TeleCode.Trim();
num=Stemp.Pos("+");
Return_Str ="0578或05781莲都,05782青田,05783缙云,05784龙泉,05785庆元,05786云和,05787景宁,05788松阳,05789遂昌,05780学校。例如:松阳用户,回复05788,以此方法类推";
int CLength=Stemp.Length();
if (CLength==4)
{
First=Stemp.SubString(0,4);
}
else if (CLength==5)
{
First=Stemp.SubString(0,5);
}
Find_User(TeleCode);
if (Flag==1)
{
if (Stemp == "QX")
{
DelRecord(TeleCode);
Return_Str = "【移动商讯通】提醒您:您取消了商讯通业务,请至丽水移动商城(中东路148号)办理退卡手续!询13905780800";
}
else if(Stemp.SubString(0,2)=="SS")
{
Update_SS(TeleCode);
Return_Str = "请您编辑内容:姓名+地址 发送至09166,系统根据您提供的地址5个工作日内给你提供邮寄!如有问题请咨询:13905780800";
}
else if (num>0)
{
String Name=Stemp.SubString(0,num-1);
String Addr=Stemp.SubString(num+1,Stemp.Length());
UpRecord(TeleCode,Name,Addr);
Return_Str ="您的姓名:"+Name+" 地址:"+Addr+" 已经被记录,谢谢您的配合!";
}
else if(Stemp.SubString(0,2)=="BG")
{
Find_User(TeleCode);
Return_Str ="【移动商讯通】地址变更:您旧地址为:"+Address+" 请回复姓名+地址即可完成变更!" ;
}
else if(Stemp=="8888")
{
AnsiString DateTmp = Now().FormatString("mm");
String date=DateTmp;
Return_Str = "【商讯通" + date + "月电子优惠券】凭此短信或生活卡在加盟商户享受会员优惠。详细加盟商户信息请编辑0发送至09166,详询13905780800";
}
else if(Stemp=="CX")
{
try
{
String sql;
Query1->Close();
Query1->SQL->Clear();
sql = "select * from sjuser where sj='" + TeleCode + "'";
Query1->SQL->Text = sql;
Query1->Active = true;
if (!Query1->Eof)
{
Return_Str = "姓名:"+Query1->FieldByName("LoginName")->AsString+" ";
Return_Str = Return_Str+"卡号:"+Query1->FieldByName("CardNumber")->AsString+" ";
Return_Str = Return_Str+"地址:"+Query1->FieldByName("Address")->AsString+" ";
Return_Str = Return_Str+"积分:"+Query1->FieldByName("Jifen")->AsString;
}
}
catch(const Exception &E)
{
AnsiString str8=E.Message;
Memo1->Lines->Add(str8);
}
}
else
{
try
{
String sql;
Query1->Close();
Query1->SQL->Clear();
sql = "select business from sj114 where userid='" + Stemp + "'";
Query1->SQL->Text = sql;
Query1->Active = true;
if (!Query1->Eof)
{
Return_Str = Query1->FieldByName("business")->AsString;
}
else
{
Return_Str = "您已经定制了商讯通,编辑短信8888至09166下载电子会员卡,凭卡享受丽水众多加盟商家提供的优惠服务!详询13905780800";
}
}
catch(const Exception &E)
{
AnsiString str8=E.Message;
Memo1->Lines->Add(str8);
}
}
}
else if (First.Length()>=4)
{
if (First.SubString(0,4)=="0578")
{
ReRecord(TeleCode,First);
if(Flag==1)
{
Return_Str = "【移动商讯通】欢迎加入:请至中东路148号领会员卡(寄送请回复SS),凭卡享受300家商户会员优惠,回复0查询加盟商信息,询13905780800";
}
else
{
Return_Str = "您已经定制了商讯通,编辑短信8888至09166下载电子会员卡,凭卡享受丽水众多加盟商家提供的优惠服务!详询13905780800";
}
}
}
String str="收到信息:"+ Stemp;
String str1="发送者:"+TeleCode;
String str2="回复信息:"+Return_Str;
Memo1->Lines->Add(" ");
Memo1->Lines->Add("//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ");
Memo1->Lines->Add(" ");
Memo1->Lines->Add(str);
Memo1->Lines->Add(str1);
Memo1->Lines->Add(str2);
String dateS;
dateS = GetLocalTime();
Memo1->Lines->Add(dateS);
AddHistory(TeleCode,Stemp,SourceMobile,"mo");
AddHistory(TeleCode,Return_Str,SourceMobile,"mt");
Sleep(2000);
SendReturnMessage(TeleCode,Return_Str,LinkID,ServiceType);
return;
}
//---------------------------------------------------------------------------
int __fastcall TForm1::SendReturnMessage(String usid,String message,String LinkId,String ServiceTypeS)
{
WideString mobile;
WideString messagetmp;
WideString IP;
WideString SourceMobile;
WideString ServiceType;
WideString LinkIdtmp;
String FeeType_str;
short FeeType;
short Fee;
long port;
Fee = 300;
FeeType = 3;
ServiceType = ServiceTypeS;
LinkIdtmp = LinkId;
SourceMobile = Edit7->Text;
IP = Edit3->Text;
EmeSmsSender1->SvrAddr = IP;
port= StrToInt(Edit6->Text);
EmeSmsSender1->SvrPort = port;
EmeSmsSender1->SetSourceMobile(SourceMobile); //设置源号码
EmeSmsSender1->UserName = Edit1->Text; //用户名
EmeSmsSender1->Password = Edit4->Text; //密码
EmeSmsSender1->ServiceType = ServiceType ; //业务类型
EmeSmsSender1->SetFeeProperty(ServiceType,Fee,FeeType); //记费设置
EmeSmsSender1->SetLinkId(LinkIdtmp);
mobile = usid;
mobile = Trim(mobile); //目的号码
messagetmp = message;
messagetmp = Trim(messagetmp); //信息文本
EmeSmsSender1->Send(1,mobile,messagetmp); //发送信息
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DelRecord(String Mobile)
{
try
{
String sql;
String dateS;
dateS = GetLocalTime();
Query1->Close();
Query1->SQL->Clear();
sql = "select * from sjuser where sj='" + Mobile + "'";
Query1->SQL->Text = sql;
Query1->Active = true;
if(!Query1->Eof)
{
String addr =Query1->FieldByName("address")->AsString;
String usergroup =Query1->FieldByName("usergroup")->AsString;
String LoginName =Query1->FieldByName("LoginName")->AsString;
String CardNumber =Query1->FieldByName("CardNumber")->AsString;
String JIfen =Query1->FieldByName("JIfen")->AsString;
String Sex =Query1->FieldByName("Sex")->AsString;
Query1->Close();
Query1->SQL->Clear();
sql = "insert into sjuserqx(sj,usergroup,LoginName,CardNumber,JIfen,Sex,address,insertdate) values('"+
Mobile +"','"+ usergroup +"','"+ LoginName +"','"+ CardNumber +"','"+ JIfen +"','"+ Sex +"','"+ addr +"','"+dateS+"')";
Query1->SQL->Text = sql;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -