risposta-alla-domanda-sullo-sviluppo-web-bd.com

Pagamento a strisce: salva token e cliente ed effettua il pagamento in un secondo momento dal token

E 'possibile nel pagamento stripe,  

Per prima cosa convalideremo la carta di credito usando stripe, quindi genereremo token e creeremo i clienti . Salveremo i token invece delle informazioni della carta di credito nel database e in seguito effettueremo i pagamenti dai clienti in base a token o cliente invece delle informazioni della carta di credito .

Nel file javscript come gestiamo stripeResponseHandler e function stripeResponseHandler(status, response)?

perché abbiamo già generato un token utilizzando

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

in fase di pagamento, come chiamiamo stripeResponseHandler?


Si prega di comprendere il requisito

1- Salvare il Token verificando le informazioni della carta di credito, in questo caso non è previsto alcun pagamento. importo/prezzo sarà pari a zero (0). 

2- Salva questo Token nel tuo database, ma questo token è usato una volta non molte volte. Se usi questo Token più tardi non funzionerà.

3- Crea cliente creerà un cliente su stripe.com e possiamo anche salvare nel nostro database ma il motivo è che non ricaricheremo dal nostro sito, dobbiamo accedere a stripe.com e ricaricare da quel sito . quando ci ricarichiamo da quel sito, non siamo in grado di salvare record nel nostro database. Anche al momento della creazione del cliente, dobbiamo creare una ricarica per quest'ultimo. abbiamo anche bisogno di una carta di credito se usiamo questo client. quindi questo è il problema principale.

4- possiamo creare la propria funzione stripeResponseHandler , perché attraverso stripeResponseHandler la verifica delle carte può essere eseguita su stripe.js sul server stripe.

32
Shahzad

Invece di salvare il token stesso, consiglio di creare un cliente e di salvare il tuo ID cliente. È quindi possibile addebitare il cliente in qualsiasi momento in futuro. Vedere la nostra documentazione su salvare i dettagli della carta per dopo .

Nel file javscript come gestiamo stripeResponseHandler e function stripeResponseHandler (status, response).

Dovrai creare una funzione e passarla come stripeResponseHandler quando si chiama createToken. Tutto ciò che devi fare è inserire il tuo token nel modulo e inviarlo. Ecco un semplice esempio di questo qui: https://Gist.github.com/boucher/1750375

35
brian

In Stripe, per poter salvare una carta (o un conto bancario) da addebitare in seguito, devi creare un cliente, quindi aggiungere le fonti di pagamento (carta o conto bancario) a quel cliente.

Una volta creato un cliente con una fonte di pagamento (o fonti), hai 3 opzioni per creare un addebito.

  1. Carica il cliente utilizzando la fonte predefinita:

    Stripe::Charge.create(
        amount: 1000,
        currency: 'usd',
        customer: 'cus_xxxx'
    )
    
  2. Carica il cliente utilizzando una carta di credito:

    Stripe::Charge.create(
        amount: 5000,
        currency: 'usd',
        customer: 'cus_xxxx',
        card: 'card_xxxx'
    )
    
  3. Carica il cliente utilizzando un conto bancario:

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

Invece di salvare i token, crea un oggetto cliente e salva solo gli ID carta localmente. Quando effettui un pagamento puoi facoltativamente definire la carta da addebitare (se passi l'id cliente a stripe.charges.create). In tal caso non devi passare il token. Con questo approccio non hai bisogno di gestire la carta di default.

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

Utilizzare questo codice tagliato e in seguito è possibile acquisire il pagamento sull'ID transazione passando l'acquisizione: true

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

per ulteriori informazioni dettagliate, consultare link come indicato: 

acquisizione: - facoltativo, il valore predefinito è true Indica se acquisire o meno immediatamente l'addebito. Quando è falso, l'addebito emette un'autorizzazione (o pre-autorizzazione) e dovrà essere catturato successivamente. Le spese non coperte scadono in 7 giorni. Per ulteriori informazioni, vedere autorizzare addebiti e stabilirsi in seguito.

Penso che risolva il problema che stai affrontando

2
Rahul Sharma

Per creare token, devi prima fare riferimento a stripe.js da stripe.com

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

E poi aggiungi sotto il codice per aggiungere le informazioni della tua carta e generare un token.

    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');
                }

Qui, riceverai un token, che sarà necessario per creare il tuo cliente. Usa sotto il codice per creare il tuo cliente. Ho usato 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);

Quindi, puoi tagliare il tuo prezzo da questo utente dal token di carta che hai ricevuto da strisce come qui sotto:

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