网上支付

发布时间: 2007-05-21 09:41    作者: 未知    来源: 未知    浏览:    评论

/* written by Jaron(贾俊) ,2003-11-04 */
/* 原出处:B/S WEB技术中文网 http://www.jaron.cn ;*/
/* 欢迎访问我的网站: http://www.jaron.cn http://blog.jaron.cn*/
/* 如对本文有疑问,请在网站留言 /*
/* 转载请注明出处和保留此版权信息 */
/* 欢迎使用SiteManager网站管理系统 http://sitemanager.cnzone.net http://demo.jaron.cn ; */

// class1.cs

using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace yzstudysrv
{
?///
?/// Class1 的摘要说明。
?///
?class Class1
?{
??///
??/// 应用程序的主入口点。
??///
??///

??private const int portnum=11000;
??????? private const string socketserver_address="192.168.1.223";
??[STAThread]
??static void Main(string[] args)
??{
???//
???//
???// TODO: 在此处添加代码以启动应用程序
???bool done=false;
???TcpListener listener=new TcpListener(IPAddress.Parse(socketserver_address),portnum);
???
???//TcpListener listener=new TcpListener(portnum);
???string sendbuff="999000";
???sqlaccess cszj;
???byte[] sbuff;
???while(!done)
???{
????listener.Start();
????Console.WriteLine("waiting");
????//TcpClient client=listener.AcceptTcpClient();
????TcpClient client=listener.AcceptTcpClient();
????Console.WriteLine("connected");
????NetworkStream ns=client.GetStream();
????byte[] sbytes=new byte[client.ReceiveBufferSize];
????ns.Read(sbytes,0,(int)client.ReceiveBufferSize);
????string rec=Encoding.Unicode.GetString(sbytes);
???????????????? Console.WriteLine(rec);
????if(Convert.ToInt32(rec.Substring(0,3))!=rec.Length)
?????sbuff=Encoding.Unicode.GetBytes("888111");//包长不对
????
????else
????{
???
????
?????cszj=new sqlaccess();
?????if(rec.Substring(3,3)=="001")//查询
?????{
??????cszj.getquer(rec,sendbuff);
??????sbuff=Encoding.Unicode.GetBytes(sendbuff);
?????}

???
?????else
??????if(rec.Substring(3,3)=="002")//交费
?????{
??????cszj.getjfpack(rec,sendbuff);
??????sbuff=Encoding.Unicode.GetBytes(sendbuff);
?????}//hc
?????else
??????if(rec.Substring(3,3)=="003")//冲帐
?????{
??????cszj.getczpack(rec,sendbuff);
?????
??????sbuff=Encoding.Unicode.GetBytes(sendbuff);
?????}
?????else
??????sbuff=Encoding.Unicode.GetBytes("999000");//出错
????}
????try
????{
?????ns.Write(sbuff,0,sbuff.Length);
?????ns.Close();
?????client.Close();
????}
????catch (Exception er)
????{

?????Console.WriteLine(er.ToString());
????}


???????????
????listener.Stop();
????//
???}
??}
?}
}


//sqlaccess.cs

using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data.SqlClient;
//using System.Data.
//using System.Data.SqlClient.SqlTransaction;

