2016-07-18 3 views
-1

Я новичок в интеграции Stripe. Я прочитал документацию API для Stripe, и вот поток OAuth. Но я до сих пор не получаю токена доступа OAuth. Может кто-нибудь объяснить, как я могу получить токен доступа? Благодаря!Не удается получить токен доступа в полосе

if (isset($_GET['code'])) { // Redirect w/ code 
 
    $code = $_GET['code']; 
 

 
    $token_request_body = array(
 
    'grant_type' => 'authorization_code', 
 
    'client_id' => 'ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7', 
 
    'code' => $code, 
 
    'client_secret' => '' 
 
); 
 

 
    $req = curl_init(TOKEN_URI); 
 
    curl_setopt($req, CURLOPT_RETURNTRANSFER, true); 
 
    curl_setopt($req, CURLOPT_POST, true); 
 
    curl_setopt($req, CURLOPT_POSTFIELDS, http_build_query($token_request_body)); 
 

 
    // TODO: Additional error handling 
 
    $respCode = curl_getinfo($req, CURLINFO_HTTP_CODE); 
 
    $resp = json_decode(curl_exec($req), true); 
 
    curl_close($req); 
 

 
    echo $resp['access_token']; 
 
} else if (isset($_GET['error'])) { // Error 
 
    echo $_GET['error_description']; 
 
} else { // Show OAuth link 
 
    $authorize_request_body = array(
 
    'response_type' => 'code', 
 
    'scope' => 'read_write', 
 
    'client_id' => 'ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7' 
 
); 
 

 
    $url = AUTHORIZE_URI . '?' . http_build_query($authorize_request_body); 
 
    echo "<a href='$url'>Connect with Stripe</a>"; 
 
}

+0

Вы должны катиться этот ключ API сразу, поскольку вы разместил его здесь. Несмотря на то, что это тестовый ключ, вы никогда не должны публиковать секретные ключи публично. – Adamjstevenson

ответ

0

Вы должны использовать клиентскую библиотеку OAuth 2.0 для этого вместо того, чтобы пытаться свернуть это самостоятельно, как предложено Stripe: https://stripe.com/docs/connect/standalone-accounts#sample-code

Есть многие из них, но это довольно хороший вариант: https://github.com/thephpleague/oauth2-client

Вы можете изменить этот пример и получить идентификатор учетной записи как так:

$provider->getResourceOwner($accessToken)->getId(); 

После получения учетной записи ID, вы бы хранить и использовать для аутентификации в качестве подключенного счета, как было предложено Stripe: https://stripe.com/docs/connect/authentication#authentication-via-the-stripe-account-header