有没有关于如何将paypal连接到activemerchant的好教程? Rails cast剧集非常陈旧,我需要Rails 4的东西。另一个问题,在rails cast中,他们在初始化器中启动网关。但是在activemerchant文档中,他们在付款之前就发起了它。我认为它在控制器中。什么是正确而安全的方法呢?
PS:我需要人们去PAYPAL并通过提供信用卡或通过PayPal帐户进行付款。
答案 0 :(得分:3)
其中一种方法是编写一个包含以下步骤的模块或类。确保您传递了正确的值并且总计正在相加。
<强> 1。准备网关
paypal_express_params = {
login: ENV['PAYPAL_LOGIN'],
password: ENV['PAYPAL_PASSWORD'],
signature: ENV['PAYPAL_SIGNATURE']
}
gateway = ActiveMerchant::Billing::PaypalExpressGateway.new(paypal_express_params)
<强> 2。设置购买
setup_hash = {
ip: '170.170.1.1',
items: [{name: 'sample', quantity: 1, amount: 100_00, description: 'desc'}],
subtotal: 10000,
shipping: 0,
handling: 0,
tax: 0,
currency: 'USD',
return_url: 'http://localhost:3000/success',
cancel_return_url: 'http://localhost:3000/failure',
allow_guest_checkout: true
}
response = gateway.setup_purchase(100_00, setup_hash) # 100 USD
第3。生成PayPal网址
url = gateway.redirect_url_for(response.token)
# => https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=XXXXXXXXXXXXXX
之后,您只需在用户完成购买后从PayPal捕获数据。
有几种方法可以做到这一点但重要的是:
- 让它先工作
- 确保密钥和机密没有在您的Rails代码中进行硬编码
- 将代码包装在类或模块中以清理内容
- 阅读PayPal文档(不仅仅是ActiveMerchant)
醇>