民间,
我希望在Grails 2.3.10网站上集成支付网关。刚刚开始划清表面上做同样的事情。我主要关注3件事
一个。如何将正确的信息发送到网关 湾获得批准后,如何将其存储在我的系统上,然后使用该信息授予对“安全”内容的正确访问权限。 C。是使用“PaidUser”之类的“角色”保护内容还是保护控制器的其他方式?
任何有关样本实施/问题处理的帮助/只是在线信息指示供我阅读&学习非常受欢迎。 谢谢。
答案 0 :(得分:0)
按照以下步骤操作:---
1)第一步是通过编辑安装插件 的grails-app / CONF / BuildConfig.groovy。在插件部分添加类似于下面的条目:
grails.project.dependency.resolution = {
plugins {
...
compile ":paypal:0.6.8"
}
}
2)要配置,只需编辑grails-app / conf / Config.groovy。 : -
环境{
production {
grails.paypal.server = "https://www.paypal.com/cgi-bin/webscr"
grails.paypal.email = "merchant@grails.asia"
grails.serverURL = "http://store.grails.asia"
}
development {
grails.paypal.server = "https://www.sandbox.paypal.com/cgi-bin/webscr"
grails.paypal.email = "merchant_test_grails@paypal.com"
grails.serverURL = "http://localhost:8080/sample"
}
}
3)创建域类:---
class ProductItem {
String name
BigDecimal price
static constraints = {
name(blank:false, nullable:false, unique: true)
price(blank:false, nullable:false)
}
}
import org.grails.paypal.Payment
class ProductPurchase {
SystemUser user
ProductItem item
Payment payment
boolean completed = false
}
4)创建购买/购买过滤器。例如,使用以下代码创建过滤器grails-app / conf / myfilters / PurchaseFilters.groovy:
class PurchaseFilters {
def filters = {
all(controller:'paypal', action:'buy') {
before = {
}
after = { Map model ->
def user = SystemUser.get(request.payment.buyerId)
def item = ProductItem.findByName(request.payment.paymentItems[0].itemName)
new ProductPurchase( user:user, payment:request.payment, item:item).save()
}
afterView = { Exception e ->
}
}
}
}
6)创建购买完成过滤器。例如,使用以下代码创建过滤器grails-app / conf / myfilters / PurchaseCompletedFilters.groovy:
class PurchaseCompletedFilters {
def filters = {
all(controller: 'paypal', action: '(success|notifyPaypal)') {
before = {
}
after = { Map model ->
def payment = request.payment
if(payment && payment.status == org.grails.paypal.Payment.COMPLETE) {
def purchase = ProductPurchase.findByPayment(payment)
if ( !purchase.completed ) {
purchase.completed = true
}
}
}
afterView = { Exception e ->
}
}
}
}
7)在gsp:----
中创建购买按钮
/<paypal:button
itemName="${item.name}"
itemNumber="${item.name}"
discountAmount="${0}"
amount="${item.price}"
buyerId="${user.id}"/>