-
-
Save amfeng/3507366 to your computer and use it in GitHub Desktop.
<?php | |
define('CLIENT_ID', 'YOUR_CLIENT_ID'); | |
define('API_KEY', 'YOUR_API_KEY'); | |
define('TOKEN_URI', 'https://connect.stripe.com/oauth/token'); | |
define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize'); | |
if (isset($_GET['code'])) { // Redirect w/ code | |
$code = $_GET['code']; | |
$token_request_body = array( | |
'client_secret' => API_KEY, | |
'grant_type' => 'authorization_code', | |
'client_id' => CLIENT_ID, | |
'code' => $code, | |
); | |
$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' => CLIENT_ID | |
); | |
$url = AUTHORIZE_URI . '?' . http_build_query($authorize_request_body); | |
echo "<a href='$url'>Connect with Stripe</a>"; | |
} | |
?> |
I am getting the error "Cannot POST /pages/index.php". Both index.php and my HTML file are in the same folders. The only edit I did was add my Client ID and Secret Key on the first two define lines. I then call it on my HTML code with the following:
In head
<script type="text/javascript"> function proceed() { var form = document.createElement('form'); form.setAttribute('method', 'post'); form.setAttribute('action', 'index.php'); form.style.display = 'hidden'; document.body.appendChild(form) form.submit(); } </script>
In body via my button
<script>proceed();</script>I found 3 files in the /ssl/certs/ folder
and 2 files in the /ssl/keys/ folders
but cannot find a cacert.pem file.
where is the cacert.pem file located in a standard install of cPanel?
Hi i am getting the following error
array(4) { ["client_secret"]=> string(42) "sk_test_xZZKjDRsPZb0z3KWvOCK0uXf00amK9apPF" ["grant_type"]=> NULL ["client_id"]=> string(35) "ca_HFVybE89S1Jse3hapX45PqAMaCFfI3Mr" ["code"]=> string(35) "ac_HJKaA5JoCzOwofYAxd0OYkYA4qodf78y" } array(2) { ["error"]=> string(15) "invalid_request" ["error_description"]=> string(23) "No grant type specified" }
this is my code:
API_KEY, 'grant_type' => $_GET['authorization_code'], 'client_id' => CLIENT_ID, 'code' => $code, ); var_dump($token_request_body); $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 $resp = json_decode(curl_exec($req), true); $respCode = curl_getinfo($req, CURLINFO_HTTP_CODE); curl_close($req); echo $resp['access_token']; var_dump($resp); } 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' => CLIENT_ID ); $url = AUTHORIZE_URI . '?' . http_build_query($authorize_request_body); echo "Connect with Stripe"; } any help is welcome thank you in advance
My integration with Stripe stopped working all of the sudden in Nov. of 2017. Something must've changed in their API. It took many hours of troubleshooting, but here are the steps I took to debug/test/fix my integration:
curl_setopt( $ch, CURLOPT_USERAGENT, '' );
This is not documented anywhere in their docs.