Synkronisering av betalingsstatus av ukepengeutbetalinger fra Vipps

Ved å sende “ordre” om penger for utbetaling for til Vipps for å forespørre utbetaling av penger for betaling fra foreldre.

Man sender kun en forespørsel om betaling, men får i den spørringen ikke direkte tilbake resultatet om foreldrene tar seg bryet om å godkjennebetalingen.

For rapportering og oppfølging anser vi det som svært viktig at både foreldre og barn sitter med oppdatert informasjon om hvor vidt betalingen er utført – man kan selv se for seg det kaoset som oppstår om det oppstår tvil om hvor vidt en betaling for rydding av rom er utført eller ikke.

Som vi kan se er det to måter å implementere dette på, enten bruke callbackPrefix-koblingen som sendes inn i payments-metoden eller huske gjøre jevnlige forespørsler med å spørre på status på åpne betalinger.

Formatet på Callbacks er beskrevet her: https://github.com/vippsas/vipps-ecom-api/blob/master/vipps-ecom-api.md#callbacks

Callback-URL vil gi en rask oppdatering av status på betaling og vil nok være hensiktsmessig å bruke i en nettbutikk-sammenheng med kjøpsflyter der kjøper venter på en nettside på om betaling har gått gjennom, men vi anser ikke dette som så viktig i et ukepentescenario

Det kan uansett være nyttig for en nettbutikk å sette opp jevnlig synkronisering av status på betalinger om f.eks en callback har feilet eller om en betaling har blitt refundert i ettertid.

Om man skal gjøre jevnlig polling på status for åpne betalinger kan man gjøre det som beskrevet her: https://vippsas.github.io/vipps-ecom-api/#/Vipps_eCom_API/getPaymentDetailsUsingGET

I vår løsning har vi valgt å sette opp en jobb som jevnlig henter ut status på betalinger med vår go-to-teknololgi Power Automate Cloud Flows 😍

Vi har utvidet Task-tabellen i Dataverse til å holde på OrderID slik at vi bruker det som en nøkkel når vi snakker med Vipps sine API-er. Vi genererer OrderID selv som en Guid når vi sender inn ordre

Vi har satt opp en egen visning “Tasks med OrderId” som viser hvilke oppgaver som er sendt til Vipps, og vi bruker dataene fra denne visningen når vi går gjennom og ser hvilke ordre som er sendt inn

Vi får følgende respons tilbake, og ser at Vipps internt bruker en strukgur med flere “transactionLogHistory-objekter knyttet til en Order

Vi kunne modellert denne samme strukturen i Dataverse med å opprette en “transactionLogHistory-entitet”; men anser det som lite hensiktsmessig da det blir mye data å synkronisere

I stedet ser vi kun på nyeste “operation” i dette datasettet (“CANCEL” i skjermbildet over da den ordren ble kansellert), og synkroniserer den med statuscode-feltet på Task.

Vi ser for oss en løsning med PowerBI der man kan hente ut transactionId i et powerbi rapporteringslag og vise disse embeddet i model driven app