Tuesday, December 21, 2004

Tech Link

Microsoft 社区
http://www.microsoft.com/china/MSDN/library/default.mspx MSDN技术资源库
http://www.microsoft.com/china/technet/default.mspx Microsoft Tectnet
http://blog.joycode.com/ 博客堂 http://www.cnblogs.com/ 博客园
http://www.cnblogs.com/team/DesignPattern.html DotNet Design & Pattern团队
http://www.microsoft.com/China/Community/ Microsoft中国社区
http://www.gotdotnet.com/ GotDotNet: The Microsoft .NET Framework Community
http://www.csdn.net/ 中国开发者网络
http://msdn.microsoft.com/library/chs/ MSDN Library 简体中文
http://www.blogcn.com/ 博客中文站
http://www.umlchina.com/

http://www.tianyaclub.com/new/Publicforum/Content.asp?idWriter=0&Key=0&strItem=itinfo&idArticle=8161&flag=1 站长必去的10个网站


分层开发思想与小笼包
三层开发中容易犯的错误

星火燎原

Fire3’s Blog:Linux,Open Source,Google

[TDD开发的全过程]


.Net
ASP.NET Forms Authentication Basics
.NET设计模式系列文章
http://www.royaloo.com/articles/articles_2002/dotNetFAQ_content.htm
.NET Framework FAQ 作者Andy McMullan 译者 荣耀
http://www.dotnettools.org/2005/doc/entlib/EntLib001.htm 将Enterprise Library 放到你的应用或产品中
通过 Web 服务传递数据 http://www.microsoft.com/china/MSDN/library/data/dataAccess/hcvb04vb04i7.mspx
卢彦——利用XML实现通用WEB报表打印
讨论创建基于WSE的报表打印服务及其实现 http://msdnportal.csdn.net/Read.aspx?C=6&S=1ce99830-e58b-4729-9e1b-7e4a9c7fe580
WSE Step by Step (1)
WSE2.0 比起 WSE2.0 Tech PreView 最大的变化就是安全性。
WSE2已经发布,我今天才了解什么是WSE
COM+ Web 服务:通过复选框路由到 XML Web Services http://www.cnblogs.com/cowbird/archive/2004/06/17/16320.html
关于MTS和COM+的区别
使用Visual C#制作可伸缩个性化窗体 http://msdnportal.csdn.net/Read.aspx?C=6&S=705706c8-7013-4730-9a98-93b4639726f3
Working with the C# 2.0 Command Line Compiler http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/csharpcompiler.asp
Web Caching and Expiration, Connection Pools, and More http://msdn.microsoft.com/msdnmag/issues/05/01/WebQA/default.aspx
非.NET语言调用.NET XML Web Services返回的数据集合的两个方法 http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/callwebs.mspx
在 .NET 中使用 COM+ 服务 http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/usecom.mspx
身份验证和授权 http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/BuildSucApp/BSAAsecmod03.mspx FlyTreeView for ASP.NET 3.2 破解攻略 DotNet控件破解

Form with Validators Not Submitting on a Rebuilt ASP.NET 1.1 Box
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B889877 The Submit button on ASP.NET pages does not work after you install the .NET Framework 1.1 Service Pack 1

使用C#进行点对点通讯和文件传输(通讯基类部分)
使用C#进行点对点通讯和文件传输(发送接收部分)



网站
一个很好的CRM项目网站
http://www.salesforce.com/

C++
VC常用数据类型列表 及字符类型转换
CString,string,char*的综合比较(一)
CString,string,char*的综合比较(二)
CString,string,char*的综合比较(三)
http://www.vckbase.com/ VC知识库
http://www.vchome.net/ 阿蒙编程之家
http://www.vczx.com/ VC在线
http://www.china-askpro.com/ 问专家
http://www.vcfan.com/
http://www.vchelp.net/


