asp.net-mvc-3 - Paypal MVC3 集成

标签 asp.net-mvc-3 paypal

场景 带有自定义购物车的 MVC 应用程序。购物车与 PayPal 集成,传递销售数据,如客户信息、产品项目和价格(针对每个项目和总价),但不传递信用卡或 paypal 信息。这将在 paypal 上设置。

问题 Paypal 在此处描述了如何使用购物车上传与自定义购物车集成: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_cart_upload#id09BLDK0007Q 但是关于如何做到这一点的细节非常少。

一段时间后,我在这里找到了一个如何进行 MVC-Paypal 交互的示例(即使不是购物车上传,但它是一个配置问题): http://www.arunrana.net/2012/01/paypal-integration-in-mvc3-and-razor.html

此解决方案的问题在于它似乎存在一些安全问题。敏感数据被设置为 View 并在隐藏字段中发送给客户端,帖子由 javascript 设置,这是 Not Acceptable 吧?还是我看错了?

预期解决方案

  1. 用户看到购物车并点击结帐按钮,导致向 myserver.com/Controller/Action 发送一个帖子,传递客户数据,如姓名、地址等。
  2. Controller 操作 myserver.com/Controller/Action 构建一个发布服务器端,添加客户端发布数据信息更敏感的信息,如价格和 paypal 商家特定信息,并向 paypal 发布请求或调用 paypal网络服务。
  3. Paypal 返回 token 或一些其他信息,myserver.com/Controller/Action 将客户端重定向到 Paypal 进行付款。

问题 我的预期解决方案可能吗?我如何响应客户的帖子,在 Controller 中进行一些处理,使用该处理的结果发布/调用 Paypal,并最终将 paypals 响应传递给客户,以便他直接与 Paypal 交互? 否则我看不出它如何“安全”。

如果没有,肯定有人做过类似的事情并且可以指出正确的方向:-)

最佳答案

我有点理解你想在这里做什么,我想我可以回答这个问题。如果这不太合理,请告诉我...

所以您的客户会点击您的资源 mysite.com/Cart/Checkout。 Controller 实例化模型,然后将对象传递给 View , View 在其中适本地绑定(bind)值。

客户点击“使用 PayPal 付款”并被重定向至 mysite.com/Cart/ExpressCheckout。 Controller 实例化模型,模型将使用购物车 session 数据(商品、金额等)处理 SetExpressCheckout 调用,然后模型(或 Controller ,这部分有点模糊)会将客户重定向到 pp.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-12345566788

客户将填写所有内容,完成后,他们将被重定向到 mtsite.com/Cart/ConfirmOrder。在此资源中,模型将处理 GetExpressCheckoutDetails 调用,为所有返回的数据设置属性等。 Controller 会将对象传递到 View 中, View 将适本地绑定(bind)。

这是不安全的原因吗?这应该是安全的并遵循 ​​Microsoft MVC3 的所有标准。除了在语义上进行重定向的部分,我不确定这是否会在 Controller 或模型中完成。不过,我认为它会是 Controller 。

关于asp.net-mvc-3 - Paypal MVC3 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12895354/

相关文章:

c# - 如何在 MVC3 中渲染局部 View

没有购物车的 Paypal 支付网关

php - PayPal DoVoid 函数未作废

ios - Braintree iOS SDK 与 Card I/O iOS SDK 冲突 : duplicate symbols for architecture armv7

php - Paypal 地址覆盖不起作用

c# - 模型中的 Display 属性是否违反了关注点与 View 和模型的分离

javascript - 使用 jquery 加载和插入 ASP.NET 分部 View

c# - 防止通过 htmlAttributes 分配给 Html.TextBoxFor 的 onchange 事件的 javascript 编码

asp.net-mvc-3 - MVC DDD 并为业务逻辑抛出错误

paypal - 获取我的 PayPal 客户的电子邮件