Ошибка № 520009 — учетная запись ограничена

Я получаю ошибку 520009 (Учетная запись [email protected] ограничена) при попытке сделать параллельный платеж. Мой код отлично работал в песочнице, но я переключился на живую конечную точку, и она начала давать сбой. Рассматриваемая учетная запись является действительной учетной записью PayPal, и я использую «feespayer=SENDER». Я что-то пропустил? Разве платежный звонок не должен пройти, даже если получатель платежа является основным аккаунтом? Почему это может произойти?

Вот мой код для справки

function deposit($config) {
    try {
        if (isset($config['return_url']))
            $this->return_url = $config['return_url'];
        else
            return 'Return URL should be set';

        if (isset($config['return_url']))
            $this->cancel_url = $config['cancel_url'];
        else
            return 'Cancel URL should be set';

        if (isset($config['email']))
            $this->sender_email = $config['email'];
        else
            return 'Email should be defined';

        if (isset($config['amount']))
            $this->amount = $config['amount'];
        else
            return 'Amount should be defined';

        $returnURL = $this->return_url;
        $cancelURL = $this->cancel_url;
        $currencyCode = 'USD';
        $memo = 'Deposit to ' . $this->ci->config->item('site_name');
        $feesPayer = 'SENDER';


        $payRequest = new PayRequest();
        $payRequest->actionType = "PAY";
        $payRequest->cancelUrl = $cancelURL;
        $payRequest->returnUrl = $returnURL;
        $payRequest->clientDetails = new ClientDetailsType();
        $payRequest->clientDetails->applicationId = $this->ci->config->item('application_id');
        $payRequest->clientDetails->deviceId = $this->ci->config->item('device_id');
        $payRequest->clientDetails->ipAddress = $this->ci->input->ip_address();
        $payRequest->currencyCode = $currencyCode;
        //$payRequest->senderEmail = $this->sender_email;
        $payRequest->requestEnvelope = new RequestEnvelope();
        $payRequest->requestEnvelope->errorLanguage = "en_US";

        $receivers = array();

        $receiver = new receiver();
        $receiver->email = $this->ci->config->item('moneyfan_account');
        $receiver->amount = $this->amount;
        $receiver->primary = 'false';

        $receivers[] = $receiver;

        $payRequest->receiverList = $receivers;
        $payRequest->feesPayer = $feesPayer;
        $payRequest->memo = $memo;

        $ap = new AdaptivePayments();
        $response = $ap->Pay($payRequest);            
        if (strtoupper($ap->isSuccess) == 'FAILURE') {


            $this->ci->session->set_userdata('FAULTMSG', $ap->getLastError());
            return json_encode(array('status' => 'false', 'msg' => $ap->getLastError()->error->errorId .' : '. $ap->getLastError()->error->message));
            //redirect(site_url('home/api_error'));
        } else {
            $this->ci->session->set_userdata('payKey', $response->payKey);
            if ($response->paymentExecStatus == "COMPLETED") {
                redirect($returnURL);
            } else {
                $token = $response->payKey;
                $payPalURL = PAYPAL_REDIRECT_URL . '_ap-payment&paykey=' . $token;
                return json_encode(array('status' => 'true', 'msg' => $payPalURL));
                //header("Location: " . $payPalURL);
            }
        }
    } catch (Exception $ex) {

        $fault = new FaultMessage();
        $errorData = new ErrorData();
        $errorData->errorId = $ex->getFile();
        $errorData->message = $ex->getMessage();
        $fault->error = $errorData;
        $this->ci->session->set_userdata('FAULTMSG', $fault);
        redirect(site_url('home/api_error'));
    }
}

person Avinash    schedule 03.09.2012    source источник
comment
Есть ли у владельца приложения бизнес-аккаунт PayPal?   -  person dearlbry    schedule 07.09.2012
comment
это работает без части $payRequest->feesPayer = ...?   -  person pencil    schedule 14.09.2012


Ответы (2)


Нет! Вы не можете сделать это с базовой учетной записью.

Для работы API вам необходимо иметь ПОДТВЕРЖДЕННЫЙ бизнес-аккаунт.

В их API сказано:

ПРИМЕЧАНИЕ.
Владелец приложения должен иметь учетную запись PayPal Business.

person Mihai Iorga    schedule 07.09.2012
comment
Мой аккаунт подтвержден бизнес-аккаунтом - person Avinash; 10.09.2012
comment
Все ли получатели имеют учетные записи PayPal, а также $config['email'] является действительной учетной записью PayPal? - person Mihai Iorga; 10.09.2012
comment
Вы использовали тот же адрес электронной почты в $config['email'], что и в тестовой среде PayPal? - person Mihai Iorga; 14.09.2012

Существует два источника информации об API PayPal: страницы cms.paypal.com, подобные той, на которую ссылается Михай Йорга, и страницы www.x.com, подобные этой: https://www.x.com

На x.com написано, что у вас должен быть проверенный бизнес-аккаунт, хотя на cms.paypal.com неясно, что это так.

person guyrt    schedule 08.09.2012