Как начать работу из песочницы с помощью Paypal php SDK

Я получаю 401 ошибку после переключения на использование живого ключа. Я получаю сообщение об ошибке 401 invalid_client Ошибка аутентификации клиента.

Какие шаги мне нужно выполнить, чтобы переключиться с песочницы на Live при использовании PayPal PHP SDK?


person going    schedule 18.11.2016    source источник


Ответы (1)


Информация, представленная на официальной странице github для PHP SDK. частично верны.

Два обязательных шага:

  • Обновите свой ключ и секрет
  • Убедитесь, что ваша конфигурация настроена на «живую»

Однако, так как в песочнице все работает из коробки без какой-либо конфигурации и только ключи, инструкции по созданию конфигурационного файла или настройке конфигурации через код нет.

У вас есть два варианта настройки конфигурации живого сайта:

  1. Задайте конфигурацию с помощью кода при создании $apiContext. См. пример кода ниже:

    $apiContext = new \PayPal\Rest\ApiContext(
        new \PayPal\Auth\OAuthTokenCredential(
            $this->client_id,     // ClientID
            $this->client_secret      // ClientSecret
        )
    );
    
    $apiContext->setConfig(
        array(
            'mode' => 'LIVE',
            'log.LogEnabled' => true,
            'log.FileName' => '../PayPal.log',
            'log.LogLevel' => 'INFO', // PLEASE USE `INFO` LEVEL FOR LOGGING IN LIVE ENVIRONMENTS
        )
    );  
    
  2. Установите конфигурацию через файл sdk_config.ini. Обратите внимание, что SDK специально ищет имя файла «sdk_config.ini». Существует образец файла конфигурации, который вы можете повторно использовать в \PayPal-PHP-SDK\paypal\rest-api-sdk-php\tests\

Чтобы убедиться, что файл sdk_config.ini найден и правильно загружен, у вас есть два варианта. Если вы используете файл bootstrap.ini, вы можете определить константу PP_CONFIG_PATH, которую SDK будет использовать для поиска местоположения вашего файла sdk_config.ini.

Пример файла начальной загрузки с примером определения PP_CONFIG_PATH также находится в папке \tests\, упомянутой выше.

Второй вариант — поместить файл конфигурации в это место "\vendor\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Core..\config\sdk_config.ini", снова в это место жестко закодирован в SDK.

ПРИМЕЧАНИЕ. В инструкциях, представленных на странице github, предлагается установить для переменной режима значение «live», но оператор switch в коде ищет «SANDBOX» или «LIVE», и по умолчанию для него установлено значение «PayPalConstants::REST_SANDBOX_ENDPOINT», что определяется в "\lib\PayPal\Core\PayPalConstants.php"

Чтобы помочь с отладкой и убедиться, что ваша конечная точка установлена ​​​​правильно, проверьте функцию _getEndpoint ($ config) : 77 в файле OauthHandler.php.

person going    schedule 18.11.2016
comment
Прошел год, и ваш ответ спас мне жизнь! Четко, лаконично и работает. Вариант 1 помог мне. Я удивлен, что нет голосов. СПАСИБО, что поделились своими решениями. - person iSofia; 31.07.2017
comment
как только я меняю его, чтобы жить, он начинает давать проблемы с закрытием - person Ahsan Hussain; 14.03.2019