.Net在线付款---Paydollar在线付款开发过程

简介: 原文:.Net在线付款---Paydollar在线付款开发过程     最近在做一个Web订单项目,项目有一个需求就是集成Paypal与Paydollar在线付款,一开始看到这个需求也是傻了眼,因为以前从来没有做过在线付款的功能,于是打开百度,google 狂搜一通,发现.
原文: .Net在线付款---Paydollar在线付款开发过程

    最近在做一个Web订单项目,项目有一个需求就是集成PaypalPaydollar在线付款,一开始看到这个需求也是傻了眼,因为以前从来没有做过在线付款的功能,于是打开百度,google 狂搜一通,发现.net下的paydollar付款開發介绍很不全面,没有找到我心中想要的答案,没有办法,只要老老实实的跟着网站上提供的文文件来做,在项目快完成时,于是想将现在做的一些心得和步骤记录下来,以备以后有用!

 

你可以进入http://www.paydollar.com/ 了解Paydollar的更多内容.

 

你在做asp.net集成Paydollar在线付款需要以下的条件:

1.       需要有.net开发基础(废话).

2.       需要有一个在外网可以访问到的网址.

3.       需要仔细阅读PayDollar集成文檔,以备参考.

4.       需要注册Paydollar的正式账号与测试账号(本文以测试账号为例).

 

假定我们现在的系统叫Order系统,需要集成在线付款,本文按照如下的流程来讲述PayDollar的开发过程:

1.       获得Paydollar的测试账号.

2.       编写一个HTML Form 将订单的一些相关信息POSTPaydollar的页面上去.

3.       提供一个页面用于让Paydollar更新我们的Order系统.

4.       返回到Order系统的提示页面.

 

 

获得Paydollar的测试账号

Paydollar为我们提供一个可以测试的虚拟付款的付款网站:

https://test.paydollar.com/b2cDemo/eng/merchant/index.html


 

界面上要求你用merchantID,loginName,Password来登录,据我所知Paydollar是没有提供注册测试账号的页面(如果哪一个高手知道Paydollar提供了注册測試的账号頁面,请你提醒我,谢谢),你可以向Paydollar的客服询问注册的事项, 我相信Paydollar的客服人员一定会执情的给你帮助,你相信Paydollar客服人员会热情的给你帮助吗?反正我信了!我的测试账号也是由公司和Paydollar联系我才获得的.

 

. 编写一个HTML Form 将订单的一些相关信息POSTPaydollar的页面上去.


img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 1  < form  id ="PayForm"  method ="post"  action ="https://test.paydollar.com/b2cDemo/eng/payment/payForm.jsp" >
 2 
 3  < input  type ='hidden'  name ='merchantId'  value ='XXXXXXXX' />
 4 
 5  < input  type ='hidden'  name ='amount'  value ='450.00'  />
 6 
 7  < input  type ='hidden'  name ='orderRef'  value ='OP0000049' />
 8 
 9  < input  type ='hidden'  name ='currCode'  value ='344' />
10 
11  < input  type ='hidden'  name ='mpsMode'  value ='NIL' />
12 
13  < input  type ='hidden'  name ='successUrl'  value ='http://test.yourdomain.com/hk/onlineorder/payResult.aspx?result=success' />
14 
15  < input  type ='hidden'  name ='failUrl'  value ='http://test.  yourdomain.com/hk/onlineorder/payResult.aspx?result =fail' />
16 
17  < input  type ='hidden'  name ='cancelUrl'  value ='http://test.yourdomain.com/hk/onlineorder/payResult.aspx?result=cancel' />
18 
19  < input  type ='hidden'  name ='payType'  value ='N' />
20 
21  < input  type ='hidden'  name ='lang'  value ='C' />
22 
23  < input  type ='hidden'  name ='payMethod'  value ='CC' />
24 
25  </ form >

学习过HTML的同学都会知道上面是什么意思,以下是我对上面的一些参数含义的解释,如果你需要更多的帮助,你可以阅读PayDollar集成指南的相关章节:

