문제

PayPal Express를 사용하는 마켓 플레이스 애플리케이션을 구축하고 있습니다. 판매자가 PayPal API 자격 증명을 입력 할 수있는 양식이 있지만 PayPal에 전화를 걸어 검증 할 수있는 방법이 필요합니다.

ActiveMerchant에서 PayPalexPressGateway를 사용하고 있으며 표준 구매 컨트롤 이외의 다른 것은 없습니다. 사용할 수있는 널리 작동이 있습니까?

모든 도움이 크게 감사드립니다!

도움이 되었습니까?

해결책

보안상의 이유로 이메일이 유효한 페이팔 계정인지 확인하는 방법이 없습니다. 항상 작은 트랜잭션을 수행 한 다음 계정 유효성이 실제로 필요한 경우 무효화 할 수 있습니다.

다른 팁

나는 그것을 사용하고있다 트랜잭션 검색 이 목적을위한 작동. 지정하여 STARTDATE=2100-01-01 00:00:00 기본적으로 No-OP가 발생합니다.

판매자의 추가 입력 없이는 귀하의 자격 증명을 검증합니다.

개인적으로 답이 없습니다. 그러나 나는 Railscasts.com의 Ryan Bates가 최근에 ActiveMerchant와 PayPal에 6 개의 에피소드를 바쳤다는 것을 알고 있습니다. 에피소드 #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를 확인해 주신 아이디어에 대한 Neils에게 감사드립니다.

API 필드가 변경되었는지 확인하는 더 좋은 방법이 있는지 알려주십시오.

API에는 GetBalance에 대한 요청도 있습니다.일부 샘플 코드

가장 단순하고 가장 빠른 방법처럼 보입니다.

PayPal에는 an이 있습니다 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

맞아요

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})
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top