5

PayPal Express を使用するマーケットプレイス アプリケーションを構築しています。売り手が PayPal API 資格情報を入力するためのフォームを用意しましたが、PayPal に何らかの呼び出しを行うことによってそれらを検証する方法が必要です。

ActiveMerchant で PaypalExpressGateway を使用していますが、標準の購入コントロール以外には何も表示されません。使用できるヌル操作はありますか?

どんな助けでも大歓迎です!

4

7 に答える 7

2

この目的でTransactionSearch操作を使用しています。これを指定するSTARTDATE=2100-01-01 00:00:00と、基本的にノーオペレーションになります。

販売者からの追加の入力を必要とせずに、資格情報を検証します。

于 2011-01-20T09:41:28.800 に答える
1

API には GetBalance の呼び出しもあります。 サンプルコード

最も簡単な (そして最も速い?) 方法のように見えます。

于 2011-02-06T00:28:18.980 に答える
1

セキュリティ上の理由から、電子メールが有効なペイパル アカウントであるかどうかを確認する方法はありません。アカウントの有効性が本当に必要な場合は、いつでも少額の取引を行ってから無効にすることができます。

于 2009-12-17T08:12:54.670 に答える
1

そうです、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})
于 2014-05-13T13:56:31.217 に答える
1

よし、4時間後…

モジュール ActiveMerchant #:nodoc:
  モジュール課金 #:nodoc:
    クラス PaypalExpressGateway < ゲートウェイ

      def get_balance (オプション = {})
        commit 'GetBalance', build_get_balance_request(オプション)
      終わり

    プライベート
      def build_get_balance_request (オプション)
        xml = Builder::XmlMarkup.new :indent => 2
        xml.tag! 'GetBalanceReq', 'xmlns' => PAYPAL_NAMESPACE do
          xml.tag! 'GetBalanceRequest', 'xmlns:n2' => EBAY_NAMESPACE do
            xml.tag! 「n2:バージョン」、API_VERSION
            xml.tag! 'n2:ReturnAllCurrencies', '1'
          終わり
        終わり

        xml.target!
      終わり
    終わり
  終わり
終わり

class SellerMerchantValidator < ActiveModel::Validator
  デフ検証(記録)
    paypal_attrs = ['paypal_api_username', 'paypal_api_password', 'paypal_api_signature']
    もしrecord.paypal_merchant? && (record.changed - paypal_attrs).size < record.changed.size # paypal_attrs の 1 つが変更されました
      応答 = record.gateway.get_balance
      response.params['balance'].present でない限り?
        record.errors[:base] << "PayPal の詳細を確認し、3 つすべてが正しく入力されていることを確認してください。"
      終わり
    終わり
  終わり
終わり

TransactionSearch をチェックするアイデアを提供してくれた Neils に感謝します。

API フィールドのいずれかが変更されたかどうかを確認するより良い方法があれば教えてください。

于 2011-01-23T04:26:43.990 に答える
1

個人的には答えがありません。しかし、Railscasts.com の Ryan Bates が最近、特に ActiveMerchant と Paypal に 6 つ (!) のエピソードを割いていることは知っています。railscasts.comでエピソード #141 から #146 をチェックしてください。

于 2009-02-11T08:49:10.963 に答える
0

PayPal にはAddressVerifyAPI があります。指定された 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

于 2010-01-26T01:16:36.643 に答える