التحقق من صحة أوراق اعتماد API المستخدم - القضبان، ActiveMerchant، وباي بال السريع بوابة

StackOverflow https://stackoverflow.com/questions/509021

سؤال

وأنا بناء تطبيق السوق التي تستخدم باي بال السريع. لقد حصلت على شكل للبائعين لإدخال أوراق اعتماد API باي بال، ولكن أنا بحاجة إلى وسيلة للتحقق من صحة لهم بجعل نوعا من الدعوة إلى PayPal.

وأنا باستخدام PaypalExpressGateway في ActiveMerchant، وأنا لا أرى أي شيء آخر من الضوابط شراء القياسية. هل هناك أي نوع من خالية العملية التي يمكن استخدامها؟

وأي مساعدة سيكون موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

لأسباب أمنية ليس هناك طريقة لمعرفة ما اذا كان البريد الإلكتروني هو حساب باي بال صالح. يمكنك دائما معاملة صغيرة ومن ثم إبطال أنه إذا كان مطلوبا صحة الحساب حقا.

نصائح أخرى

وأنا باستخدام TransactionSearch العملية لهذا الغرض. تحديد STARTDATE=2100-01-01 00:00:00 أنه يؤدي في الأساس في أي المرجع.

ووسوف تحقق من صحة وثائق التفويض بالنسبة لك، دون الحاجة إلى أي مدخلات إضافية من البائع.

وليس لدي الجواب شخصيا. لكنني أعرف ريان بيتس من Railscasts.com خصصت مؤخرا ستة (!) حلقات لActiveMerchant باي بال، وعلى وجه الخصوص. تحقق من حلقة رقم 141 من خلال # 146 في railscasts.com .

وطيب، وبعد 4 ساعات ...

module ActiveMerchant #:nodoc:
  module Billing #:nodoc:
    class PaypalExpressGateway < Gateway

      def get_balance(options = {})
        commit 'GetBalance', build_get_balance_request(options)
      end

    private
      def build_get_balance_request(options)
        xml = Builder::XmlMarkup.new :indent => 2
        xml.tag! 'GetBalanceReq', 'xmlns' => PAYPAL_NAMESPACE do
          xml.tag! 'GetBalanceRequest', 'xmlns:n2' => EBAY_NAMESPACE do
            xml.tag! 'n2:Version', API_VERSION
            xml.tag! 'n2:ReturnAllCurrencies', '1'
          end
        end

        xml.target!
      end
    end
  end
end

class SellerMerchantValidator < ActiveModel::Validator
  def validate(record)
    paypal_attrs = ['paypal_api_username', 'paypal_api_password', 'paypal_api_signature']
    if record.paypal_merchant? && (record.changed - paypal_attrs).size < record.changed.size # one of paypal_attrs changed
      response = record.gateway.get_balance
      unless response.params['balance'].present?
        record.errors[:base] << "Please check the PayPal details and make sure all three are entered correctly."
      end
    end
  end
end

وبفضل نيلز لفكرة للتحقق من TransactionSearch.

واسمحوا لي أن أعرف إذا كان هناك طريقة أفضل للتحقق مما إذا تغيرت أي حقل المعهد.

وهناك أيضا دعوة للGetBalance في API. بعض نموذج التعليمات البرمجية

ويبدو أن أبسط (وأسرع؟) وسيلة.

وباي بال لا يكون لها API AddressVerify. ويؤكد ما إذا كان العنوان البريدي والرمز البريدي تتطابق مع تلك لصاحب الحساب باي بال المحدد. أنا في عملية تنفيذ ذلك على موقعنا على شبكة الإنترنت في الوقت الراهن، في الواقع.

ويمكنك قراءة المزيد حول هذا الموضوع هنا:
https://www.x.com/docs/DOC-1162#id0862M0QH02L

وهنا:
https://cms.paypal.com/us / المجموعة الاستشارية لاندونيسيا بن /؟ وكمد = _render المحتوى وcontent_ID = المطور / e_howto_api_nvp_r_AddressVerify

والحق، لذلك إذا كنت ترغب في اختبار أوراق اعتماد المستخدم باستخدام ActiveMerchant، استخدم الطريقة transaction_search على بوابة

HTTPS: // جيثب. كوم / Shopify / active_merchant / فقاعة / cb72e0f9c58f57b1293e6e976229b26cfbfee6a8 / ليب / active_merchant / الفواتير / بوابات / باي بال / 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})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top