CompleteFastInvoicePayment

<< Fare clic per visualizzazione il sommario >>

Percorso:  API di piattaforma > JamioPlug > JamioPlug StripeConnect > Invoice >

CompleteFastInvoicePayment

Consente di completare gli step non raggiunti con la funzionalità CreateFastInvoice.

 

Metodo

JamioPlug StripeConnect/CompleteFastInvoicePayment

 

Input

Nome

Descrizione

Tipo

Opzionale

serverAddress

Indirizzo server da un Dominio esterno (per il Dominio della sessione corrente, utilizzare nullo o vuoto).

String

Y

token

Token di sessione (per la sessione corrente nel dominio corrente potrebbe essere null o vuoto).

String

Y

customerReference

Collegamento all'identità che effettua il pagamento.

Reference

 

recipientReference

Collegamento all'identità o elemento organizzativo che riceve i pagamenti.

Reference

 

invoiceItemId

Identificativo dell'InvoiceItem.

String

 

invoiceId

Identificativo dell'Invoice.

String

Y

invoiceData

Dato strutturato contenente i dati dell'Invoice.

L'elenco dei parametri che possono essere inseriti è consultabile qui. Tra questi sono obbligatori i parametri customer, default_payment_method e auto_advance. Il parametro customer è ricavato in automatico dalla customerReference. Il parametro default_payment_method è ricavato, in ordine di priorità, in automatico:

dal valore del paymentMethodReference;

dal valore del default_payment_method dato in input con il dato strutturato del parametro invoiceData.

dal valore del metodo di pagamento di default del Customer se non valorizzato o non specificato nel paymentMethodReference.

Il parametro auto_advance è ricavato in automatico dal parametro autoAdvance.

Nel caso i parametri customer, default_payment_method e auto_advance siano valorizzati sia in invoiceData che nei rispettivi parametri customerReference, paymentMethodReference e autoAdvance, essi vengono sostituiti con il valore specificato in customerReference, paymentMethodReference e autoAdvance.

Il parametro viene ignorato se invoiceId è valorizzato.

Dataset

Y

invoiceMetadata

Dato strutturato contenente dati aggiuntivi utili a valorizzare i metadati dell'Invoice. Non può contenere dati annidati o liste.

Può contenere massimo 50 campi, con nomi di campo lunghi fino a 40 caratteri e valori di tipo stringa lunghi fino a 500 caratteri.

Il parametro viene ignorato se invoiceId è valorizzato.

Dataset

Y

testMode

True se è richiesta l'esecuzione del metodo in modalità test di Stripe. Se non specificato, viene effettuata l'esecuzione del metodo in modalità live di Stripe.

La modalità testMode indicata deve essere ammessa dalla configurazione.

Boolean

Y

paymentMethodReference

Collegamento al metodo di pagamento.

Il parametro non è obbligatorio, in quanto può essere specificato nel parametro invoiceData, nel campo default_payment_method. Nel caso siano entrambi valorizzati, esso viene sostituito con il valore specificato in questo parametro.

Il parametro viene ignorato se invoiceId è valorizzato.

Reference

Y

autoAdvance

True se il pagamento dell'Invoice deve essere effettuato da Stripe in maniera asincrona rispetto alla chiamata al metodo; false se il pagamento deve essere realizzato in maniera sincrona rispetto alla chiamata al metodo. Se il parametro non viene specificato è pari a false.

Il parametro non è obbligatorio, in quanto può essere specificato nel parametro invoiceData, nel campo auto_advance. Nel caso siano entrambi valorizzati, esso viene sostituito con il valore specificato in questo parametro.

Boolean

Y

Output

 

Nome

Descrizione

Tipo

 

returnValue

Dato strutturato contenente le seguenti informazioni:

InvoiceItemId, stringa valorizzata con l'id dell'InvoiceItem dato in input in invoiceItemId;

