65.9K
CodeProject 正在变化。 阅读更多。
Home

我“fork”了 Grails PayPal 插件…

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (1投票)

2009年5月2日

CPOL

2分钟阅读

viewsIcon

15619

为 Grails PayPal 插件添加更多功能。

我目前正在为我妻子的文具生意完成一个新的电子商务网站的收尾工作。我们很早之前就决定使用 PayPal 处理所有付款,因为我们在 eBay 上使用它时体验非常好。大约一年前,Graeme Rocher 完成了 PayPal 插件的最新版本,该版本可在 Grails 插件仓库中找到。它确实是一个非常不错的插件,但我遇到了一些问题。

  • 它只能处理通过“立即购买”按钮进行的单项交易付款。我想上传一个装满多种商品的完整购物车。
  • 它目前无法处理送货地址。我正在构建的网站允许用户维护一个送货地址列表,并且我想将他们选择的地址信息发送到 PayPal。
  • 小问题:需要将插件升级到 Grails 1.1。

所以,我今晚决定 fork 这个插件。我想利用迄今为止所做的所有优秀工作(尤其是 IPN 处理部分 - 非常出色),但我必须添加这两个功能并进行版本升级。有趣的是,升级后我无法直接运行测试。没有一个好的开发者喜欢在没有稳定的运行测试套件的情况下修改代码,对吧?所以,我最终做的是创建一个新的 Grails 1.1 插件项目并将原始工件复制过来。完成此操作后,所有测试都完美运行。

所以,目前我添加了第一个功能。现在您可以重定向到“uploadCart”操作。它假定您已经构建了一个 Payment 对象(现在包含 PaymentItem),并保存了它,然后传递了 transactionId。我这样做是为了让那些有多种不同购物车处理方式的人有一定的灵活性 - 责任在于您正确地将购物车映射到 Payment 对象。Graeme 实现的原始函数与旧版本兼容,假设 Payment 中只有一个 PaymentItem。我已经运行了所有原始测试,并针对我自己的 PayPal 沙盒帐户进行了手动功能测试。到目前为止一切顺利。请关注更多更新,随着它的发展。一旦我对某个东西完全满意,我将看看是否可以将其推回主插件仓库。

想仔细看看吗?请访问 http://github.com/mstine/grails-paypal-plugin/tree/master

© . All rights reserved.