2016-08-04 3 views
0

Ich habe erfolgreich das Erstellen von einfachen Zahlungen in Rails mit dem paypal-sdk-adaptivepayments Juwel implementiert. Die JSON ist wie aus der Dokumentation folgt:Was ist der JSON für PayPal Adaptive Payments Verkettete Zahlung

{ 
    :actionType => "PAY", 
    :cancelUrl => "http://localhost:3000/samples/adaptive_payments/pay", 
    :currencyCode => "USD", 
    :feesPayer => "EACHRECEIVER", 
    :ipnNotificationUrl => "http://localhost:3000/samples/adaptive_payments/ipn_notify", 
    :receiverList => { 
     :receiver => [{ 
     :amount => self.amount, 
     :email => self.help_request.creator.master_profile.paypal_email }] }, 
    :returnUrl => "http://localhost:3000/samples/adaptive_payments/pay" 
    } 

Ich brauche aber einen ähnlichen JSON-String einzurichten, aber mit mehreren Empfängern (ein primären) für eine verkettete Zahlung. Die PayPal-Dokumente zeigen, wie dies zu tun, aber es ist nicht in JSON, das ist, was ich für das SDK benötigen:

&actionType=PAY 
&cancelUrl=http:\\example.com\cancel.htm 
&currencyCode=USD 
&receiverList.receiver(0).amount=9.00 
&receiverList.receiver(0)[email protected] 
&receiverList.receiver(1).amount=5.00 
&receiverList.receiver(1)[email protected] 
&requestEnvelope.errorLanguage=en_US 
&returnUrl=http:\\example.com\return.htm 

Jeder weiß, wie dies einzurichten? Es ist nicht sofort offensichtlich

Antwort

0

Ich fand das Format, und es ist nicht intuitiv. Die Grundstruktur kann here zu sehen, wo sie es auf diese Weise zeigen:

params = { 
     'requestEnvelope' : {'errorLanguage' : 'en_US', 'detailLevel' : 'ReturnAll'}, 
     'actionType' : 'PAY', 
     'receiverList' : { 
       'receiver' : [ 
        {'email' : receiver1, 'amount' : amount1, 'primary' : True }, 
        {'email' : receiver2, 'amount' : amount2, 'primary' : False}, 
        {'email' : receiver3, 'amount' : amount2, 'primary' : False} 
       ], 
     }, 
    'currencyCode' : 'USD', 
    'memo' : 'Chained payment example.', 
    'cancelUrl' : cancel_url, 
    'returnUrl' : return_url, 
} 

Hier ist ungefähr das, was ich in meiner Anwendung verwendet:

{ 
    :actionType => "PAY", 
    :cancelUrl => "http://localhost:3000/samples/adaptive_payments/pay", 
    :currencyCode => "USD", 
    :feesPayer => "PRIMARYRECEIVER", 
    :ipnNotificationUrl => "http://localhost:3000/samples/adaptive_payments/ipn_notify", 
    :receiverList => { 
     :receiver => [{ 
     :amount => self.amount, 
     :email => self.help_request.creator.master_profile.paypal_email, 
     :primary => 'true' }, 
     { 
     :amount => self.fee_amount, 
     :email => '[email protected]', 
     :primary => 'false' } 
     ] 
     }, 
    :returnUrl => "http://localhost:3000/samples/adaptive_payments/pay" 
    } 
Verwandte Themen