Я следую за Руководство: интегрируйте вход в систему с PayPal в попытке заставить его работать на WordPress 4.7.1. Я успешно встроил кнопку Войти через PayPal. Нажав на нее, вы получаете логин, который затем перенаправляет на «returnurl».
В настоящее время я застрял, пытаясь передать код авторизации, полученный на предыдущем шаге, конечной точке службы токенов для получения токена доступа.
Мой «returnurl» имеет этот код скручивания (как предложено Руководство: выдать токен из кода авторизации):
<?php
$curl = curl_init( 'https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice' );
// not $curl = curl_init( 'https://api.sandbox.paypal.com/v1/oauth2/token' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1);
$code = $_GET['code']; // The code from the previous request
$redirect_uri = 'http://xxxxxx.contemplate.me.ke/';
curl_setopt( $curl, CURLOPT_POSTFIELDS, array(
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code',
'code' => $code
) );
curl_setopt( $curl, CURLOPT_USERPWD,
"My-Client-Id" . ":" .
"My-Secret");
$auth = curl_exec( $curl );
print '$auth = ';print_r($auth); // to see the error
$secret = json_decode($auth);
$access_key = $secret->access_token;
?>
Все, что я получаю от этого после входа в систему:
$auth = {"error_description":"Grant type is null","error":"invalid_grant","correlation_id":"0f5787fc6413f","information_link":"https://developer.paypal.com/docs/api/#errors"}
Что я делаю неправильно?
Я только что нашел Как реализовать вход пользователя с помощью PayPal который использует GET вместо POST, и это сработало! Я получил свой токен.
Других решений пока нет …