Child pages
  • Förenklad betalning via webservice i BRP Online

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

För att konfigurera BRP för denna lösning kontakta BRP:s support.    


Brponly
TitleProvköp

Argument för att använda förenklad betalning (från MDs inlägg i ett ärende)

  • Undermarkant för integratörer att slutföra internetköp av beställningar skapade via API:t. Lägre utvecklingstid (i storleksordning 100-200 timmar).
    • BRP hanterar om beställningen timat ur eller andra fel uppstår och annulerar i så fall köpet etc.
    • BRP säkerställer att beställningen är OK innan köpet slutförs
    • BRP skickar kvitto/beställningsbekräftelse om önskat
    • Väl beprövad funktion så andelen fel är begränsat. Det blir ofta fel när integratörer ska hantera köpet själva och synka mellan PSP och BRP.
  • Har stöd för att betala/delbetala med värdekort.
  • Möjlighet att betala en obetald faktura.
  • Möjlighet att genomföra återköp och avboka beställningar via BRP.
    • Enkelt att söka upp köp på person/kvitto/tidpunkt
    • Annars manuell hantering i två olika system som måste hållas i sync.
  • Gör det möjligt att använda BRPs funktion för återkommande kortbetalning a.k.a. RCP där Pay for order är ett krav.
  • Möjlighet att byta PSP utan att integratören behöver göra några ändringar alls i deras kod (givet att BRP stödjer PSPn och integrationen är gjord korrekt).


Table of Contents

Anchor
Flow
Flow
Flöde

  1. Kund skapar en beställning via en webbsida som går mot BRP:s REST-API se exempel här: Exempel på vanliga api-flöden
  2. Alla orderrader i beställningen måste vara odebiterade. Beställningens summa måste vara större eller lika med än 0 kr. OBS! Undantag vid köp av produkter som kräver återkommande kortbetalning, då måste summan vara större än 0 kr.
  3. Kunden skickas till BRP Online som gör en http redirect till korrekt sida hos betalväxeln.
  4. Kund genomför betalningen hos betalväxeln
  5. Kunden skickas till BRP Online
  6. BRP skapar ett kvitto för bokföringen och markerar beställningen som debiterad
  7. Ett mail med kvittot enligt standard mall skickas till kundens e-postadress (Inställningsbart), avsnitt Kvitto via e-post
  8. BRP omdirigerar kunden till angiven returURL med kvitto-id och beställnings-id som parametrar. Misslyckas betalningen sker samma omdirigering fast med en felkod som parameter.
  9. Kvittot hämtas ut via BRP:s REST-API och visas för kunden



Brponly
TitleProvköp

Genomföra provköp

Det finns möjlighet att genomföra provköp i demosyfte eller för att testa att inställningarna är korrekta. Logga in som BRP-anställ i BRP Online så finns menyalternativet Test av internetbetalningar som alternativ under Ekonomi. Där får man välja betalsätt och om beställningen ska innehålla en produkt som kräver Återkommande kortbetalningar eller inte. Beställningen städas bort automatiskt när man kommer tillbaka om man avbryter/misslyckas med köpet. Genomför man köpet (vilket inte bör göras på kunds installation) så hamnar man på internetbetalningssidan där man får se detaljer om köpet.

Följande händer

/pay/test anropar man om man skickar direkt via butiken (det går att även skicka test = yes) till betalfönstret, sen blir man redirectad till /pay. Det är för att markera sessionen som test.
Att skicka testflaggan till /admin/link_pay låter helt korrekt, och du borde då hamna på /pay (men sessionen är test).
Testkort: 4444333322221111, med valfritt utgångsdatum och cvc
Testperson: 400612-8989
Om du inte väljer betalsätt kommer betalväxeln visa alla betalsätt som är konfigurerade hos d2i. Vanligtvis kort, men kan även vara direktbetalning och faktura.


Kvitto via e-post

Vid ett slutfört köp så kan ett e-post med kvittot enligt standard mall skickas till kundens e-postadress. Detta beteende är avstängt som standard för bakåtkompatibilitet men kan slås på av BRP support. Notera att kundens e-postadress måste vara sparad på kunden för att kunna slutföra köpet när denna funktion är aktiverad.

...

Se exempel på kvitto med uppmaning att registrera AvtaleGiro: Kvitto AvtaleGiro.pdf

Brponly
TitleProvköp

Skicka kvitto via e-post

Inställningen: "Skicka kvitto via e-post vid slutfört internetköp", sendReceiptEmailWhenInternetPayment, ska klickas i för att aktivera funktionen.

Inställningen: "Uppmana kund att registrera AvtaleGiro-medgivande online i kvittomail" aktiverar notis om att AvtaleGiro saknas och länk till online registrering. Default av till en början åtminstone tills det är pilotat.


Begrepp

BasURL är exempelvis

Code Block
https://api.brpsystems.se/brponline/

 


Betala beställning via betaltjänstleverantör

