验证用户的 API 凭证 - Rails、ActiveMerchant 和 PayPal Express Gateway

Posted

技术标签:

【中文标题】验证用户的 API 凭证 - Rails、ActiveMerchant 和 PayPal Express Gateway【英文标题】:Validating user's API credentials - Rails, ActiveMerchant, and PayPal Express Gateway 【发布时间】:2010-10-05 06:33:35 【问题描述】:

我正在构建一个使用 PayPal Express 的市场应用程序。我有一个表格供卖家输入他们的 PayPal API 凭据,但我需要一种方法来通过对 PayPal 进行某种调用来验证它们。

我在 ActiveMerchant 中使用 PaypalExpressGateway,除了标准的购买控件外,我没有看到任何其他内容。有什么可以使用的空操作吗?

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

我个人没有答案。但我知道 Railscasts.com 的 Ryan Bates 最近专门为 ActiveMerchant 和 Paypal 投放了六集(!)。在railscasts.com查看第 141 到第 146 集。

【讨论】:

【参考方案2】:

出于安全原因,无法检查电子邮件是否为有效的贝宝帐户。如果确实需要帐户有效性,您可以随时进行小额交易,然后将其作废。

【讨论】:

【参考方案3】:

PayPal 确实有一个AddressVerify API。它确认邮政地址和邮政编码是否与指定 PayPal 帐户持有人的邮政编码匹配。事实上,我现在正在我们的网站上实施它。

您可以在此处阅读更多信息:https://www.x.com/docs/DOC-1162#id0862M0QH02L

这里:https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_AddressVerify

【讨论】:

【参考方案4】:

我为此目的使用TransactionSearch 操作。通过指定STARTDATE=2100-01-01 00:00:00,它基本上会导致无操作。

它将为您验证凭据,而无需卖家提供任何额外输入。

【讨论】:

【参考方案5】:

好的,4 小时后...

模块 ActiveMerchant #:nodoc: 模块计费#:nodoc: 类 PaypalExpressGateway 2 xml.tag! 'GetBalanceReq', 'xmlns' => PAYPAL_NAMESPACE 做 xml.tag! 'GetBalanceRequest', 'xmlns:n2' => EBAY_NAMESPACE 做 xml.tag! 'n2:版本',API_VERSION xml.tag! 'n2:ReturnAllCurrencies', '1' 结尾 结尾 xml.target! 结尾 结尾 结尾 结尾 类 SellerMerchantValidator

感谢 Neils 检查 TransactionSearch 的想法。

如果有更好的方法来检查是否有任何 api 字段发生更改,请告诉我。

【讨论】:

【参考方案6】:

API 中还调用了 GetBalance。 Some sample code

看起来是最简单(也是最快?)的方法。

【讨论】:

【参考方案7】:

没错,所以如果你想使用 ActiveMerchant 测试用户的凭据,请使用网关上的 transaction_search 方法

https://github.com/Shopify/active_merchant/blob/cb72e0f9c58f57b1293e6e976229b26cfbfee6a8/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb

此示例将返回成功(确保填写您的测试凭据)

@username = ''
@password = ''
@signature = ''
gateway = ActiveMerchant::Billing::PaypalExpressGateway.new(
  login:      @username,
  password:   @password,
  signature:  @signature,
  test:       true
)

gateway.transaction_search(start_date: DateTime.now)

【讨论】:

以上是关于验证用户的 API 凭证 - Rails、ActiveMerchant 和 PayPal Express Gateway的主要内容,如果未能解决你的问题,请参考以下文章

Rails API - 无法创建用户,密码是FILTERED并返回所有验证错误

Rails API 用户身份验证接受来自 React 代理的 api 调用,但不直接来自主机 url

是否可以使用客户端凭证授予类型来验证将由 SailPoint(IAM) 使用的 WEB API

使用 Devise 从 Rails 上的 json api 进行身份验证

身份服务器刷新令牌资源所有者密码凭证流

Devise / Rails登录无法正常工作 - “无效的电子邮件或密码”