2015-03-23 16 views
7

Sono sicuro che mi manca qualcosa di ovvio qui, ma non riesco a capire come controllare una carta esistente contro un cliente.stripe api che controlla la carta esistente

sto usando la striscia collegare api all'interno di un app laravel di gestire i pagamenti per conto di altri, e il processo di base è la seguente:

  • una striscia token viene creato tramite stripe.js e presentato con il pagamento modulo
  • se il cliente esiste nel database locale, prendo la loro stripe_id, altrimenti un nuovo cliente viene creata usando il token come origine/carta
  • un charge viene poi creata usando l'recuperato o nuovo cliente stripe_id

Attualmente, se il cliente restituisce e utilizza una carta diversa, poiché la tariffa include solo un cliente, non la fonte, verrà addebitato sulla sua carta predefinita a prescindere.

Quello che mi piacerebbe fare è:

  • creare una striscia token
  • controllo customer contro database locale ecc
  • controllo card impronte digitali contro le carte del cliente
  • se necessario, creare nuovi card sul record del cliente
  • creare addebito utilizzando sia customer e card ids

In poche parole: Non riesco a vedere in quale parte del processo di un persistente card_id viene generato; entrambi quelli utilizzati nella risposta stripe.js e quando vengono creati nel dashboard stripe, sembrano essere unici, il che significa che ogni carica crea un oggetto di carta nuovo di zecca nella striscia.

So che posso recuperare un elenco di carte memorizzate rispetto all'account di un cliente - ma da dove ottengo l'iniziale card_id da cercare?

Ho visto una domanda che riguarda questo qui - Can I check whether stripe a card is already existed before going to create new one? - ma non conosco Ruby, quindi non posso fare la testa né coda di esso.

EDIT:

Più semplice versione - c'è un modo per ottenere il fingerprint come descritto nella documentazione striscia qui - https://stripe.com/docs/api/php#card_object - senza dover creare prima un oggetto di carta?

risposta

14

Quindi l'idea qui sarebbe quella di utilizzare il fingerprint sull'oggetto Card o l'oggetto Token e non l'id stesso come quelli sarebbe diversa se si aggiunge la stessa carta più volte.

Quando si riceve un nuovo token di carta, è possibile recuperarlo tramite l'API Retrieve Token e cercare lo fingerprint nell'hash card.

Si terrebbe un elenco di impronte digitali note nel database associato a un cliente e/o una carta specifici in modo da poter rilevare le carte duplicate.

NOTA: assicurarsi di utilizzare le chiavi segrete per ottenere tali informazioni. in caso contrario, se si utilizza la chiave pubblica, è possibile che non si ottenga il valore dell'impronta digitale.

+0

La tua idea è perfetta ma non sai perché lo stripe non sta restituendo 'fingerprint' in Retrieve Token API. se hai qualche idea del motivo per cui le strisce non tornano, per favore condividi. –

+0

@ M.K. Stripe restituisce definitivamente quell'impronta digitale su quell'API. L'unico caso in cui non si vede l'impronta digitale è se si utilizza la chiave pubblica per questo ed è documentato esplicitamente qui: https://stripe.com/docs/upgrades#2014-10-07 – koopajah

+0

ooh .... i capito ... ora sono in grado di ottenere l'impronta digitale. grazie mille. sto modificando la tua risposta con questa nota. in modo che nessuno possa essere confuso. grazie mille ancora. –

Problemi correlati