2013-11-20 37 views
1

我正在研究一個應用程序,其中用戶A可以購買多達10個來自不同賣家的商品,因此我需要同時向不同的用戶匯款,並且我正在嘗試使用Paypal Chained Payments。還有什麼我應該發送的PayPal鏈接付款?

現在我只是在玩弄經典API(自適應支付),但我只是想知道爲什麼我總是收到此錯誤:

"The fee payer PRIMARYRECEIVER can only be used if a primary receiver is specified" 

我已經指定了一個主接收機和我米仍然得到這個錯誤。

我發現這些例子:https://paypal-sdk-samples.herokuapp.com/adaptive_payments/pay ,我試圖做一個鏈式支付:

這是我的工資要求:

require 'paypal-sdk-adaptivepayments' 
@api = PayPal::SDK::AdaptivePayments::API.new 

# Build request object 
@pay = @api.build_pay({ 
    :actionType => "PAY", 
    :cancelUrl => "https://paypal-sdk-samples.herokuapp.com/adaptive_payments/pay", 
    :currencyCode => "USD", 
    :feesPayer => "PRIMARYRECEIVER", 
    :ipnNotificationUrl => "https://paypal-sdk-samples.herokuapp.com/adaptive_payments/ipn_notify", 
    :receiverList => { 
    :receiver => [{ 
     :amount => 1.0, 
     :email => "[email protected]", 
     :primary => true }] }, 
    :returnUrl => "https://paypal-sdk-samples.herokuapp.com/adaptive_payments/pay", 
    :sender => { 
    :useCredentials => true } }) 

# Make API call & get response 
@pay_response = @api.pay(@pay) 

這是響應

{ 
    :responseEnvelope => { 
    :timestamp => "2013-11-20T05:16:31-08:00", 
    :ack => "Failure", 
    :correlationId => "b002d0e27fd33", 
    :build => "7935900" }, 
    :error => [{ 
    :errorId => 580023, 
    :domain => "PLATFORM", 
    :subdomain => "Application", 
    :severity => "Error", 
    :category => "Application", 
    :message => "The fee payer PRIMARYRECEIVER can only be used if a primary receiver is specified", 
    :parameter => [{ 
     :value => "feesPayer" },{ 
     :value => "PRIMARYRECEIVER" }] }] } 

提前致謝!

回答

3

看看你的電話,你確實指定了一個主接收器。但是,對於鏈接付款,您必須指定一個輔助接收方。

我只是跑有以下paramters快速測試:

actionType = PAY 
requestEnvelope.errorLanguage = en_US 
cancelUrl = http://abortURL 
returnUrl = http://returnURL 
ipnNotificationUrl = http://ipnURL 
applicationId = Test 
memo = Test 
currencyCode = USD 
receiverList.receiver(0).email = [email protected] 
receiverList.receiver(0).amount = 5.00 
receiverList.receiver(0).primary = true 
feesPayer = PRIMARYRECEIVER 

,並得到了結果:

responseEnvelope.timestamp=2013-11-20T05:41:56.751-08:00 
responseEnvelope.ack=Failure 
responseEnvelope.correlationId=b61a6b31ea2ab 
responseEnvelope.build=7935900 
error(0).errorId=580023 
error(0).domain=PLATFORM 
error(0).subdomain=Application 
error(0).severity=Error 
error(0).category=Application 
error(0).message=The fee payer PRIMARYRECEIVER can only be used if a primary receiver is specified 
error(0).parameter(0)=feesPayer 
error(0).parameter(1)=PRIMARYRECEIVER 

但是,一旦我改變FeesPayer到EACHRECEIVER,我得到的錯誤消息導致鏈接付款失敗首先:

responseEnvelope.timestamp=2013-11-20T05:48:09.202-08:00 
responseEnvelope.ack=Failure 
responseEnvelope.correlationId=987210ec4d03a 
responseEnvelope.build=7935900 
error(0).errorId=579008 
error(0).domain=PLATFORM 
error(0).subdomain=Application 
error(0).severity=Error 
error(0).category=Application 
error(0).message=You must specify only one primary receiver and at least one secondary receiver 
error(0).parameter(0)=1 

我希望這可以幫助秒。

請參考http://paypal.github.io/#adaptive-payments下可用的PayPal自適應付款SDK,以獲取其他一些示例和靈感