...

Vid betalning via faktura hos betaltjänstleverantören krävs personnummer och adressuppgifter (e-post eller postadress) på beställaren.

Brponly
TitleTidigare anrop

Anropet nedan användes inititalt (och används fortfarande av Medley). Det är dock anropet ovan (payfororder) som ska avändas för att betala en beställning eftersom det har hash-validering.

För att genomföra betalningen ska websidan gå mot:

Code Block
GET {BasURL}/external/payment/forwardtoexternal?orderid={orderid}&paymentmethodid={paymentmethodid}&returnurl={returnurl}
 
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas
paymentmethodid: Id på betalsättet (Heltal). Ej obligatorisk. Om ej satt får kunden välja betalsätt hos betaltjänstleverantören.

Betalsättet bestämmer hur köpet konteras i bokföringen. Vilket betalsätt som ska användas måste stämmas av med ekonomiansvariga. I BRP visas betalsätt och id i meny Ekonomi > Inställningar > Betalsätt.



Betala beställning via kundkonto i BRP

...

Code Block
GET {BasURL}/external/payment/paywithcustomeraccount?orderid={orderid}&returnurl={returnurl}&useorgaccount=true&hash={hash}
 
orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
useorgaccount: Vid "true" används beställarens organisations kundkonto. Vid "false" eller utelämnad används beställarens kundkonto.
hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). 
 
Exempel: 
orderid=15
returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning)
useorgaccount=true
hemligt ord: SecretWord (erhålls från BRP Support). 
 
Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationtrueSecretWord

Beräknad hash: 4f095301f3091999baa512c072f86502d5bc17296827ec3b38edb6b4057c0577

 



Betala beställning via faktura i BRP

...

Code Block
GET {BasURL}/external/payment/brpinvoice?orderid={orderid}&returnurl={returnurl}&hash={hash}
 
orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas
distributionmethod = Namn på distribueringmetod. Ej obligatorisk. Giltiga värden är "email" och "centralprint21grams". Se Fakturadistribution nedan.
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). 
 
Exempel: 
orderid=15
returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning)
hemligt ord: SecretWord 
 
Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord

Beräknad hash: 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3


Brponly
TitleInställning betalsätt

Inställningen "Betalsätt för faktura" måste sättas till korrekt betalsätt. Där måste också en rapportmall anges om fakturan ska kunna distribueras via email eller 21grams.

Hemligt ord för hash hämtas från inställningen : "Hemligt ord för att beräkna hash för Förenklad betalning via webservice"

...


Efter fakturan är skapad anropar BRP given "returnurl" med följande parametrar. 

Code Block
{returnurl}?invoiceid={invoiceid}&error={errorCode}
 
returnurl = Angiven retururl i anropet mot brpinvoice (se ovan)
invoiceid = Fakturans id. Tomt vid eventuellt fel.
error = Eventuell felkod från BRP. Se felkoder. Tom vid lyckad betalning

...



...

Brponly
TitleInställning betalsätt

Hemligt ord för hash hämtas från inställningen : "Hemligt ord för att beräkna hash för Förenklad betalning via webservice"

...


Fakturadistribution

Det krävs viss konfiguration för fakturadistribution ska fungera. Läs Fakturadistribution för se vad som behöver göras för att komma igång med fakturadistributionen.

...

För att genomföra betalning av faktura ska websidan gå mot:

Brponly
TitleSettings

Hemligt ord för hashberäkning hämtas från setting "Hemligt ord för att beräkna hash".



Code Block
GET {BasURL}/external/payment/payforinvoice?invoiceid={invoiceid}&hash={hash}&returnurl={returnurl}
 
invoiceid = Fakturans id (Heltal). Erhålls i från BRP:s REST-API
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
hash: SHA-256 hash. Beräknas på parametrarnas värden sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). 
 
Exempel: 
 
invoiceid=15
returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning)
hemligt ord: SecretWord 
 
Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord
Beräknad hash = 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3
 

...

Code Block
GET {BasURL}/external/payment/creatercpmandate?personid={personid}&businessunitid={businessunitid}&returnurl={returnurl}&hash={hash}
 
businessunitid = Anläggningens id (Heltal). Erhålls i från BRP:s REST-API
personid = Personens id (Heltal). Erhålls i från BRP:s REST-API
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
hash: SHA-256 hash. Beräknas på parametrarna sorterade i alfabetisk ordning samt ett hemligt ord (erhålls från BRP Support). 

Exempel: 
businessunitid=15
personid=67
returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning)
hemligt ord: SecretWord 
 
Ger följande sträng att beräkna hash på: 1567https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord
Beräknad hash: 92328d9b0474613535b25faddfde29fefc6fcb2f97ae3523a33a8e17e2196798
 
  


Efter genomförd uppdatering anropar BRP en returnurl enligt följande ordning:

...


Betala beställning via Swish


