C# 做 worldpay在线交易的接口

怎么把数据发到worldpay
1:HttpWebRequest,
这个就是普通的发送给数据到网站的做法。
WebRequest.Create("https://select-test.worldpay.com/wcc/purchase"); //url for worldpay gateway
ppRequest.Method = "POST";
ppRequest.ContentType = "application/x-www-form-urlencoded";
ppRequest.ContentLength = data.Length;
.......
问题是,得到结果字符串如果写在页面上,看似是结果,但其实是把worldpay的结果(带有相对链接的结果)在自己的网站上显示,其中的一些相对链接失效(等于链接自己的网站目录)。这个错误很严重
2:用form
Asp.net不允许有两个form。但是这个方法,就是要用到两个form。
原理:
把html的form放在 的上边,并列。用js处理html的form的值和提交form给worldpay。这个js可以在后台代码通过ClientScript来注册执行。
并列,是为了不至于让页面出错,不然谁嵌套谁后边都找不到控件的值。而一定要放到上边,是为了在后台注册js之前保证html的form已经存在了,不然会找不到控件。
ClientScript注册js执行,这样就可以实现我们自己的数据库的数值可以传递到另外一个form上发送给worldpay了

这个做法是不错的。
3:通过地址栏传递参数。
这样的话,reponse.redirect就可以把参数传递过去了。

这个做法最简单直接。

Worldpay可以:
1:传递自己的参数到worldpay,当然是为了在付款之后还能传递回来,比如PO号码。
参数以M_或者C_或者MC_或者CM_开头
2:可以客户化result.html,在交易之后,可以让客户看见我们自己的界面。这个界面上,我们可以取出很多参数,保护自己传递过去的参数。
比如,客户交易之后,让用户返回我们的页面,并且把刚才的PO号码传递回来。
3:可以设置一个callback页面,让worldpay在交易事件发生的时候,通知我们。

这几个功能都非常好用。

另外:
Worldpay比较贵,和paypal比起来。
Worldpay的网站似乎错误挺多,pdf技术文档也有些错误,这么大的银行似乎不应该。

你可能感兴趣的:(C# 做 worldpay在线交易的接口)