Я пытаюсь начать работу с установкой экспресс-проверки с использованием nvp.
Я настроил бизнес-аккаунт в песочнице и сгенерировал учетные данные подписи доступа API.
$this->NVPCredentials = 'USER=' . credentials['username'];
$this->NVPCredentials .= '&PWD=' . credentials['password'];
$this->NVPCredentials .= '&VERSION=108.0';
$this->NVPCredentials .= '&SIGNATURE=' . credentials['signature'];
завернул учетные данные, как показано выше + все детали, необходимые для платежных реквизитов для создания строки nvp, а ниже — вызов curl
$curl = curl_init('https://api-3t.sandbox.paypal.com/nvp');
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
$ Request содержит переданную строку nvp.
Я убедился, что все обязательные поля установлены, но я всегда получаю 10002 | Ошибка аутентификации / авторизации | У вас нет прав для выполнения этого вызова API
Я подумал, что это проблема с подписью, поэтому я удалил подпись и вместо этого создал файл сертификата, загрузил его из учетной записи песочницы и использовал вместо этого, но все равно та же ошибка. Неважно, что я меняю, всегда выдает одну и ту же ошибку.
curl_setopt ($ curl, CURLOPT_SSLCERT, $ pathtocertpem);
У меня заканчиваются идеи вещей, чтобы попробовать. Пожалуйста, не стесняйтесь спрашивать более подробную информацию, и, если кто-нибудь знает, что я могу делать не так, пожалуйста, не стесняйтесь. Это будет с благодарностью.
С Уважением,
Дево
Мне удалось решить проблему, передав массив вместо nvpstring для curl, а затем с помощью функции http_build_query для форматирования всех параметров
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($Request))
это, кажется, добилось цели.
Других решений пока нет …