ASP.NET是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET是啥相关的知识,希望对你有一定的参考价值。
ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
ASP.NET就是属于WebForm,也就是平时说的B/S模式的开发。而WinForm就是属于C/S模式。
.NET有很多种语言组成,比如C#、 VB.NET、J#、Jsript、Managed C++,但是都是运行在.NET FrameWork Run Time底下的。
Asp.NET可以用C#或VB.NET来开发。编译后形成CLR,通过服务器的IIS+.NET FrameWork再次编译来运行。
扩展资料
ASP.NET和ASP的区别:
ASP.NET和ASP的最大区别在于编程思维的转换以及功能的增强。
一、ASP使用VB/JS这样的弱类型、面向结构的脚本语言混合html来编程,而非面向对象,这就明显产生以下几个问题:
1、代码逻辑混乱,难于管理。
2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,代码重用性差。
3、弱类型造成潜在的出错可能。
因此在功能方面ASP同样存在问题:
1、功能太弱,一些底层操作只能通过组件来完成。
2、缺乏完善的纠错/调试功能。
二、ASP.NET理论上可以使用任何编程语言包括C#、VB.NET、JS、、J#、Managed C++等等,最合适的编程语言还是MS为.NET Frmaework专门推出的C#。
优点如下:
1、是面向对象的编程语言,简单易学。
2、具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,封装性使得代码逻辑清晰,并且应用到ASP.NET上就可以使业务逻辑和Html页面分离;继承性和多态性使得代码的可重用性大大提高
参考资料来源:百度百科-asp.net
参考技术A⑴.NET是 Microsoft XML Web services 平台。
XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
⑵具体含义有两种:
①.NET开源:.NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。
老师传授.NET意在使大家了解.NET技术出现的原因和它想解决的问题,也了解为什么他们需要XML,Web Services 和 SOA,这样才能使以后成为技术人员的大家在.NET这一技术平台上创建应用系统。
从这个角度,.NET也可以如下来定义:.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。(更精确的说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时Common Language Runtime之上的应用程序。)如果一个应用程序跟.NET Framework无关,它就不能叫做.NET程序。
比如,仅仅使用了XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
②.net域名:.net是国际最广泛流行的通用域名格式。一般用于从事Internet相关的网络服务的机构或公司,是建立全球商业品牌,国际化形象的第一选择。
拓展资料:
一. 有关.NET开源:
⑴发展历程:
2014年4月的Build开发者大会上,微软宣布开源一批.NET库和相关技术,成立.NET基金会去管理和引导开源组件的开发。微软还将在Apache 2.0许可证下开源Roslyn编译器堆栈,Roslyn是微软所谓的编译器即服务,包含了C#和 Visual Basic.NET 编译器。.NET基金会由来自微软、GitHub和Xamarin的代表组成,Xamarin由GNOME创始人Miguel de Icaza等人创建,开发.NET开源实现。Xamarin向基金会贡献了它的部分库。de Icaza在接受采访时表示,微软已经变了,不仅仅移除了许可证中的限制,而且与Xamarin合作征求设计反馈,在创作共用许可证下发布文档。
2014年11月13日,为了进一步扩大云计算市场,微软将不再把.NET和Visual Studio等关键软件技术局限在Windows平台,今后还将兼容Linux、Mac OS X、ios和android。除此之外,微软还宣布将开放.NET核心服务器运行环境和框架的源代码,使得外部开发者也可以对这一软件开发平台做出贡献。
作为这一变化的一部分,微软将允许开发者使用.NET运行环境和框架,来为Linux和Mac开发基于服务器和云端的应用。微软还推出了功能齐全的新版Visual Studio 2013,并将免费对独立开发者、学生、小企业等用户开放。
⑵未来发展:
从高级语言的发展历史来看,编程世界从来就没有停止过脚步,变革时时发生、创新处处存在。以技术人员的角度来观摩未来,带着C# 4.0的脚步来看展望, 除了在函数式编程、并行计算和动态特性上大展拳脚,Meta Programming的概念已然浮出水面,将编译器变成一个Service,你可以自由控制在编译器和运行期的逻辑,那是多么美好而向往的未来呀,所以,我们坚信 4.0之后还有广阔的天地随着语言的变迁变得更加开阔。
概括Anders大师在C#设计过程中的思想,C#是语言美学的集大成者。例如,当使用foreach进行循环遍历之后,当应用using语句代替try/finally实现强制资源管理,当应该attribute进行运行时反射,当以LINQ进行语言级别的信息查询,这些语言级别的支持为C#实现面向对象编程带来强大的功能动力和美学感受。
⑶.NET书籍:
C#程序设计
C# Primer中文版
.NET框架程序设计(修订版)
.NET程序设计技术内幕
.NET本质论--第1卷:公共语言运行库(中文版)
二. 有关.net域名
①世界上第一个登记注册的域名是nordu(dot)net,注册于1985年1月1日,比最古老的.com域名symbolics(dot)com(注册于1985年3月15日)还要早两个多月时间。
②注册规则:
1、只提供英文字母(a-z,不区分大小写)、数字(0-9)、以及"-"(英文中的连词号,即中横线),不能使用空格及特殊字符(如!、$、&、? 等)。
2、"-"不能用作开头和结尾。
3、长度不能超过63个字符。
4、简单、易记,逻辑性强(与企业商标、 产品名称吻合;根据网站的性质、用途选择)。
5、为同一个域名注册多个不同后缀。
6、域名购买年限选择2年以上。
③注意问题:
1、域名安全与产权方面来说:一定要正确填写域名的所有人(这项非常重要,是关系到域名的产权问题及以后的域名过户、转移注册商等问题)、注册联系人及身份证、管理联系邮箱(邮箱必须是经常使用的,以便续费的时收到提醒通知); 如果注册信息发生变化,应当及时更新。
2、域名注册时候最好选择好用、易记的域名,以便于宣传和推广。
3、注意全方位保护自己的域名品牌,现在互联网上域名已经成为宝贵的域名资源,如果你注册了一个域名之后,最好将相关的域名也注册下来,以避免被别人抢注。例如 注册了.com域名,可以同时将.net、.cn、.com.cn、.net、.cn、.info 等这些域名同时保护起来。适当的时候要考虑将一些类似的域名也注册掉。
4、除了传统的.cn、.com、.net等纯英文域名后缀之外,还有以“.中国”结尾的纯中文域名,并且注册“中文.CN”将自动获得对应的“中文.中国”域名,获赠繁体中文,无需另行申请注册。
对于企业用户,最好还要注册自己的中文域名,做到面面俱全,以锁定自己在互联网上绝对安全和品牌垄断权。
5、为避免域名过期导致要高价赎回,或是被抢注而要付出高成本代价,或是解析暂停影响网站访问的情况,按时续费也是非常重要的。所有域名过期后30天内可正常续费。
更多详细内容参考:.NET-百度百科
参考技术B 分析: ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术。ASP.NET页在服务器上执行,并生成发送到桌面或浏览器的标记(如 HTML、XML或者WML)。可以使用任何.NET兼容语言(比如Visual Basic、C#)编写Web服务文件中的服务器端(而不是客户端)逻辑。ASP.NET页使用一种由事件驱动的、已编译的编程模型,这种模型可以提高性能并支持将用户界面层同应用程序逻辑层相隔离。注意:Web应用程序和Web服务可调用公共语言运行库的任意功能,例如类型安全、继承、语言互操作、版本控制和集成安全性等。 ASP.NET技术有几个显著的特性,既: 1、强大性和适应性 因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在支持.NET Framework所有平台上。ASP.NET同时也是language-independent语言独立化的,所以,可以选择一种最适合自己的语言来编写应用程序,或者可以用多种语言来写应用程序,这样的多种程序语言协同工作的能力可以保护基于COM+开发的程序,并能够完整的移植向ASP.NET。2、简单性和易学性 .NET Framework封装了大量的类库,使ASP.NET完成一些常见的任务如表单的提交、客户端的身份验证、分布系统,并可以使网站配置变得非常简单。3、高效可管理性 ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,可以很大的提高运行速度。即使现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高运行效能。 总结: ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术,利用公共语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架本回答被提问者采纳 参考技术CASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。在代码撰写方面特色是将页面逻辑和业务逻辑分开,它分离程序代码与显示的内容,让丰富多彩的网页更容易撰写。同时使程序代码看起来更洁净、更简单。
扩展资料
工作原理:
从使用的角度看,ASP.NET的运行过程包含页面请求、分析、编译、组装、页面缓冲五大环节。当客户端通过浏览器请求(Request)页面时,服务器端首先由页面分析器(Parser)对被请求的页面进行分析;再将通过分析的页面内容传递给编译器(Compiler);经过编译器编译的页面内容被传输给组装缓存(Assembly Cache),同时,一些需要较高资源代价的元素可以创建一次后存人内存(Memory);将组装缓存和内存中的内容有机结合后形成一个完整页面(包括数据、编译代码、HTML代码等),完整页面最后被送往输出缓存(Output Cache)。
输出缓存中的内容将作为客户端的页面请求结果被送回浏览器。当同一页面被第二次请求时,服务器端将跳过所有中间环节,直接从输出缓存中送出页面请求结果。
百度百科-asp.net
1 ASP.Net是什么?
ASP.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。
2.ASP.Net与ASP的联系和主要区别是什么?
ASP.Net与现存的ASP保持语法兼容,实际上我们可将现有的ASP源码文件扩展名“.asp”改为“.aspx”,然后配置在支持ASP.Net运行时的IIS服务器的Web目录下,即可获得ASP.Net运行时的全部优越性能。
ASP.Net与ASP的主要区别在于前者是编译(Compile)执行,而后者是解释(Interpret)执行,前者比后者有更高的效率。实际上我们可以把ASP.Net的执行过程看做是编译后的普通语言运行时代码充当一个和前端浏览器和中间件用户交互的应用程序,它接受用户的请求,输出HTML流到客户端显示。除此之外,ASP.Net还可以利用.Net平台架构的诸多优越性能,如类型安全,对XML,SOAP, WSDL等Internet标准的强健支持。
3.目前ASP.Net的开发语言有那些?
目前ASP.Net的开发语言有三种语言,C#,Visual Basic.Net和JScrip.
4.ASP.Net的主要优点有哪些?
ASP.Net可完全利用.Net架构的强大,安全,高效的平台特性。ASP.Net是运行在服务器后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化,缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASP.Net带来卓越的性能。
对XML,SOAP,WSDL等Internet标准的强健支持为ASP.Net在异构网络里提供了强大的扩展性。
5.ASP.Net主要包括哪些内容?
ASP.Net主要包括WebForm和WebService两种编程模型。前者为用户提供建立功能强大,外观丰富的基于表单(Form)的可编程
Web页面。后者通过对HTTP,XML,SOAP,WSDL等Internet标准的支持提供在异构网络环境下获取远程服务,连接远程设备,交互远程应用的编程界面.
6.HTML Server Control和Web Server Control有什么联系和区别?
HTML Server Control是为了和传统ASP保持兼容而开发的一类基于HTML静态页面的控件(如文本框,按钮),它们与这些控件一一对应,它们位于命名空间System.Web.UI.HtmlControls里。
Web Server Control 是专为下一代基于组件开发的.Net平台架构而量身定做的,它不仅包括具有传统HTML静态页面的控件等Web Server Control,它还包括有AdRotator,XML等功能强大的组件,更重要的是它为用户开发Web Server Control组件提供了强大,易用的技术底层支持。这将成为下一阶段ASP.Net开发的热点。它们位于命名空间System.Web.UI.WebControls里。
在 ASP.NET 中接受信用卡的最佳方式是啥? (在 ASP.NET 和 Authorize.NET 之间)
【中文标题】在 ASP.NET 中接受信用卡的最佳方式是啥? (在 ASP.NET 和 Authorize.NET 之间)【英文标题】:What is the best way to accept a credit card in ASP.NET? (Between ASP.NET and Authorize.NET)在 ASP.NET 中接受信用卡的最佳方式是什么? (在 ASP.NET 和 Authorize.NET 之间) 【发布时间】:2011-04-01 07:18:51 【问题描述】:我是创建商务网站的新手,现在我需要通过互联网销售软件,我不知道从哪里开始。
我正在使用 ASP.NET,并且正在考虑使用 Authorize.NET 来验证和处理信用卡。
我正在寻找可以安装在单台服务器上的稳定、值得信赖的解决方案。我的第二个目标(除了在线销售产品)是熟悉流行的购物车软件,并被大型企业使用。也许我应该从 MS Commerce 服务器开始?
【问题讨论】:
与 Authorize.Net 集成非常简单。 【参考方案1】:这里有一百万个选项,但如果您正在编写代码,最简单的代码方式是使用http://sharpauthorize.com/
【讨论】:
【参考方案2】:Authorize.Net 很容易用 ASP.NET 实现
基本上你可以通过3-4种方式进行交易:
-
通过按钮(如 Paypal (http://developer.authorize.net/api/simplecheckout/))进行简单结帐
Direct Post:假设您的定制比 Simple CheckOut 多一点。创建一个直接发布到 Authorize.Net http://developer.authorize.net/api/simplecheckout/ 的结帐表单
例如:
<h1><%=ViewData["message"] %></h1>
<%using (Html.BeginSIMForm("http://YOUR_SERVER.com/home/sim",
1.99M,"YOUR_API_LOGIN","YOUR_TRANSACTION_KEY",true))%>
<%=Html.CheckoutFormInputs(true)%>
<%=Html.Hidden("order_id","1234") %>
<input type = "submit" value = "Pay" />
<%%>
-
SIM(服务器集成)
AIM(高级集成方法):提供完全控制和自定义。
CIM(使用tokanization 将客户卡号和信息存储在Auth.NET 服务器上)
*下面是一个 CIM 函数进行交易的示例,AIM 与 CIM 非常相似,唯一的区别是tokanization *
using ProjName.AuthApiSoap; // USE AUth Webserice Reference
public Tuple<string, string, string> CreateTransaction(long profile_id, long payment_profile_id, decimal amt, string DDD)
CustomerProfileWS.ProfileTransAuthCaptureType auth_capture = new CustomerProfileWS.ProfileTransAuthCaptureType();
auth_capture.customerProfileId = profile_id;
auth_capture.customerPaymentProfileId = payment_profile_id;
auth_capture.amount = amt;//1.00m;
auth_capture.order = new CustomerProfileWS.OrderExType();
POSLib.POSManager objManager = new POSLib.POSManager();
auth_capture.order.invoiceNumber = objManager.GetTimestamp(DateTime.Now);
DateTime now = DateTime.Now;
auth_capture.order.description = "Service " + DDD;
CustomerProfileWS.ProfileTransactionType trans = new CustomerProfileWS.ProfileTransactionType();
trans.Item = auth_capture;
CustomerProfileWS.CreateCustomerProfileTransactionResponseType response = SoapAPIUtilities.Service.CreateCustomerProfileTransaction(SoapAPIUtilities.MerchantAuthentication, trans, null);
string AuthTranMsg = "";
string AuthTranCode = "";
for (int i = 0; i < response.messages.Length; i++)
AuthTranMsg = response.messages[i].text; // To Get Message n for loop to check the [i] is not empty
for (int i = 0; i < response.messages.Length; i++)
AuthTranCode = response.messages[i].code; // To Get Code n for loop to check the [i] is not empty
var tCompResp = new Tuple<string, string, string>(AuthTranCode, AuthTranMsg, response.directResponse);
return tCompResp;
这是拆分响应消息的方法(格式和顺序将为所有交易/响应的网络服务上的固定)
var tResp = objManager.CreateTransaction(profID, paymProfID, Convert.ToDecimal(PmtToday), DDD);
string respCCNo = "";
string RespCCType = "";
string InvoiceNo = "";
string transType = "";
string approvalCode = "";
string AmtRequested = "";
string respName = "";
string respReasonText = "";
string respMD5Hash = "";
string respEmailId = "";
string respReasonCode = "";
string respMethod = "";
string respAVSResultCode = "";
string responseCode = "";
string transactionId = "0";
if (!string.IsNullOrEmpty(tCompResp.Item3))
string[] arrRespParts = tCompResp.Item3.Replace("|", "").Split(',');
responseCode = arrRespParts[0];
respReasonCode = arrRespParts[2];
respReasonText = arrRespParts[3];
approvalCode = arrRespParts[4];
respAVSResultCode = arrRespParts[5];
transactionId = arrRespParts[6].Replace("|", "");
InvoiceNo = arrRespParts[7];
AmtRequested = arrRespParts[9];
transType = arrRespParts[10];
respMethod = arrRespParts[11];
respName = arrRespParts[13] + " " + arrRespParts[14];
respEmailId = arrRespParts[23];
respMD5Hash = arrRespParts[37];
respCCNo = arrRespParts[50];
RespCCType = arrRespParts[51];
===================================AIM 代码
public Tuple<string, string, string> ECheckCreateTransAIM(string amount, string bankRoutingNo, string bankAccNo, string bankAccType, string bankName, string bankAccName, string echeckType, bool isCustomerEmail, string customerEmail, string mechantEMail)
//CustomValidator1.ErrorMessage = "";
string AuthNetVersion = "3.1"; // Contains CCV support
WebClient webClientRequest = new WebClient();
System.Collections.Specialized.NameValueCollection InputObject = new System.Collections.Specialized.NameValueCollection(30);
System.Collections.Specialized.NameValueCollection ReturnObject = new System.Collections.Specialized.NameValueCollection(30);
byte[] ReturnBytes;
string[] ReturnValues;
string ErrorString;
InputObject.Add("x_version", AuthNetVersion);
InputObject.Add("x_delim_data", "True");
InputObject.Add("x_login", MERCHANT_NAME);
InputObject.Add("x_tran_key", TRANSACTION_KEY);
InputObject.Add("x_relay_response", "False");
//----------------------Set to False to go Live--------------------
InputObject.Add("x_test_request", "False");
//---------------------------------------------------------------------
InputObject.Add("x_delim_char", ",");
InputObject.Add("x_encap_char", "|");
if (isCustomerEmail)
InputObject.Add("x_email", customerEmail);
InputObject.Add("x_email_customer", "TRUE"); //Emails Customer
InputObject.Add("x_merchant_email", mechantEMail);
// FOR echeck
InputObject.Add("x_bank_aba_code", bankRoutingNo);
InputObject.Add("x_bank_acct_num", bankAccNo);
InputObject.Add("x_bank_acct_type", bankAccType);
InputObject.Add("x_bank_name", bankName);
InputObject.Add("x_bank_acct_name", bankAccName);
InputObject.Add("x_method", "ECHECK");
InputObject.Add("x_type", "AUTH_CAPTURE");
InputObject.Add("x_amount", string.Format("0:c2", Convert.ToDouble(amount)));
// Currency setting. Check the guide for other supported currencies
//needto change it to Actual Server URL
//Set above Testmode=off to go live
webClientRequest.BaseAddress = eCheckBaseAddress; //"https://apitest.authorize.net/soap/v1/Service.asmx"; //"https://secure.authorize.net/gateway/transact.dll";
ReturnBytes = webClientRequest.UploadValues(webClientRequest.BaseAddress, "POST", InputObject);
ReturnValues = System.Text.Encoding.ASCII.GetString(ReturnBytes).Split(",".ToCharArray());
if (ReturnValues[0].Trim(char.Parse("|")) == "1") // Succesful Transaction
//AuthNetCodeLabel.Text = ReturnValues[4].Trim(char.Parse("|")); // Returned Authorisation Code
//AuthNetTransIDLabel.Text = ReturnValues[6].Trim(char.Parse("|")); // Returned Transaction ID
var tCompResp = new Tuple<string, string, string>("I00001", ReturnValues[3].Trim(char.Parse("|")), string.Join(",", ReturnValues));
return tCompResp;
else
// Error!
ErrorString = ReturnValues[3].Trim(char.Parse("|")) + " (" + ReturnValues[2].Trim(char.Parse("|")) + ")";
if (ReturnValues[2].Trim(char.Parse("|")) == "45")
if (ErrorString.Length > 1)
ErrorString += "<br />n";
// AVS transaction decline
ErrorString += "Address Verification System (AVS) " +
"returned the following error: ";
switch (ReturnValues[5].Trim(char.Parse("|")))
case "A":
ErrorString += " the zip code entered does not match the billing address.";
break;
case "B":
ErrorString += " no information was provided for the AVS check.";
break;
case "E":
ErrorString += " a general error occurred in the AVS system.";
break;
case "G":
ErrorString += " the credit card was issued by a non-US bank.";
break;
case "N":
ErrorString += " neither the entered street address nor zip code matches the billing address.";
break;
case "P":
ErrorString += " AVS is not applicable for this transaction.";
break;
case "R":
ErrorString += " please retry the transaction; the AVS system was unavailable or timed out.";
break;
case "S":
ErrorString += " the AVS service is not supported by your credit card issuer.";
break;
case "U":
ErrorString += " address information is unavailable for the credit card.";
break;
case "W":
ErrorString += " the 9 digit zip code matches, but the street address does not.";
break;
case "Z":
ErrorString += " the zip code matches, but the address does not.";
break;
var tCompRespFail = new Tuple<string, string, string>(ReturnValues[6].ToString(), ErrorString, string.Join(",", ReturnValues));
return tCompRespFail;
CIM 代码(Tokanisation(无卡方法)
public Tuple<string, string, string> CreateTransaction(long profile_id, long payment_profile_id, decimal amt, string DDD)
CustomerProfileWS.ProfileTransAuthCaptureType auth_capture = new CustomerProfileWS.ProfileTransAuthCaptureType();
auth_capture.customerProfileId = profile_id;
auth_capture.customerPaymentProfileId = payment_profile_id;
auth_capture.amount = amt;//1.00m;
auth_capture.order = new CustomerProfileWS.OrderExType();
POSLib.POSManager objManager = new POSLib.POSManager();
auth_capture.order.invoiceNumber = objManager.GetTimestamp(DateTime.Now);
DateTime now = DateTime.Now;
auth_capture.order.description = "Service " + DDD;
CustomerProfileWS.ProfileTransactionType trans = new CustomerProfileWS.ProfileTransactionType();
trans.Item = auth_capture;
CustomerProfileWS.CreateCustomerProfileTransactionResponseType response = SoapAPIUtilities.Service.CreateCustomerProfileTransaction(SoapAPIUtilities.MerchantAuthentication, trans, null);
string AuthTranMsg = "";
string AuthTranCode = "";
for (int i = 0; i < response.messages.Length; i++)
AuthTranMsg = response.messages[i].text; // To Get Message n for loop to check the [i] is not empty
for (int i = 0; i < response.messages.Length; i++)
AuthTranCode = response.messages[i].code; // To Get Code n for loop to check the [i] is not empty
var tCompResp = new Tuple<string, string, string>(AuthTranCode, AuthTranMsg, response.directResponse);
return tCompResp;
【讨论】:
以上是关于ASP.NET是啥的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET 中接受信用卡的最佳方式是啥? (在 ASP.NET 和 Authorize.NET 之间)