1.       请将formmethod设置成POST action设置成https://test.paydollar.com/b2cDemo/eng/payment/payForm.jsp,

如果要变成正式付款请将它设置成:

https://www.paydollar.com/b2c2/eng/payment/payForm.jsp

2.       merchantId设置成Paydollar提供给你的账号,如果是正式环境发布,就需要用正式的账号

3.       amout设置成你要付款的金额

4.       orderref设置成你要付款的订单号

5.       successUrl:设置成付款成功后跳转到Order系统的网页地址

6.       failUrl:设置成付款失败后跳转到Order系统的网页地址

7.       cancelUrl:设置成取消付款后跳转到Order系统的网页地址

8.       payMethod设置你的付款方式,CC为信用卡付款

(如果你要更详细的参数设置介绍,你可以查看Paydollar集成文档的第十二页[集成页中参数的定义])

在这里我并不贴出Order系统的其它的代码,我们只要将这个Form的代码生成好,动态替换里面要改变的参数(比如amout,orderref)提交上去就好了,就比如说,一个页面上可以放两个Form,一个Form用于显示购物车里面的信息,另一个Form就可以放以上的代码,只要保证第二个Form提交了就OK了,悄悄的告诉你,我就是用StringBuilder这样一条一条append上去的,遇到要替换的参数我就Replace一下,我相信你一定知道我是怎么做的,哈哈,你信不信不要紧,反正我相信了!

当你将该Form提交后,你可以看到Order系统已跳转到test.paydollar的测试付款页面了

 

选择Visa或者是MasterCard

然后在页面上输入获取Paydollar账号时Paydollar提供给你的测试卡号信息

 

当你点击提交按钮时,Paydollar就会开始给你做付款操作了.

 

提供一个页面(PaydollarDataFeed.aspx)用于让Paydollar更新我们的Order系统

Paydollar在做付款操作时,paydollar会将本次付款的信息(如交易号,付款状态等)PostOrder系统,以便Order系统更新自己的系统,比如说更新订单的交易号与交易日期, 所以我们要提供一个页面来接收这一些数据,这个页面在Paydollar里面叫DataFeed页面,(这个页面我们取名为PayDollarDataFeed.aspx)如果你想了解更多DataFeed的知识,请阅读Paydollar的集成文檔第35

 

 

DataFeed页面是需要设置的,具体设置如下:

PayDollar管理页面的接收地址更改

进入管理页面后,选择ProfileàPayment Options

将进入如下页面


Return value Link(DataFeed)改成你外网上可以接收的地址

可以点击test按钮查看可否接收DataFeed


如果ResultSuccess表示该页面可以用来接收DataFeed

 

根据PayDollar集成文檔上的提示:

返回链接页面必须符合下面要求:

 

-          当数据的预授权完成时,在HTML中打印“OK”(ACK信息)

-          一定先打印“OK”对我方系统进行确认,然后,再进行贵方其它的系统处理, 如果系统处理出错(即下载照片、手机铃声), 可向我方系统发送一个撤销请求,详细内容请参考P.42或联系我们的技术人员。

请注意:对于返回链接页面的网址,系统只支持端口80 (HTTP)443(HTTPS)。并确保从外部可进入返回链接页面的网址,这样我们的服务器才能调用返回链接页面。

 

*因为系统从返回链接页面读取“OK”两字来测定是否(返回链接)信息已被交付,如果这两个字没有成功返回,系统将假定返回链接已丢失。

我的PayDollarDataFeed.aspx的后台代码如下:

  

 1          OrderService  service = new  OrderService();
 2
 3            private   void  Page_Load( object  sender, System.EventArgs e)
 4 
 5           {
 6 
 7                Response.Write( " OK " );
 8 
 9                 string  successCode = Request.Form[ " successcode " ].ToString();
10 
11                 string  payRef = Request.Form[ " PayRef " ].ToString();
12 
13                 string  orderID = Request.Form[ " Ref " ].ToString();
14 
15  // Request.Form的取值,可以阅读payDollar集成文檔
16 
17                 if ( ! Page.IsPostBack)
18 
19                {
20 
21                      if (successCode == " 0 " )
22 
23                    {
24 
25  service.SetOrderIsPay(payRef,orderID); // 更新Order系统
26 
27                    }
28 
29                }
30 
31           }

 

