Ant Avison
Ant Avison

Reputation: 178

Stripe not charging the card

I'm having an issue with Stripe where it will happily create the token and send that over to my php charging script, at which point a 200 OK - Token log is created on the Stripe control panel. It just will not charge the card, as far as I can see I've done everything properly, I'm getting no errors, in php or from the Stripe API.

error_reporting(E_ALL);
ini_set('display_errors', 1);

$error = 0;

require_once('stripe-php-master/init.php');

$trialAPIKey = "sk_test_???";  // These are the SECRET keys!
$liveAPIKey = "sk_live_???";

\Stripe\Stripe::$apiBase = "https://api-tls12.stripe.com";

// Switch to change between live and test environments

\Stripe\Stripe::setApiKey($trialAPIKey);
/* \Stripe\Stripe::setApiKey($liveAPIKey); */

$token = $_POST['token'];
$price = $_POST['amount'];
$price = $price * 100;
$desc = $_POST['desc'];

try {
  $charge = \Stripe\Charge::create(array(
    "amount" => $price,
    "currency" => "gbp",
    "source" => $token,
    "description" => $desc
    ));
} catch(\Stripe\Error\Card $e) {
  // The card has been declined
  $error++;
}

if($error>=1) {
    echo "There was an error processing your card, please try again.";
} else {
    echo "Thank you, your payment was successful.";
}

Upvotes: 1

Views: 398

Answers (1)

Rahool Dhokiya
Rahool Dhokiya

Reputation: 135

Please use this code to stripe sucessfull charge.

<?php
require_once("stripe2/init.php");
$card_no = '4242 4242 4242 4242';
$card_exp = '05 / 20';
$card_cvc = '123';
$token  = createstripetoken($card_cvc,$card_exp,$card_no);
$testcharge = charges(10,$token); 
echo $testcharge;

function charges($amount,$token)
{
 $charge = \Stripe\Charge::create(array(
 "amount" => $amount * 100,
 "currency" => "usd",
 "source" => $token, 

 ));
$succes = 'your one time charges successfully';
return $succes;
 }
function createstripetoken($card_cvc,$card_exp,$card_no)

{

  $exp_month = substr($card_exp,0,2);

  $exp_year = substr($card_exp,5,2);


  \Stripe\Stripe::setApiKey("your key here");



   $data = \Stripe\Token::create(array(

     "card" => array(

     "number" => $card_no,

     "exp_month" => $exp_month,

    "exp_year" => $exp_year,

    "cvc" => $card_cvc

     )

    ));

  $response = json_decode(json_encode($data), True);

 $token = $response['id'];
 return $token;
  }
  ?>

Upvotes: 0

Related Questions