Brponly
TitleKonfiguration
 För konfiguration av swish, se: Swish för Handel Konfiguration

För att genomföra betalningen ska websidan gå mot:

...

Code Block
GET {BasURL}/external/payment/swish/payfororder?orderid={orderid}&returnurl={returnurl}&payeralias={payeralias}&hash={hash}
 
returnurl = Vilken sida kunden ska omdirigeras till efter genomförd betalning (URL-kodat). Exempel:=https%3A%2F%2Fapi.brpsystems.se%2Fbrpgog%2Fpaymentconfirmation (https://api.brpsystems.se/brpgog/paymentconfirmation)
orderid = Beställningens id (Heltal). Erhålls i svaret från BRP:s REST-API när beställningen skapas
receiptemail: Adress till mottagare av kvittot (Epost). Ej obligatorisk om kund finns på beställningen. Om kund är satt skickas epost både till kunden och till den angivna e-postadressen. Flera receiptemail kan anges, med eller utan kund på beställningen. 
hash: SHA-256 hash. Beräknas på parametrarnas värden (förutom payeralias), sorterat i alfabetisk ordning på parameternamnet, samt ett hemligt ord (erhålls från BRP Support). 
 
Exempel: 
orderid=15
returnurl=https://api.brpsystems.se/brpgog/paymentconfirmation (returnurl ska inte vara urlencodad vid beräkning)
payeralias=07354254242
hemligt ord: SecretWord (OBS! Exempel på hemligt ord, för att beräkna korrekt hash måste du erhålla ett hemligt ord från BRP Support) 
 
Ger följande sträng att beräkna hash på: 15https://api.brpsystems.se/brpgog/paymentconfirmationSecretWord

Vilket ger följande hash: 71d498b81d3f6c0cf8d05f8c766012d96dec9c21f60ec0ad870040e0c3c3d9c3

  


När anropet gjorts visas nedanstående sida för kunden tills ett svar från Swish har erhållits. När svar erhållits redirectas kunden till den returnurl som skickats med i anropet enligt punkt 8 under rubriken Flöde ovan. 

Felkoder

KodInnebörd
9Inställningar i BRP som krävs för angiven betaltjänstleverantör och betalsätt saknas.
10Betalsätt-id saknas i anropet eller angivet betalsätt-id existerar ej .
11Internetkassa saknas på den anläggning som ordern är gjord på (konfiguration).
12Beställnings-id saknas i anropet eller angivet beställnings-id existerar ej.
13Betalsättet är inte konfigurerat för internetköp (konfiguration).
14Betalsättet stöds ej (konfiguration).
15Betalsättet stödjer ej återkommande kortbetalning
100Beställningen saknar anläggningstillhörighet.
101Beställningen är redan debiterad.
102Beställningens pris är noll eller negativt.
103Beställare saknas på beställningen.
104Personnummer saknas vilket krävs för aktuell betalningsmetod.
105

E-postadress alternativt postadress krävs för aktuell betalningsmetod.

106E-postadress krävs för aktuell betalningsmetod.
107Postadress krävs för aktuell betalningsmetod.
108Beställningen tilläts inte att betalas eftersom den innehåller produkter som inte tillåts av Betalningsalternativen (se inställningar).
109Beställningen tilläts inte att bekräftas eftersom den innehåller produkter som inte tillåts av Betalningsalternativen (se inställningar).
110Beställaren försöker betala med ett organisationskonto, men har ingen organisation kopplad i BRP.
111En eller flera produkter har en deltagarlista där deltagarinformation inte angivits.
200Betaltjänstleverantörens egna validering går ej igenom.
201Betalningen slutfördes ej (misslyckades eller avbröts).
202Belopp på beställning och genomförd betalning stämmer ej, transaktionen annuleras.
203Beställningen har tagits bort eller på annat sätt blivit felaktig under tiden som betalningen genomfördes.
204Oväntat svar från betaltjänstleverantöreren
205Betalningen avbröts av kund
206Kortmedgivande kunde ej skapas
207Värdekort, som reserverats för betalning, har ändrats under tiden som betalningen genomfördes
300Faktura saknas.
301Faktura saknar anläggningstillhörighet.
302Fakturans belopp är noll eller negativt.
303Fakturan har tagits bort eller på annat sätt blivit felaktigt under tiden som betalningen genomfördes.
400Felaktig hash
500Kundkontot har inte tillräcklig kredit för att täcka beställningen.
501Kundkontot får inte användas eftersom kunden inte är tillräckligt gammal.
502Kundkontot får inte användas eftersom det saknas medgivande för automatisk dragning.
503Kundkontot får inte användas eftersom det finns en obetald faktura.
504Kundkontot får inte användas eftersom kunden saknar giltig e-postadress.
505Kundkontot får inte användas eftersom kunden inte tillåter det.
506Kundkontot får inte användas eftersom kunden saknar ett Autogiro-abonnemang.
902Swish: Det angivna telefonnummret är inkorret.