InvoiceId, stringa valorizzata con l'id dell'Invoice creata dal metodo;

InvoiceStatus, stringa che riporta lo stato raggiunto dalla Invoice creata dal metodo. Corrisponde alla proprietà status dell'Invoice.

Invoice, dato strutturato contenente le informazioni dell'Invoice creata dal metodo;

OtherInvoice, booleano pari a true se l'InvoiceItem è stato raccolto in una Invoice di un'altra procedura.

Il metodo prevede diversi passaggi durante la sua esecuzione (vedi sezione Commenti), pertanto valorizza le suddette proprietà rispetto a quanto prodotto sino alle diverse condizioni di uscita previste.

Dataset

 

 

 

Commenti

Il Customer, cui fa riferimento il parametro customerReference, deve essere associato al Recipient, cui fa riferimento il parametro recipientReference, nella modalità test prevista.

 

Il metodo CompleteFastInvoicePayment è un'orchestrazione di diverse chiamante al servizio di pagamento Stripe, utili completare gli step non eseguiti con la funzionalità CreateFastInvoice.Nel dettaglio il metodo consente di:

1.controllare che un InvoiceItem non sia stato raccolto in un'altra Invoice in Stripe;

2.conoscere l'Invoice se, l'InvoiceItem è stato già raccolto;

3.finalizzare la creazione dell'Invoice in Stripe, se l'InvoiceItem non è stato raccolto.Per maggiori informazioni sulla finalizzazione di un Invoice consultare la documentazione Stripe qui;

4.far eseguire il pagamento di un'Invoice in Stripe, completando quanto non realizzato con il metodo CreateFastInvoice.

 

Rispetto allo step raggiunto del metodo CreateFastInvoice, il metodo CompleteFastInvoicePayment si comporta come segue:

InvoiceItem creato, ma Invoice non nota. Il metodo CreateFastInvoice ha completato lo step 1; il metodo CompleteFastInvoicePayment deve ricevere in input i seguenti parametri:

ocustomerReference

orecipientReference

oinvoiceItemId

oinvoiceData (opzionale)

oinvoiceMetadata (opzionale)

opaymentMethodReference

otestMode

oautoAdvance

Il metodo CompleteFastInvoicePayment:

1.Recupera tramite invoiceItemId, l'InvoiceItem da Stripe. Per maggiori informazione sul recupero di un InvoiceItem consultare la documentazione Stripe qui;

2.Legge da esso le informazioni dell'Invoice (campo invoice dell'oggetto stripe InvoiceItem).

se non nullo e valorizzato, InvoiceItem è stato già raccolto ed inserito in un'altra Invoice di Stripe. Il metodo CompleteFastInvoicePayment legge l'Invoice relativa e non effettua altre operazioni, in quanto ha prevalenza il flusso legato alla Invoice di Stripe che ha raccolto l'InvoiceItem;

se nullo o non valorizzato, l'InvoiceItem deve essere raccolto. Il metodo CompleteFastInvoicePayment crea, finalizza e paga l'Invoice in Stripe seguendo gli step 2, 3 e 4 che CreateFastInvoice non ha completato ed in funzione del valore del parametro autoAdvance.

 

InvoiceItem creato, Invoice nota. Il metodo CreateFastInvoice ha completato lo step 1 e 2; il metodo CompleteFastInvoicePayment deve ricevere in input i seguenti parametri:

ocustomerReference

orecipientReference

oinvoiceItemId

oinvoiceId

otestMode

Il parametro autoAdvance sarà ignorato qualsiasi valore sia in esso specificato poiché si ritiene valido quanto già impostato sull'Invoice dallo step 2 del metodo CreateFastInvoice. Il metodo CompleteFastInvoicePayment:

1.Recupera tramite invoiceItemId, l'InvoiceItem da Stripe. Per maggiori informazione sul recupero di un InvoiceItem consultare la documentazione Stripe qui;