个人体会:

1.我个人认为,payDollar要求我们提供的DataFeed页面只能用于更新Order系统,不应该用于显示界面(包括付款结果),一开始我错误的将上一步Form里面设置的successUrl,failUrl,cancelUrlDataFeed页面混在一起,错误的以为DataFeed和这一些URL可以放在同一个页面,更新完自己的系统就可以将付款结果显示出来,结果老是取不到PayDollar返回回来的参数.

2.Order系统提供的DataFeed页面,是一定要有外网上可以访问的,要不然会造成返回参数接收不成功!我曾经在这个地方卡住很久,后来换成外网地址后就可以接收返回参数.

 

返回到Order系统的提示页面

paydollar付款成功后,点击按钮,Paydollar就会返回回Order系统,

如果是付款成功就会跳转到Form里设置的successUrl的网址上.

如果是付款失败就会跳转到Form里设置的failUrl的网址上.

如果是取消付款就会跳转到Form里设置的cancelUrl的网址上.

 

当系统开发完成后,你的公司可能会向Paydollar申请正式的账号,这时你需要将Form的一些测试信息更改成正式信息(比如说action地址,merchantID).


目录
相关文章
|
29天前
|
人工智能 前端开发 Devops
.NET技术在现代开发中的作用:.NET技术的核心价值、在现代应用开发中的实际应用、以及面临的挑战与未来趋势。
.NET技术是软件开发领域的核心力量,本文从其核心价值、实际应用及未来挑战三方面进行探讨。它支持多种语言,提供强大的开发工具和丰富的类库,并具备跨平台能力。在现代应用开发中,.NET广泛应用于企业级系统、Web应用、移动应用、云服务和游戏开发等领域。面对性能优化、容器化、AI集成等挑战,.NET持续创新以适应不断发展变化的技术环境。
48 4
|
29天前
|
人工智能 开发框架 .NET
.NET技术的强大功能:.NET技术的基础特性、在现代开发中的应用、以及它如何助力未来的软件开发。
.NET技术是软件开发领域的核心支柱,以其强大功能、灵活性及安全性广受认可。本文分三部分解析:基础特性如多语言支持、统一运行时环境;现代应用如企业级与Web开发、移动应用、云服务及游戏开发;以及未来趋势如性能优化、容器化、AI集成等,展望.NET在不断变化的技术环境中持续发展与创新。
57 4
|
29天前
|
人工智能 开发框架 .NET
如何掌握.NET技术,引领开发前沿:.NET技术的核心能力、在现代开发中的应用实践、以及如何通过.NET技术实现持续创新。
.NET技术已成为软件开发不可或缺的部分,本文分三部分探讨:核心能力如多语言支持、统一运行时环境、丰富的类库及跨平台能力;现代开发实践包括企业级应用、Web与移动开发、云服务及游戏开发;并通过性能优化、容器化、AI集成等方面实现持续创新,使开发者站在技术前沿。
43 3
|
6天前
|
存储 运维
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
.NET开发必备技巧:使用Visual Studio分析.NET Dump,快速查找程序内存泄漏问题!
|
6天前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
6天前
|
消息中间件 开发框架 前端开发
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
|
12天前
|
开发框架 JavaScript 前端开发
|
16天前
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
34 1
|
29天前
|
人工智能 前端开发 开发工具
.NET技术的开发潜力是巨大的,其核心优势和广泛应用不断推动着软件开发的进步
.NET技术自推出后已成为软件开发的关键力量。本文分三部分探讨其开发潜力:核心优势如统一平台、强大工具与跨平台能力;现代应用中的创新,包括企业级与Web应用、移动开发、云服务及游戏制作;以及面对的挑战与未来机遇,如性能优化、容器化支持、AI集成等。.NET的持续发展正塑造着软件行业的未来。
64 1
|
13天前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
51 0