namespace yzstudysrv
{
?///
?/// sqlaccess 的摘要说明。
?///
?public class sqlaccess : System.ComponentModel.Component
?{
??private System.Data.SqlClient.SqlConnection sqlConnection1;
??private System.Data.SqlClient.SqlCommand sqlCommand1;
??private System.Data.SqlClient.SqlDataReader myreader;
??
??///
??/// 必需的设计器变量。
??///
??private System.ComponentModel.Container components = null;

??
??public sqlaccess(System.ComponentModel.IContainer container)
??{
???///
???/// Windows.Forms 类撰写设计器支持所必需的
???///
???container.Add(this);
???InitializeComponent();

???//
???// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
???//
??}

??public sqlaccess()
??{
???///
???/// Windows.Forms 类撰写设计器支持所必需的
???///
???InitializeComponent();

???//
???// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
???//
??}

??///
??/// 清理所有正在使用的资源。
??///
??protected override void Dispose( bool disposing )
??{
???if( disposing )
???{
????if(components != null)
????{
?????components.Dispose();
????}
???}
???base.Dispose( disposing );
??}


??#region 组件设计器生成的代码
??///
??/// 设计器支持所需的方法 - 不要使用代码编辑器修改
??/// 此方法的内容。
??///
??private void InitializeComponent()
??{
???this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
???this.sqlCommand1 = new System.Data.SqlClient.SqlCommand();
???//
???// sqlConnection1
???//
???this.sqlConnection1.ConnectionString = "workstation id=\"BOCYZ-LYQ\";packet size=4096;user id=sa;data source=DB;persist sec" +
????"urity info=False;initial catalog=YCEDU";
???this.sqlConnection1.InfoMessage += new System.Data.SqlClient.SqlInfoMessageEventHandler(this.sqlConnection1_InfoMessage);
???//
???// sqlCommand1
???//
???this.sqlCommand1.Connection = this.sqlConnection1;

??}
??#endregion
??//取查询信息
??public void getquer(string recbuff, string sndbuff)
??{
???string billid=recbuff.Substring(61,16);
???string ordertotal,flag,name;
???this.sqlConnection1.Open();//打开连接
??????
???SqlTransaction myTrans;
???// Start a local transaction
???myTrans =sqlConnection1.BeginTransaction(IsolationLevel.ReadCommitted,"sqlTransaction");
???// Must assign both transaction object and connection
???// to Command object for a pending local transaction
???sqlcommand1.Connection = sqlConnection1;
???sqlCommand1.Transaction = myTrans;
???try
???{
????this.sqlCommand1.CommandText="select name, OrderTotal,DeductResaultSymbol from tblOrderExpenses where Billid='"+billid+"'";
????myreader=this.sqlCommand1.ExecuteReader();
????myTrans.Commit();
???}?
???catch(Exception e)
???{
????try
????{
?????myTrans.Rollback("sqlTransaction");
????}
????catch (SqlException ex)
????{
?????if (myTrans.Connection != null)
?????{
??????Console.WriteLine("An exception of type " + ex.GetType() +
???????" was encountered while attempting to roll back the transaction.");
?????}
????}
???
????Console.WriteLine("An exception of type " + e.GetType() +
?????" was encountered while inserting the data.");
????Console.WriteLine("Neither record was written to database.");
???}
???finally
???{
????sqlConnection1.Close();
???}
??}

//??if(myreader.Read())
//???{
//????name=myreader["name"].ToString();
//????ordertotal=myreader["ordertotal"].ToString();
//????flag=myreader["DeductResaultSymbol"].ToString();
//????sndbuff=recbuff.Substring(0,61)+strpack(name,10)+strpack(ordertotal,7)+flag;
//???}
//???else
//?????? sndbuff="999000";
//????myreader.Close();
//????this.sqlConnection1.Close();
//??
??//democode
??public void RunSqlTransaction(string myConnString)
??{
???SqlConnection myConnection = new SqlConnection(myConnString);
???myConnection.Open();//打开连接

???SqlCommand myCommand = myConnection.CreateCommand();
???SqlTransaction myTrans;

???// Start a local transaction
???myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted,"SampleTransaction");
???// Must assign both transaction object and connection
???// to Command object for a pending local transaction
???myCommand.Connection = myConnection;
???myCommand.Transaction = myTrans;

???try
???{
????myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
????myCommand.ExecuteNonQuery();
????myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
????myCommand.ExecuteNonQuery();
????myTrans.Commit();
????Console.WriteLine("Both records are written to database.");
???}
???catch(Exception e)
???{
????try
????{
?????myTrans.Rollback("SampleTransaction");
????}
????catch (SqlException ex)
????{
?????if (myTrans.Connection != null)
?????{
??????Console.WriteLine("An exception of type " + ex.GetType() +
???????" was encountered while attempting to roll back the transaction.");
?????}
????}
???
????Console.WriteLine("An exception of type " + e.GetType() +
?????" was encountered while inserting the data.");
????Console.WriteLine("Neither record was written to database.");
???}
???finally
???{
????myConnection.Close();
???}
??}

??????? //冲帐
??public void getczpack(string recbuff, string sndbuff)
??{
???string billid=recbuff.Substring(61,16);
???string bankwater=recbuff.Substring(77,16);
???
???this.sqlConnection1.Open();
???this.sqlCommand1.CommandText ="update tblOrderExpenses set DeductResaultSymbol='2' where Billid='"+billid+"'and DeductResaultSymbol='2'"
????+" and bankwater='"+bankwater+"'";
???int k=0;
???k=this.sqlCommand1.ExecuteNonQuery();
???if(k==1)
??
????sndbuff=recbuff.Substring(0,61)+"0";
???
???else
????sndbuff="999000";
???
???this.sqlConnection1.Close();
??
??}
??//交费
??public void getjfpack(string recbuff, string sndbuff)
??{
???string billid=recbuff.Substring(61,16);
???string accno=recbuff.Substring(77,19);
???string amt=recbuff.Substring(96,7);
???string cbflag=recbuff.Substring(103,1);
???string bankid=recbuff.Substring(10,3);
???string sbranchno=recbuff.Substring(13,10);
???string DTdeduct=DateTime.Now.ToString("yyyyMMdd");
???string AreaId="0514";
???string bankwater=recbuff.Substring(45,16);
???int k=0;
???
???this.sqlConnection1.Open();
???this.sqlCommand1.CommandText ="update tblOrderExpenses set BankId='"+bankid+"', ServiceStationId='"
????+sbranchno+"',DTdeduct='"+DTdeduct+"',AreaID='"+AreaId+"',DeductResaultSymbol='1',BargainerSymbol='"
????+cbflag+"',bankwater='"+bankwater+"' where Billid='"+billid+"' and OrderTotal='"+amt+"' and DeductResaultSymbol = '0'";
???k=this.sqlCommand1.ExecuteNonQuery();
???if(k==1)
????? sndbuff=recbuff.Substring(0,61)+"0";
???else
????sndbuff="999000";
???
???this.sqlConnection1.Close();
??
??}
??//字符串补位函数
?
??public string strpack(string tmp,int length)
??{
??????????????????????????????????????????
???string atmp;
???int k=0;
???int t=0;
???for(int i=0;i???{??
????if(tmp[i]>0x255)
????{
?????k++;
?????t++;
????}
????t++;
????if(t>length)
?????break;
???}
???int alen=tmp.Length+k;
???if(alen??????????????????
???{
????atmp=new String(' ',length-alen);
??
????return tmp+atmp;
??
???????
???}
???else
???
????return tmp.Substring(0,length-k);
??????????
?????
??

??}

??private void sqlConnection1_InfoMessage(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs e)
??{
??
??}
??


?}
}
(本文是直接从VS.net贴出的,自行删除前面的??)
Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多