Bonjour,

J'ai suivi le tutoriel de stripe mais j'ai vu sur l'api de stripe qu'il y a une version 3
Est ce que quelqu'un a reussi a l'utiliser

Et si vous avez un exemples qui utilise les plan et les webhook

merci a vous

14 réponses


Je suis aussi perdu sur la nouvelle interface :(

gogo94
Auteur

il est vachement bien fais mais je comprend rien a comment utiliser le tok custumers pour faire des charge ou submition

Il est beaucoup trop complet pour des utilisateurs qui cherche juste à faire des choses simples je trouve.

J'ai galerer mais j'ai finalement réussi, disons que le tutoriel est obsolète dans le sens ou on n'utilise plus subscription mais charge

gogo94
Auteur

tu pourrai m'envoyer le code que tu as fais stp
en enlevant tes cle

Hello,

Il n'y a rien de bien sorcier.
Commence par poster ton code, même si il ne marche pas, afin que l'on t'aide ;)

gogo94
Auteur

En gros j'ai utiliser l'exemple de stripe
HTML:

<script src="https://js.stripe.com/v3/"></script>
<form>
  <label>
    <input name="cardholder-name" class="field is-empty" placeholder="Jane Doe" />
    <span><span>Name</span></span>
  </label>
  <label>
    <input class="field is-empty" type="tel" placeholder="(123) 456-7890" />
    <span><span>Phone</span></span>
  </label>
  <label>
    <div id="card-element" class="field is-empty"></div>
    <span><span>Card</span></span>
  </label>
  <button type="submit">Pay $25</button>
  <div class="outcome">
    <div class="error" role="alert"></div>
    <div class="success">
      Success! Your Stripe token is <span class="token"></span>
    </div>
  </div>
</form>

JS:

var stripe = Stripe('pk_test_...');
var elements = stripe.elements();

var card = elements.create('card', {
  iconStyle: 'solid',
  style: {
    base: {
      iconColor: '#8898AA',
      color: 'white',
      lineHeight: '36px',
      fontWeight: 300,
      fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
      fontSize: '19px',

      '::placeholder': {
        color: '#8898AA',
      },
    },
    invalid: {
      iconColor: '#e85746',
      color: '#e85746',
    }
  },
  classes: {
    focus: 'is-focused',
    empty: 'is-empty',
  },
});
card.mount('#card-element');

var inputs = document.querySelectorAll('input.field');
Array.prototype.forEach.call(inputs, function(input) {
  input.addEventListener('focus', function() {
    input.classList.add('is-focused');
  });
  input.addEventListener('blur', function() {
    input.classList.remove('is-focused');
  });
  input.addEventListener('keyup', function() {
    if (input.value.length === 0) {
      input.classList.add('is-empty');
    } else {
      input.classList.remove('is-empty');
    }
  });
});

function setOutcome(result) {
  var successElement = document.querySelector('.success');
  var errorElement = document.querySelector('.error');
  successElement.classList.remove('visible');
  errorElement.classList.remove('visible');

  if (result.token) {
    // Use the token to create a charge or a customer
    // https://stripe.com/docs/charges
    successElement.querySelector('.token').textContent = result.token.id;
    successElement.classList.add('visible');
  } else if (result.error) {
    errorElement.textContent = result.error.message;
    errorElement.classList.add('visible');
  }
}

card.on('change', function(event) {
  setOutcome(event);
});

document.querySelector('form').addEventListener('submit', function(e) {
  e.preventDefault();
  var form = document.querySelector('form');
  var extraDetails = {
    name: form.querySelector('input[name=cardholder-name]').value,
  };
  stripe.createToken(card, extraDetails).then(setOutcome);
});

Avec du CSS
Je revois comme eux le tok custumers
je sais qu'il faut utiliser ca mais quand je met un form avec un action le js bloque l'action donc a la fin je n'arrive pas a utiliser une fonction pour prelever ou faire un subscription

Je ne sais pas trop ou mettre le code charge par exemple

merci de ton aide

Hello,

Je viens de tester ton code et il fonctionne bien chez moi. Je me retrouve bien avec un token.
Est-ce que tu récupères bien ton token ?
Quel message d'erreur as-tu ?

gogo94
Auteur

non je recupere le token ce que je n'arrive pas c'est comment utiliser pour creer l'utilisateur et lui appliquer une charge par exemple

D'accord.
Du coup c'est ton code PHP qu'il me faudrait pour que je puisse t'aider ;)

gogo94
Auteur

j'ai fais ca avec l'api v2

require('Stripe.php');

    $stripe = new stripe('sk_test_....');

    $customer = $stripe->api('customers', [
        'source' => $token,
        'description' => $name,
        'email' => $email
    ]);

    if($plan==1){
        $charge = $stripe->api('charges', [
            'amount' => 1500,
            'currency' => 'eur',
            'customer' => $customer->id

        ]);
    }

    if($plan==2){
        $sub = $stripe->api("customers/{$customer->id}", [
            'plan' => "1month",
        ]);

    }

mais je ne sais pas ou le placer dans la v3 pour que ca marche

Ok. As-tu essayé de migrer de ton code ? Si oui, peux-tu me montrer ton code ?
As-tu essayé l'exemple "Getting Started" de la documentation pour commencer ?

Je vois que ton code PHP ne correspond pas à ton code HTML/JS. Que souhaites-tu faire exactement ?

gogo94
Auteur

j'ai essaye mais j'ai un probleme avec require_once('vendor/autoload.php');
j'ai inslatter composer sur mon serveur mais je n'arrive pas a l'utiliser

Ah et bien c'est autre chose. On avance.
Quel est le message d'erreur que tu obtiens ?