Paypal 贝宝自适应支付-错误580023

Paypal 贝宝自适应支付-错误580023,paypal,paypal-adaptive-payments,Paypal,Paypal Adaptive Payments,我想执行从PAY_KEY到Paypal ID的付款。下面是我的示例代码: $PayRequestFields = array( 'ActionType' => 'PAY', 'CancelURL' => $dataArray['cancel_url'], 'CurrencyCode' => $dataArray['currency'], 'FeesPayer' => 'SENDER', 'IPNNotif

我想执行从PAY_KEY到Paypal ID的付款。下面是我的示例代码:

$PayRequestFields = array(
    'ActionType' => 'PAY',      
    'CancelURL' => $dataArray['cancel_url'],
    'CurrencyCode' => $dataArray['currency'],
    'FeesPayer' => 'SENDER',        
    'IPNNotificationURL' => '',         
    'Memo' => '',               
    'Pin' => $dataArray['pin'],     
    'PreapprovalKey' => $dataArray['sender_pre_approval_key'], 
    'ReturnURL' => $dataArray['return_url'],        
    'ReverseAllParallelPaymentsOnError' => '',      
    'SenderEmail' => '',                    
    'TrackingID' => ''                  
);

$ClientDetailsFields = array(
    'CustomerID' => '',                     
    'CustomerType' => '',                   
    'GeoLocation' => '',                    
    'Model' => '',                      
    'PartnerName' => ''                 
);

$FundingTypes = array('ECHECK', 'BALANCE', 'CREDITCARD');   

$Receivers = array();
$Receiver = array(
    'Amount' => $dataArray['primary_reciever_amount'],  
    'Email' => $dataArray['primary_reciever'],      
    'InvoiceID' => '',                  
    'PaymentType' => 'SERVICE',                 
    'PaymentSubType' => '',                 
    'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => ''), 
    'Primary' => 'FALSE'                                 
);
array_push($Receivers,$Receiver);

$SenderIdentifierFields = array(
    'UseCredentials' => ''                          
);

$AccountIdentifierFields = array(
    'Email' => '',                              
    'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => '')
);

$PayPalRequestData = array(
    'PayRequestFields' => $PayRequestFields, 
        'ClientDetailsFields' => $ClientDetailsFields, 
        //'FundingTypes' => $FundingTypes, 
        'Receivers' => $Receivers, 
        'SenderIdentifierFields' => $SenderIdentifierFields, 
        'AccountIdentifierFields' => $AccountIdentifierFields
    );
    $PayPalResult = $PayPal->Pay($PayPalRequestData);
当我执行此代码时,收到一个错误
“580023”
,上面写着
“费用支付者发送者不能与此预批准一起使用”


请为我提供指导。

如果您使用的是连锁支付,则不允许将付款人作为“发件人”。您可以查看文档以了解更多信息:

允许值为:

 SENDER – Sender pays all fees (for personal, implicit simple/parallel payments; do not use for chained or unilateral payments)

PRIMARYRECEIVER – Primary receiver pays all fees (chained payments only)

EACHRECEIVER – Each receiver pays their own fee (default, personal and unilateral payments)

SECONDARYONLY – Secondary receivers pay all fees (use only for chained payments with one secondary receiver)**

我从来没有使用过这个特殊的界面,也没有收到过这个特殊的信息,但对我来说这听起来很清楚。听起来有一些政策规定,对于此预批准,不能要求发件人支付费用。更改请求的参数,看看它是否有效。如果是这样的话,就不会有编程问题。如果您想知道原始请求被视为无效的原因,那么您应该询问PayPal,而不是StackOverflow。谢谢您的回答。
 SENDER – Sender pays all fees (for personal, implicit simple/parallel payments; do not use for chained or unilateral payments)

PRIMARYRECEIVER – Primary receiver pays all fees (chained payments only)

EACHRECEIVER – Each receiver pays their own fee (default, personal and unilateral payments)

SECONDARYONLY – Secondary receivers pay all fees (use only for chained payments with one secondary receiver)**