التحقق من صحة أوراق اعتماد API المستخدم - القضبان، ActiveMerchant، وباي بال السريع بوابة
-
21-08-2019 - |
سؤال
وأنا بناء تطبيق السوق التي تستخدم باي بال السريع. لقد حصلت على شكل للبائعين لإدخال أوراق اعتماد 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
والحق، لذلك إذا كنت ترغب في اختبار أوراق اعتماد المستخدم باستخدام ActiveMerchant، استخدم الطريقة transaction_search على بوابة
وهذا المثال سوف يعود نجاح (تأكد من ملء أوراق الاختبار)
@username = ''
@password = ''
@signature = ''
gateway = ActiveMerchant::Billing::PaypalExpressGateway.new(
login: @username,
password: @password,
signature: @signature,
test: true
)
gateway.transaction_search({start_date: DateTime.now})