using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;
namespace CSDemo
{
///
/// WebForm3 的摘要说明。
///
public partial class csharpDemo : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
[DllImport("MWGateway.dll")]//帐户登陆
private static extern int MongateConnect(string ip ,int port,string account ,string pwd );
[DllImport("MWGateway.dll")]//发送单向信息
private static extern int MongateSendSms(int clientsock,string mobi,string note);
[DllImport("MWGateway.dll")]//测试连接
private static extern int MongateTestConn(int clientsock);
[DllImport("MWGateway.dll")]//查询余额
private static extern int MongateQueryBalance(int clientsocket);
[DllImport("MWGateway.dll")]//查询使用
private static extern int MongateQueryUsed(int clientsocket);
[DllImport("MWGateway.dll")]//帐户充值
private static extern int MongateRecharge(int clientsocket,string cardno,string cardpwd);
[DllImport("MWGateway.dll")]//密码修改
private static extern int MongateChangePwd(int clientsocket,string account,string oldpwd,
string newpwd);
[DllImport("MWGateway.dll")]//断开连接
private static extern int MongateDisconnect(int clientsock);
[DllImport("MWGateway.dll")]//接收增值信息
private static extern int MongateVasGetSms(int clientsock, ref byte recvbuf );
[DllImport("MWGateway.dll")]//发送增值双向信息
private static extern int MongateVasSendSms(int clientsock,string feecode,string spno,
string opercode,string linkid,string mobis,string msg,int icount);
[DllImport("MWGateway.dll")]//接收客服信息
private static extern int MongateCsGetSms(int clientsock, ref byte recvbuf );
[DllImport("MWGateway.dll")]//发送客服双向信息
private static extern int MongateCsSendSms(int clientsock,string mobi,string note,int icount,
StringBuilder msgno);
[DllImport("MWGateway.dll")]//读取状态报告
private static extern int MongateCsGetStatusReport(int clientsock, ref byte recvbuf );
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
}
#endregion
protected void BtnSend_Click(object sender, System.EventArgs e)
{
//发送信息
if (Noconn()) return;
int myrec,clientsock=Convert.ToInt16(Session["clientsock"]);
if(CkVas.Checked ){
myrec=MongateVasSendSms(clientsock,TxtFee.Text.Trim(),TxtSport.Text.Trim(),"00********",
TxtLinkid.Text.Trim(),TxtPhone.Text.Trim(),TxtMsg.Text.Trim(),1);
if(myrec==1) TxtInfo.Text="发送增值信息成功\r\n"+TxtInfo.Text;
else TxtInfo.Text="发送增值信息失败\r\n"+TxtInfo.Text;
}else if(CkKf.Checked ){
StringBuilder strBld=new StringBuilder(40);
myrec=MongateCsSendSms(clientsock,TxtPhone.Text.Trim(),TxtMsg.Text.Trim(),1,strBld);
if(myrec==1) TxtInfo.Text="发送增值信息成功\r\n"+TxtInfo.Text;
else TxtInfo.Text="发送增值信息失败\r\n"+TxtInfo.Text;
TxtInfo.Text="信息编号:"+Convert.ToString(strBld)+"\r\n"+TxtInfo.Text;
}else{
myrec=MongateSendSms(clientsock,TxtPhone.Text.Trim(),TxtMsg.Text.Trim());
if(myrec==1) TxtInfo.Text="发送单向信息成功\r\n"+TxtInfo.Text;
else TxtInfo.Text="发送单向信息失败\r\n"+TxtInfo.Text;
}
}
private void BtnState_Click(object sender, System.EventArgs e)
{
//读取状态报告
if (Noconn()) return;
int clientsock=Convert.ToInt16(Session["clientsock"]);
byte[,] recv=new byte[500,255] ;
byte[] buf=new byte[255];
string Str;
int num,i,k;
if (clientsock > 0)
{
num = MongateCsGetStatusReport(clientsock, ref recv[0, 0]);
if (num > 0)
{
for( i = 0;i 0) {
for( i = 0;i 0){
TxtInfo.Text ="登陆成功 句柄:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text;
BtnDisConn.Enabled=true;
BtnLogin.Enabled=false;
}
else TxtInfo.Text="登陆失败 返回:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text;
}
private void BtnFee_Click(object sender, System.EventArgs e)
{
//查费
if (Noconn()) return;
int clientsock=Convert.ToInt16(Session["clientsock"]);
int myfee=-10;
if (clientsock>0)
{
myfee=MongateQueryBalance(clientsock);
if (myfee>0)
TxtInfo.Text="查询短信余额成功:"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
else
TxtInfo.Text="查询短信余额失败:返回"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
}
else TxtInfo.Text="网络连接已经断开,请重新登陆\r\n"+TxtInfo.Text;
}
protected void Page_Load(object sender, System.EventArgs e)
{
CkClick(0);
}
protected void BtnUsed_Click(object sender, System.EventArgs e) {
//查询使用
if (Noconn()) return;
int clientsock=Convert.ToInt16(Session["clientsock"]);
int myfee=-10;
if (clientsock>0) {
myfee=MongateQueryUsed(clientsock);
if (myfee>0)
TxtInfo.Text="查询使用成功:"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
else
TxtInfo.Text="查询使用失败:返回"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text;
}
else TxtInfo.Text="网络连接已经断开,请重新登陆\r\n"+TxtInfo.Text;
}
private bool Noconn(){
int clientsock=Convert.ToInt16(Session["clientsock"]);
if (clientsock <= 0){
TxtInfo.Text ="没有连接到任何服务器!!!\r\n"+TxtInfo.Text ;
return true;
}
else
return false;
}
protected void BtnDisConn_Click(object sender, System.EventArgs e) {
int clientsock=Convert.ToInt16(Session["clientsock"]);
MongateDisconnect(clientsock);
BtnDisConn.Enabled=false;
BtnLogin.Enabled=true;
Session["clientsock"]=0;
TxtInfo.Text ="断开连接,句柄:"+Convert.ToString(clientsock)+"\r\n"+TxtInfo.Text ;
}
protected void BtnTest_Click(object sender, System.EventArgs e) {
if (Noconn()) return;
int retu_state;
int clientsock=Convert.ToInt16(Session["clientsock"]);
if (clientsock > 0){
retu_state = MongateTestConn(clientsock);
if (retu_state ==1) TxtInfo.Text ="测试连接成功\r\n"+TxtInfo.Text;
else{
TxtInfo.Text ="测试连接成功\r\n"+TxtInfo.Text ;
clientsock = 0;
BtnLogin.Enabled = true;
BtnDisConn.Enabled = false;
}
}
}
protected void CkKf_CheckedChanged(object sender, System.EventArgs e) {
CkClick(2);
}
private void CkClick(int seltype){
if (seltype== 0){
if (CkSingle.Checked){
CkVas.Checked = false;
CkKf.Checked = false;
}
}
else if (seltype ==1){
if (CkVas.Checked){
CkSingle.Checked = false;
CkKf.Checked = false;
}
}
else{
if (CkKf.Checked){
CkVas.Checked = false;
CkSingle.Checked = false;
}
}
Showme(TxtSport,CkVas.Checked);
Showme(TxtFee,CkVas.Checked);
Showme(TxtLinkid,CkVas.Checked);
Showme(TxtCount,CkVas.Checked);
BtnRecv.Enabled=(CkVas.Checked)||(CkKf.Checked);
BtnState.Enabled=CkKf.Checked;
if(CkVas.Checked ) BtnSend.Text="增值信息";
else if (CkKf.Checked ) BtnSend.Text="客服信息";
else BtnSend.Text="单向信息";
}
private void Showme( TextBox edtmp,bool flag){
edtmp.Enabled=flag;
if (flag) edtmp.BackColor =SystemColors.Window;
else edtmp.BackColor =SystemColors.ScrollBar;
}
protected void CkSingle_CheckedChanged(object sender, System.EventArgs e) {
CkClick(0);
}
protected void CkVas_CheckedChanged(object sender, System.EventArgs e) {
CkClick(1);
}
protected void BtnLeft_Click(object sender, System.EventArgs e) {
//查询余额
if(Noconn()) return;
int clientsock=Convert.ToInt16(Session["clientsock"]);
int myfee;
myfee=MongateQueryBalance(clientsock);
if(myfee>=0) TxtInfo.Text ="查询余额成功,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
else TxtInfo.Text ="查询余额失败,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
}
protected void BtnChangePwd_Click(object sender, System.EventArgs e) {
//修改密码
if(Noconn()) return;
int clientsock=Convert.ToInt16(Session["clientsock"]);
int myfee;
myfee=MongateChangePwd(clientsock,TxtAccount.Text.Trim(),TxtPwd.Text.Trim(),
TxtNewPwd.Text.Trim());
if(myfee==1) TxtInfo.Text ="修改密码成功,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
else TxtInfo.Text ="修改密码失败,"+Convert.ToString(myfee)+"\r\n"+TxtInfo.Text ;
}
}
}