IT从业人员必看的10个论坛
IT技术开发综合类
http://community.csdn.net/
适合人群:只适合软件开发者
技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,.NET啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出的意见都有正方两面的,所以最终解决问题,还是靠自己。
评价:专业,很牛逼,就是速度慢。
http://www.itpub.net/
适合人群:数据库开发人员
数据库方面是非常著名的,牛人不少,不过,现在比较杂,什么都做,网络,操作系统,行业应用,到体育贴图,当然有些也不错,人气非常高,特别是灌水方面,^_*.
评价:强,速度一般;
http://bbs.chinaunix.net/forum/
适合人员:系统工程师
这里的特色就是操作系统方面在业界是最著名的,牛人不少,目前,在数据库,网络方面也颇有建树,当然灌水方面也不赖,呵呵,属于温柔性
评价:强,速度还可以
bbs.chinajavaworld.com/
适合人员:JAVA开发
JAVA方面非常综合的论坛了,牛人也很多,是一个难得的JAVA论坛,涉及你想象的关于JAVA目前任何技术。
评论:强,速度还可以。
http://www.huihoo.com/forum/
适合人员:中间件开发者
人气不错,版面风格独特,在开源,中间件,工作流方面非常不错,问题讨论都非常深刻、也很专业。
评价:很好,速度一般;
IT售前技术顾问综合类
http://www.sysvs.com/bbs
适合人员:IT售前及技术顾问
业界知名的售前技术顾问论坛,比较新异的知识点,各个IT行业版快划分也比较好,也非常专业,绝对是我稀饭(喜欢)的风格,网站风格业内罕见,也有很多专业文章,没有地方灌水,厉害。
评价:很好,速度比较快
网络工程类
http://www.1000bbs.com/
适合人员:布线/网络工程师
人气很旺,特色是版面比较紧凑,综合布线这一块很权威,很窄很专,时间非常久了,颜色比较明快,就是太低端了,
评价:不错,速度一般
http://www.sharecenter.net/
适合人员:网络工程师
之所以我喜欢是这个网站很多做CISCO工程都知道,也是别人介绍我去的,时间非常久了,颜色比较暗谈,属于忧郁型。
评价:不错,速度也还可以
IT管理综合类
http://club.amteam.org/
适合人员:企业策划,CIO
业界知名的知识站点,信息化管理顾问可以去看看,人也很多,可惜,都是下载,实质性内容需要改观,我记得以前是非常专业的网站,现在需要加油。
评价:不错,速度一般。
IT评论类
http://www.tianyaclub.com/ it视角
适合人群:大多数,
评论类比较多,基本上在其他媒体上看到的评论,这里都会有,要想了解IT发展的情况,就来这里看看。
评价:很好,休闲工作都可以看。

http://vipbio.blogchina.com/blog/article_180765.1051334.html windows XP 系统服务“关闭”详细列表,内存128的足够了

Tuesday, December 07, 2004

Credit Card Payment Gateway API

Four major credit card payment gateway:
1. Verisign => http://verisign.com/
2. Psigate => http://psigate.com/
3. Linkpoint => http://linkpoint.com/
4. Authorize => http://authorize.net/

Another two payment gateway:
5. 2CheckOut => http://2checkout.com/
6. Paypal => http://paypal.com/

Five Transaction Type:
0(S). Sale
1(A). Authorisation
2(D). Delayed Capture
3(C). Credit
9(V). Void

API
1. Verisign Payment Services: Payflow Pro
The Payflow Pro client resides on your computer system and is available on all major Web server platforms in a variety of formats to support integration requirements. It comes as a binary executable, activated via a Common Gateway Interface (CGI) script, or integrated as a C-interface application library. It is also available as DLL, COM, Site Server, Java Native Interface, or Perl Module
Interface

Config:
Host=test-payflow.verisign.com
Port=443

Set ccObj = CreateObject("PFProCOMControl.PFProCOMControl.1")
Query = "USER=MerchantLogin&VENDOR=MerchantLogin&PARTNER=MerchantPartner
&PWD=MerchantPassword&TRXTYPE=transactionType&TENDER=C&ACCT=accountNumber
&EXPDATE=expDate&AMT=Amount&COMMENT1=UserName&MERCHDESCR=CompanyName&MERCHSVC=CustomerTel"
Ctx = creditcardObj.CreateContext(HostAddress, HostPort, 30, "", 0, "", "")
Response = ccObj.SubmitTransaction(Ctx, Query , Len(Query))
'RESULT=0&RESPMSG=Approved&PNREF=V53A53032326
ccObj.DestroyContext (Ctx)

2. PsiGate
Config:
Host=secure.psigate.com
Port=1139

Set ccObj = CreateObject("MyServer.PsiGate")
ccObj.ConfigFile = MerchantConfig
ccObj.KeyFile = MerchantKeyFile
ccObj.Host = HostAddress
ccObj.Port = HostPort
ccObj.Result = TestMode
ccObj.Bname = cardName
ccObj.CardNumber = accountNumber
ccObj.expMonth = expMonth
ccObj.expYear = expYear
ccObj.ChargeType = transactionType
ccObj.userID = clientType
ccObj.Email = clientType
ret = ccObj.AddItem("cc transaction for CompanyName", "total price", Amount, 1, "", 0, "")
if ret = 1 then
ret = ccObj.ProcessOrder()
if ret = 1 then
Appr = ccObj.Appr 'APPROVED
Err = ccObj.Err '
OrdNo = ccObj.OrdNo '69.158.48.111-1102444389-363202-15893-7
end if
end if

3.LinkPoint: API
a collection of functions for processing payment transactions over the Internet in a highly secure manner.
Transition between COM Object versions 5.4(using 1139) and 6.0(using 1129) before Feb 2005.

Config:
Host=staging.linkpt.net
Port=1129

