Comment créer une bande en charge avec une caisse jeton envoyé via AJAX, php

Je suis en train d'utiliser de Bande de la nouvelle fonction commande à un bouton personnalisé, envoyer le jeton via AJAX POST à un fichier php qui exécute alors la charge. Malheureusement, j'ai un peu de difficulté à extraire le jeton de la variable POST. J'espère que quelqu'un ici pourrait être en mesure de me dire ce que je suis de compliquer à l'excès et s'il y a un moyen plus simple de faire cela.

Sur le côté client, j'ai 5 boutons avec différentes possible de "dons". Voici le js écrit pour que la mesure (ne pas inclure le code html):

$(function() {

  var donationAmt = '';
  var handler = StripeCheckout.configure({
    key: 'pk_test_3plF76arhkygGMgwCEerThpa',
    image: '/square-image.png',
    token: function(token, args) {
      //Use the token to create the charge with a server-side script.
      //You can access the token ID with `token.id`
      console.log(token)
      var chargeData = {
        donationAmt: donationAmt,
        token: token
      }
      $.ajax({
          url: '/link/to/php/stripeDonate.php',
          type: 'post',
          data: {chargeData: chargeData},
          success: function(data) {
            if (data == 'success') {
                console.log("Card successfully charged!")
            }
            else {
                console.log("Success Error!")
            }

          },
          error: function(data) {
                console.log("Ajax Error!");
                console.log(data);
          }
        }); //end ajax call
    }
  });

  $('.donate-button').bind('click', function(e) {
    donationAmt = $(this).html().substring(1) + '00';
    donationAmt = parseInt(donationAmt); //Grabs the donation amount in the html of the button and store it in a variable
    //Open Checkout with further options
    handler.open({
      name: 'Company Name',
      description: 'A donation',
      amount: donationAmt
    });
    e.preventDefault();
  });
});

Et c'est mon php qui est le traitement de l'AJAX appel POST:

<?php

require_once('Stripe.php');

//Set your secret key: remember to change this to your live secret key in production
//See your keys here https://manage.stripe.com/account
Stripe::setApiKey("sk_test_APIKEYREDACTED");

//Get the credit card details submitted by the form
$token = json_decode($_POST['chargeData']);
$tokenid = $token['id'];

//Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = Stripe_Charge::create(array(
  "amount" => 2000, //amount in cents, again
  "currency" => "usd",
  "card" => $tokenid,
  "description" => "[email protected]")
);
echo 'success';
} catch(Stripe_CardError $e) {
  //The card has been declined
    echo $tokenid;
}

?>

Le résultat direct de ce code, comme indiqué dans les logs d'erreur php, c'est que la variable POST pour le jeton ne peut pas être "read". Le jeton est créé très bien (je le vois connecté sur la console), mais il disparaît quand je l'envoyer via AJAX.

Tout le monde a été de dire que la Bande est super facile à mettre en œuvre afin que je suis vraiment l'impression qu'il me manque quelque chose ici. Quelqu'un pour être en mesure de jeter un peu de lumière?

Merci!

OriginalL'auteur jdchizzle | 2014-03-17