<< 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
PlugStripeConnectCompleteFastInvoicePayment
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 Stripe Connect.