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

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

最近在做一个Web订单项目,项目有一个需求就是集成Paypal与Paydollar在线付款,一开始看到这个需求也是傻了眼,因为以前从来没有做过在线付款的功能,于是打开百度,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 将订单的一些相关信息POST到Paydollar的页面上去.

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 将订单的一些相关信息POST到Paydollar的页面上去.

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

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

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

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

将进入如下页面

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

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

如果Result为Success表示该页面可以用来接收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,cancelUrl和DataFeed页面混在一起,错误的以为DataFeed和这一些URL可以放在同一个页面,更新完自己的系统就可以将付款结果显示出来,结果老是取不到PayDollar返回回来的参数.

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

四 返回到Order系统的提示页面

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

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

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

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

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

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

时间: 2024-10-08 13:37:51

.Net在线付款---Paydollar在线付款开发过程的相关文章

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

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

分享一个免费的在线Youtube视频在线下载网站(52Youtube.com),下载技术视频方便很多

分享一个 免费的在线Youtube视频在线下载网站,下载技术视频方便很多. 网址是 www.52youtube.com ,受限的Youtube视频也能下(年龄,地域限制等),比较不错. 

集博文,项目,手册,在线工具,在线图书,在线代码,开发平台的网站

集博文,项目,手册,在线工具,在线图书的网站 网址:http://www.shouce.ren/ 格式化,代码转换,加密解密,文字处理,配色,图形 网址:http://www.sucaihuo.com/tools 不错!

java swing调用webservice实现qq在线查询是否在线

原文:java swing调用webservice实现qq在线查询是否在线 代码下载地址:http://www.zuidaima.com/share/1550463277042688.htm 隐身的也可以看到,我测试过了. 标签: swing qq 在线查询 webservice话题: WebService 脚本和工具 Swing和AWT开发

【在线】使用在线软件来完成任务

在线画画 ProcessOn  百度脑图 在线办公软件 user.me 在线写作 ShowDoc  看云 在线获取编程知识 菜鸟教程  MobDevGroup  在线设计APP原型图 墨刀

ueditor 在线附件和在线图片路径错误BUG补丁

错误 ueditor上传附件时显示和下载都是正常的,当下次点击在线附件时图片图标显示错误,再添加到网页中访问的时候出现404错误,比如:第一次添加:http://192.168.1.4:8080/uedit2/ueditor/jsp/upload/file/20140622/1403423931425017681.png第二次就变成了:http://192.168.1.4:8080/uedit2/C:/Program Files/Apache Software Foundation/Tomcat

网页在线播发视频 在线查看文档

首先 当博主接到这个任务时就有点兴奋,因为觉得又有新鲜东西搞了,所以马上上百度,google查了一些资料 其中在线播发视频需要: jwplayer(视频播发器插件,也有其他的,大家可以上网查),需要在页面设置参数 swftools 转swf格式工具,其中这个要设置参数来转视频为swf 其中在线查看文档需要: openoffice  转doc excel ppt等文档为pdf Flexpaper 将swf文档文件展示在页面 pdfview 将pdf转话为swf 以上是工具 由于代码不见了 转化的代

oracle r12应付付款一直显示付款单据被另一个付款批使用

1.付款时一直显示付款单据被另一个付款批使用,如下 造成原因有两种 1)用户数据未录完,长时间没有处理,系统自动退出 ,或用户强行退出 2)此单据被另外一个付款批使用,此付款批没有完成

基于Jquery在线制作PPT在线演示特效

基于Jquery的PPT在线制作在线演示特效代码是一款基于js实现的高端大气上档次幻灯片制作特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="topbar" class="navbar navbar-fixed-top"> <div class="navbar-inner"> <a class="brand" href="#">H