- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在关注 Ryan Bates' railcast 146这真的很有帮助。但是,我试图从流程中删除购物车对象,并仅单独处理订单。我遇到的问题是如何确定使用两次的金额:一次设置购买,然后一次实际执行。这是我采取的做法,但它在 return_url 中公开了金额,我认为这可能是不好的做法:
class OrdersController < ApplicationController
def express
response = EXPRESS_GATEWAY.setup_purchase(params[:amount],
:ip => request.remote_ip,
:return_url => new_order_url(:amount=>params[:amount]),
:cancel_return_url => root_url
)
redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)
end
def new
@order = Order.new(:express_token => params[:token], :price_in_cents=>params[:amount])
end
然后在 View 中,我添加了一个包含金额的隐藏字段,以便在创建订单时它具有内置金额(我向订单模型添加了一个 price_in_cents 字段)。它工作正常,但将金额作为参数公开可能有点不确定。最后,购买代码如下所示:
def purchase
response = process_purchase
transactions.create!(:action => "purchase", :amount => price_in_cents, :response => response)
cart.update_attribute(:purchased_at, Time.now) if response.success?
response.success?
end
简而言之,如何在不传递参数中的金额的情况下执行此操作?
谢谢!
最佳答案
在 url 中发送金额是一种非常糟糕的做法 - 它允许一个人更改价格并以他在 URL 中指定的金额购买您出售的任何东西。
我可以看到两种解决此问题的方法:
1、可以对传递的参数进行加密,从URL中解密。查看如何加密 here
2. 您可以创建一个新实体来保存购买价格(或者如果您正在销售特定商品(因为您没有使用购物车))——您可以传递该商品的 ID 并在您购买时查询它的价格需要它)。是这样的:
类 OrdersController < ApplicationController
def express
@product = Product.find(params(:product_id));
响应 = EXPRESS_GATEWAY.setup_purchase(product.price_in_cents,
:ip => request.remote_ip,
:return_url => new_order_url(product.price_in_cents),
:cancel_return_url => root_url
)
redirect_to EXPRESS_GATEWAY.redirect_url_for(response.token)
结尾
定义新
@product = Product.find(params(:product_id));
@order = Order.new(:express_token => params[:token], :price_in_cents=> @product.price_in_cents)
结尾
关于ruby-on-rails - Paypal Express ActiveMerchant 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4567695/
嗨我想使用 activemerchant 实现 credit() 方法。为此,我正在使用 PaypalExpress Gateway。当我显示 Activemerchant 的 Rdoc 时,我看到了
我正在使用 Activemerchant 在我的应用程序中集成 Paypal 服务。 现在我想知道如何使用 ActiveMerchant 向银行或信用卡付款? 例如:我是卖家,我想付一些钱给某人。我想
有时,在本地开发时,我的连接会下降,虽然这希望不会在生产中发生,但它会引发一个问题,即当 ActiveMerchant 发送到支付网关(在我的情况下发送到 SagePay)时,我可能应该处理来自 Ac
我在哪里可以找到 ActiveMerchant 的完整示例集成使用?我可以看到大量的网关使用示例,但看不到应该如何使用集成(例如,您在 return_url 和 cancel_return_url C
我在 Ruby 1.9.3 和 Rails 3.1 中使用 ActiveMerchant gem 我已经使用 WebPayments Pro 在 PayPal 上设置了买家虚拟账户和卖家虚拟账户。当我
我正在尝试使用 ActiveMerchant 创建一个 Paypal express 交易。有没有办法将收款人设置为负责支付任何应计费用的实体? payment_hash = { ip: ip
Active Merchant 似乎是一个不错的支付工具。但是,我需要能够保存客户的付款信息,然后在以后从卡中扣款(即,在发货时而不是在下订单时)。 两者都是Braintree和 Stripe有一种方
我正在尝试将 ActiveMerchant 集成到我的 Rails 应用程序中。我有某些计划,如果订阅则限制用户访问。因为你们所有人可能都知道什么是基于订阅的应用程序,所以我不打算解释我的应用程序。请
我使用 ActiveMerchant 和 Braintree 作为我的支付处理器。我想利用 Braintree 的客户保险库功能来存储信用卡信息。 存储正常,但我无法找出使用 customer_vau
我正在尝试研究如何在我现有的网站上添加基于订阅的付费模式,但遇到了很多相互矛盾的信息,让我有点迷茫。 我所需要的只是一种通过信用卡设置定期计费(每月)的非常简单的方法。我只需要一个简单的解决方案,但很
这可能是对 Payflow Pro 技术支持的更多问题,但无论如何。我们正在尝试使用 ActiveMerchant 通过 Payflow Pro 付款实现对一张信用卡的重复收费。我们需要客户提供一次信
根据 this , ActiveMerchant PayPal Express Gateway 初始化如下: paypal_options = { login: "API_USERNAME_HER
如果我的货币不是“美元”,我无法通过 activemerchant 进行购买这是来自 response.message 的错误文本消息:指定的交易货币必须与之前指定的相同。 这是购买设置: respo
我正在与 ActiveMerchant 合作,结帐流程将完成,最终用户将被收取正确的金额,但在通过 paypal 发送给最终用户的收据上以及在 paypal 后端,商品标题和描述缺失.但它们确实出现在
我有一个 Rails 应用程序,其中包含付款表格。如图所示the official website ,我像这样创建一张新信用卡: attributes = params[:credit_card] c
多年来,我一直在 ruby 1.8 上使用旧版本的 active_merchant (v1.8) 向 SagePay 支付网上商店的款项,三天前它停止工作了。我查看了日志并发现了这些错误: Ope
Rails 有类似 ActiveMerchant 的框架和 Freemium (使用 ActiveMerchant)来简化支付处理。其他编程语言(例如 PHP 或 Python)还有哪些其他框架? 最
我正在构建一个应用程序来处理不同服务的不同类型的交易,例如订阅、礼品订阅和购买。 我对礼品交易和 activemerchant 有疑问。我将简要概述其工作原理。 用户创建礼物订阅并为其填写数据,它存储
我需要使用 ActiveMerchant 库在我们的一个 Rails 应用程序中设置支付解决方案。尽管这个问题非常主观,但人们对主要网关(BrainTree、Authorize.net 等)的体验如何
我正在尝试借助 railscasts 教程配置我的 paypal 网关和 activemerchant,但我有点困惑,因为网关信息已更改。 这是教程中的旧配置: gateway = ActiveMer
我是一名优秀的程序员,十分优秀!