web-dev-qa-db-fra.com

Paiement en bande: enregistrer le jeton et le client et effectuer le paiement plus tard à partir du jeton

Est-ce possible en stripe paiement, 

Nous allons d’abord valider les cartes de crédit à l’aide de stripes, puis générer des jetons et créer des clients . Nous enregistrerons les jetons au lieu des informations de carte de crédit dans la base de données, puis nous effectuerons les paiements des clients sur la base de jetons ou de clients au lieu des informations de carte de crédit. .

Dans un fichier javscript, comment traitons-nous stripeResponseHandler et function stripeResponseHandler(status, response)?

parce que nous avons déjà générer un jeton en utilisant

Stripe.createToken({
            number: cardNumber,
            cvc: cardCVC,
            exp_month: $('#expiration-month').val(),
            exp_year: $('#expiration-year').val()
        }, stripeResponseHandler);

dans l'étape de paiement comment nous appelons stripeResponseHandler?


S'il vous plaît comprendre l'exigence

1- Enregistrez le Token en vérifiant les informations de carte de crédit, dans ce cas aucun paiement n’est impliqué. montant/prix sera zéro (0). 

2- Enregistrez ce Token dans votre base de données, mais ce jeton est utilisé une seule fois. Si vous utilisez ce Token ultérieurement, cela ne fonctionnera pas.

3- Créer client créera un client sur stripe.com et nous pouvons également enregistrer dans notre base de données, mais la raison en est que nous ne rechargerons pas à partir de notre site, nous devons nous connecter à stripe.com et recharger à partir de ce site. . lorsque nous rechargeons à partir de ce site, nous ne sommes pas en mesure d'enregistrer des enregistrements dans notre base de données. De même, lors de la création du client, nous devons créer une recharge pour ce dernier. nous avons également besoin d'une carte de crédit si nous utilisons ce client. c'est donc le problème principal.

4- nous pouvons créer notre propre fonction stripeResponseHandler, car grâce à stripeResponseHandler, la vérification des cartes peut être effectuée sur stripe.js sur le serveur bande.

32
Shahzad

Au lieu de sauvegarder le jeton lui-même, je vous recommande de créer un client et de sauvegarder votre ID client. Vous pouvez ensuite charger votre client à tout moment dans le futur. Voir notre documentation sur sauvegarde des détails de la carte pour plus tard .

Dans un fichier javscript, comment nous traitons stripeResponseHandler et sa fonction stripeResponseHandler (status, response).

Vous devrez créer une fonction et la transmettre sous la forme stripeResponseHandler lorsque vous appelez createToken. Tout ce que cette fonction doit faire est d’insérer votre jeton dans votre formulaire et de le soumettre. Voici un exemple simple: https://Gist.github.com/boucher/1750375

35
brian

Dans Stripe, pour enregistrer une carte (ou un compte bancaire) en vue d’une facturation ultérieure, vous devez créer un client, puis ajouter des sources de paiement (carte ou compte) à ce client.

Une fois que vous avez créé un client avec une ou plusieurs sources de paiement, vous disposez de 3 options pour créer une charge.

  1. Chargez le client en utilisant une source par défaut:

    Stripe::Charge.create(
        amount: 1000,
        currency: 'usd',
        customer: 'cus_xxxx'
    )
    
  2. Chargez le client en utilisant une carte de crédit:

    Stripe::Charge.create(
        amount: 5000,
        currency: 'usd',
        customer: 'cus_xxxx',
        card: 'card_xxxx'
    )
    
  3. Chargez le client en utilisant un compte bancaire:

    Stripe::Charge.create(
        amount: 8000,
        currency: 'usd',
        customer: 'cus_xxxx',
        bank_account: 'ba_xxxx'
    )
    
23

Au lieu de sauvegarder les jetons, créez un objet client et sauvegardez uniquement les identifiants de carte localement ..___ Lorsque vous effectuez un paiement, vous pouvez éventuellement définir la carte à facturer (si vous passez l'identifiant du client à stripe.charges.create). Dans ce cas, vous n'avez pas à passer le jeton. Avec cette approche, vous n'avez pas non plus besoin de gérer la carte par défaut.

stripe.charges.create({
amount: 400,
currency: "usd",
card: "card_xxxxx", 
customer: "cus_xxxxxx", 
7
Ilker Baltaci

Utilisez ce code et, plus tard, vous pouvez capturer le paiement sur l'ID de transaction en transmettant capture: true

token = params[:stripeToken]
    # Charge the user's card:
    charge = Stripe::Charge.create(
      :amount => 1000,
      :currency => "usd",
      :description => "Example charge",
      :capture => false,
      :source => token,
    )

pour plus d'informations, reportez-vous à link comme indiqué: 

capture: - facultatif, la valeur par défaut est true S'il faut ou non capturer immédiatement la charge. Lorsqu'il est faux, l'accusation délivre une autorisation (ou une pré-autorisation) et devra être capturée ultérieurement. Les charges non capturées expirent dans 7 jours. Pour plus d'informations, voir l'autorisation des charges et le règlement ultérieur.

Je pense que cela résout le problème auquel vous êtes confronté

2
Rahul Sharma

Pour créer un jeton, vous devez d’abord vous référer à stripe.js à partir de stripe.com.

   <script src="https://js.stripe.com/v3/"></script>

Et puis ajoutez le code ci-dessous pour ajouter les informations de votre carte et générer un jeton.

    var stripe = Stripe('Your stripe publisheable key');
  var elements = stripe.elements;

stripe.createToken(elements[0], additionalData).then(function (result) {
                example.classList.remove('submitting');

                if (result.token) {
                    // If we received a token, show the token ID.
                    example.querySelector('.token').innerText = result.token.id;
                    example.classList.add('submitted');
                }

Ici, vous recevrez un jeton, qui sera nécessaire pour créer votre client. Utilisez le code ci-dessous pour créer votre client. J'ai utilisé C # .NET

StripeConfiguration.SetApiKey("sk_test_JTJYT2SJCb3JjLQQ4I5ShDLD");

var options = new CustomerCreateOptions {
  Description = "Customer for [email protected]",
  SourceToken = "tok_amex"
};

var service = new CustomerService();
Customer customer = service.Create(options);

Ensuite, vous pouvez couper votre prix sous cet utilisateur à partir du jeton de carte obtenu comme ci-dessous:

StripeConfiguration.SetApiKey("sk_test_JTJYT2SJCb3JjLQQ4I5ShDLD");

var options = new ChargeCreateOptions {
    Amount = 2000,
    Currency = "aud",
    Description = "Charge for [email protected]",
    SourceId = "tok_amex" // obtained with Stripe.js, }; var service = new ChargeService(); Charge charge = service.Create(options);
0
Abdus Salam Azad