2014-12-05 6 views
2

Я начинаю с Stripe Payment и должен подключить пользователя к моему файлу Stripe. Я следую за guildance в Stripe, чтобы получить accesss_token с кодом PHP:PHP - Stripe Connect return null

// See full code example here: https://gist.github.com/3507366 

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

    $token_request_body = array(
    'grant_type' => 'authorization_code', 
    'client_id' => 'ca_*************************', 
    'code' => $code, 
    'client_secret' => 'sk_test_************************' 
); 

    $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_************************' 
); 

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

Но ответ от Stripe всегда нуль. Кто-нибудь испытал такую ​​же проблему, как раньше. Любая помощь будет очень полезной для меня на этот раз.

спасибо.

ответ

2

После некоторого времени отладки я обнаружил, что проблема связана с библиотекой cURL моего PHP-сервера. Кажется, cURL не работает с HTTPS. И база по этой теме: PHP cURL Not Working with HTTPS я найти решение, чтобы сделать его запустить в обход проверки:

... 
curl_setopt($req, CURLOPT_POSTFIELDS, http_build_query($token_request_body)); 
curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false); // Bypass the verification 
$resp = json_decode(curl_exec($req), true); // Now has response well. 
... 

P/s: Это не очень хорошее решение, лучше сделать больше исследований (here)

Я надеюсь, что это поможет начинающему, как я :)