2.Legge da esso le informazioni dell'Invoice (campo invoice dell'oggetto stripe InvoiceItem) e controlla se il valore ottenuto coincide con il valore del parametro invoiceId. Diversamente il metodi CompleteFastInvoicePayment restituisce errore.

3.Controlla lo stato dell'Invoice e se diverso da "paid" esegue gli step 3 e/o 4 che CreateFastInvoice non ha terminato, completando il pagamento dell'Invoice in Stripe. Se lo stato dell'Invoice è diverso da "draft", "open" o "paid", il metodo CompleteFastInvoicePayment restituisce errore.

 

Il metodo si comporta come segue:

Restituisce

Condizione

Dato strutturato con:

InvoiceItemId, valorizzato

InvoiceId, valorizzato con Id Invoice letto da Stripe

InvoiceStatus, valorizzato con stato Invoice letto da Stripe

Invoice, valorizzato con Invoice letta da Stripe

OtherInvoice, true

Se il metodo CreateFastInvoice ha creato InvoiceItem ed il metodo CompleteFastInvoicePayment ha verificato che InvoiceItem è stato raccolto da un'Invoice di Stripe.

Dato strutturato con:

InvoiceItemId, valorizzato

InvoiceId, valorizzato

InvoiceStatus, "paid"

Invoice, valorizzato

OtherInvoice, false

Se il metodo CreateFastInvoice ha creato InvoiceItem ed il metodo CompleteFastInvoicePayment ha eseguito gli step 2, 3 e 4 che il metodo CreateFastInvoice non aveva eseguito.

Dato strutturato con:

InvoiceItemId, valorizzato

InvoiceId, valorizzato

InvoiceStatus, "draft"

Invoice, valorizzato

OtherInvoice, false

Se autoAdvance uguale a true.

Il metodo CreateFastInvoice ha creato InvoiceItem ed il metodo CompleteFastInvoicePayment ha eseguito lo step 2 che il metodo CreateFastInvoice non aveva eseguito.

 

Dato strutturato con:

InvoiceItemId, valorizzato

InvoiceId, valorizzato

InvoiceStatus, "open"

Invoice, valorizzato

OtherInvoice, false

Se il metodo CreateFastInvoice ha creato InvoiceItem ed Invoice in stato "draft" ed il metodo CompleteFastInvoicePayment ha eseguito gli step 3 e 4 che il metodo CreateFastInvoice non aveva eseguito.

Dato strutturato con:

InvoiceItemId, valorizzato

InvoiceId, valorizzato

InvoiceStatus, "paid"

Invoice, valorizzato

OtherInvoice, false

Se il metodo CreateFastInvoice ha creato InvoiceItem ed Invoice in stato "open" ed il metodo CompleteFastInvoicePayment esegue lo step 4 che il metodo CreateFastInvoice non aveva eseguito.

Errore

Se l'Invoice in Stripe ha uno stato diverso da "draft", "open" o "paid".

Errore

Se invoiceId è diverso dal valore del campo invoice dell'oggetto InvoiceItem.

Errore

Se testMode è valorizzato e non è presente, per l'identità o l'elemento organizzativo a cui fa riferimento RecipientReference, una configurazione che permette la chiamata nella modalità TestMode indicata.

Errore

Se customerReference non è associata al Recipient cui fa riferimento il parametro recipientReference.

Errore

Se customerReference è associata al Recipient cui fa riferimento il parametro recipientReference. ma il Customer non è presente in Stripe.

Errore

Se il parametro invoiceData contiene il campo default_payment_method, ma non viene valorizzato (ad esempio valore '') o PaymentMethod non è presente nel Recipient.

Errore

Se il parametro paymentMethodReference riporta un collegamento ad un PaymentMethod non attivo nel Recipient.

 

Autorizzazioni

Per eseguire il metodo è necessario possedere il permesso di Utilizzo sulla configurazione del Plug StripeConnect.