'=================V5.4===================================================
Set ccObj= Server.CreateObject("ComApi_3_8.ComApi")
OrderCtx = ccObj.csi_order_alloc()
ItemCtx = ccObj.csi_item_alloc()
ReqCtx = ccObj.csi_req_alloc()
Flag = ccObj.csi_req_set(ReqCtx, ReqField_Configfile, merchantconfig)
Flag = ccObj.csi_req_set(ReqCtx, ReqField_Keyfile, keylocation)
Flag = ccObj.csi_req_set(ReqCtx, ReqField_Host, hostaddress)
Flag = ccObj.csi_req_set(ReqCtx, ReqField_Port, hostport)

Flag = ccObj.csi_order_setrequest(OrderCtx, ReqCtx)
if ccObj.bStat <> Succeed Then
'Error
End If

Flag = ccObj.csi_order_set(OrderCtx, OrderField_Bname, cardname)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Cardnumber, accountnumber)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_ChargeType, transactiontype)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Expmonth, expmonth)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Expyear, expyear)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Email, email)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Result, status)
Flag = ccObj.csi_item_set(ItemCtx, ItemField_Itemid, "total price")
Flag = ccObj.csi_item_set(ItemCtx, ItemField_Description, "cc transaction for companyname")
Flag = ccObj.csi_item_set(ItemCtx, ItemField_Price, amount)
Flag = ccObj.csi_item_set(ItemCtx, ItemField_Quantity, 1)
Flag = ccObj.csi_order_additem(OrderCtx, ItemCtx)
if ccObj.bStat <> Succeed Then
'Error
End If

Flag = ccObj.csi_item_drop(ItemCtx)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Subtotal, amount)
Flag = ccObj.csi_order_set(OrderCtx, OrderField_Chargetotal, amount)

Flag = ccObj.csi_order_process(OrderCtx)
if ccObj.bStat <> Succeed Then
'Error
End If

Ref = ccObj.csi_order_get(OrderCtx, OrderField_R_Ref)
Appr = ccObj.csi_order_get(OrderCtx, OrderField_R_Approved)
Err = ccObj.csi_order_get(OrderCtx, OrderField_R_Error)
Ord = ccObj.csi_order_get(OrderCtx, OrderField_R_Ordernum)

Flag = ccObj.csi_order_drop(OrderCtx)
Flag = ccObj.csi_req_drop(ReqCtx)
Set ccObj = nothing

'=================V6.0===================================================
Set order = Server.CreateObject("LpiCom_6_0.LPOrderPart")
order.setPartName("order")
Set ccObj = Server.CreateObject("LpiCom_6_0.LPOrderPart")
res=ccObj.put("ordertype", "SALE") 'PREAUTH, POSTAUTH, VOID
res=order.addPart("orderccObjtions", ccObj)

res=ccObj.put("name", bname)
res=ccObj.put("email", bemail)

res=ccObj.clear()
res=ccObj.put("zip", bzip)
res=ccObj.put("addrnum", baddrnum)
res=order.addPart("billing", ccObj)
'res=ccObj.put("oid", oid)
'res=order.addPart("transactiondetails", ccObj)

res=ccObj.clear()
res=ccObj.put("configfile", configfile)
res=order.addPart("merchantinfo", ccObj)

res=ccObj.clear()
res=ccObj.put("cardnumber", cardnumber)
res=ccObj.put("cardexpmonth", expmonth)
res=ccObj.put("cardexpyear", expyear)
res=order.addPart("creditcard", ccObj)

res=ccObj.clear()
res=ccObj.put("chargetotal", total)
res=order.addPart("payment", ccObj)

Set LPTxn = Server.CreateObject("LpiCom_6_0.LinkPointTxn")

outXml = order.toXML()
Response = LPTxn.send(keyfile, host, port, outXml)
'CSITue Dec 7 10:43:16 20040000017747459E306F-41B5F9C3-627-14FD240088730000017747:YNAM:12345678901234567890123:1102444996APPROVEDYNAM

Set LPTxn = Nothing
Set order = Nothing
Set ccObj = Nothing

4. Authorize:
The Standard Transaction Submission API defines how transactions should be submitted to the gateway using AIM. The gateway response API describes the gateway’s responses to transactions submitted to the gateway.

Config:
Host=https://secure.authorize.net/gateway/transact.dll
Port=1139

query = "x_login=MerchantLogin&amp;x_tran_key=MerchantKey&x_type=
x_type&x_amount=total&x_card_num=cardnumber&x_exp_date=
x_exp_date&x_trans_id=x_trans_id&x_first_name=x_first_name &x_last_name=x_last_name &x_email=emailaddress"
Set objsxh = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
objsxh.open "POST", HostAddress ,false
objsxh.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
objsxh.setRequestHeader "Content-Length",len(query)
objsxh.send query
Response = objsxh.responseText
'1,1,1,This transaction has been approved.,000000,P,0,,,1.00,CC,auth_capture,,,,,,,,,,,,,,,,,,,,,,,,,,C8CCAF620C1287B7C2713F10E5D1FC54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,