Skip to main content

Registrazione Fatture in FlowPay

Per procedere al pagamento delle fatture con il relativo travaso di somme tra committente e maestranze, queste, devono essere prima registrate in flowpay e poi inserite in un "oggetto" contenitore chiamato "work progress" a cui è possibile agganciare i flussi di pagamento.


La registrazione della fattura a FP viene espletata tramite il metodo

FlowpayService::registerInvoice(Invoice $invoice) Questo metodo, raccoglie i dati della fattura li formatta come previsto da flowpay e tramite la chiamata

post($tenantId.'/invoices', $data, $token); La Invia.

In risposta, otteniamo un identificativo che memorizziamo nella nella colonna flowpay_id della tabella invoices. Anche i dati utilizzati per l'invio vengono memorizzati nella colonna flowpay_data della stessa tabella.

L'id della registrazione in flowpay (che lato FPY viene chiamato fingerprint), viene utilizzato per creare un'altro oggetto di tipo "register_work_progress".

I dati relativi a questo tipo di operazione vengono memorizzati nella tabella "flowpay_work_progress"

Creato il workProgress siamo pronti a procedere con il pagamento della fattura che segue lo stesso identico flusso del pagamento della quote (già visto nella procedura di ricarica wallet) ma con una differente modalità. Il checkout della fattura infatti è di tipo "noSca" ovvero non viene fatto nessun un redirect verso flowpay, ma gestito completamente tramite api.

Contestualmente, tramite il metodo getCheckoutDetails recuperiamo le informazioni da flowpay per aggiornare in agorà lo stato degli oggetti locali nel db.

Questo metodo viene anche richiamato da un job (UpdateCheckoutStatus) che per recuperare informazioni ed eventualmente aggiornare lo stato dei pagamenti non ancora esitati in agorà

Database

Tutti i dati relativi a questo flusso vengono memorizzati nelle tabelle flowpay_cashouts e flowpay_checkouts.

La tabella invoices:

  • flowpay_data - Payload completo inviato per la richiesta di creazione;
  • flowpay_id - id fattura rilasciato da flowpay;
  • flowpay_progress_id - id dell'oggetto contenitore desitnato al pagamento;

La tabella flowpay_register_work_progress:

  • project_id - Id di cantiere;
  • data - Payload completo inviato per la richiesta di creazione;
  • request - Payload completo inviato per la richiesta di creazione;
  • response - Payload completo ricevuto a seguito della richiesta di creazione;
  • flowpay_id - Id flowpay dell'oggetto appena creato (colonna virtuale);
  • flowpay_site_id - Id flowpay del project precedentemente registrato;