Direktbetalning handelsbanken.se/e-handel
Innehållsförteckning Beskrivning av tjänsten...3 Direktbetalning...4 Från företaget till Handelsbanken...4 Från Handelsbanken till företaget...6 Betalningskontroll...8 Från företaget till Handelsbanken...8 Från Handelsbanken till företaget...10 Återkreditering...12 Från företaget till Handelsbanken...12 Från Handelsbanken till företaget...14 2
Beskrivning av tjänsten Handelsbankens direktbetalning är en säker betalningslösning för e-handel. Tjänsten riktar sig mot privatpersoner. Minimibelopp att överföra i Handelsbanken är SEK 10,00. Så här fungerar det Köparen besöker företagets e-butik för att köpa varor eller tjänster. När varorna ska betalas väljer köparen direktbetalning som betalsätt i kassan. Kunden länkas då från e-butiken över till Internettjänsten, loggar in som vanligt och väljer från vilket konto betalningen skall utföras. Belopp som ska betalas samt betalningsreferens följer med i länkningen från företaget till banken. Belopp eller betalnings referens kan inte ändras av köparen. När köparen signerat uppdraget och betalningen gått igenom, översänds information om direktbetalningen (belopp, betalningsreferens och betalstatus) till företaget via köparens webbläsare. Informationen krypteras i samband med överföringen och säkerställs med ett lösenord som banken förser företaget med i samband med upplägg av tjänsten. När betalningen är utförd ser kunden företagets namn på sitt kontoutdrag och företaget ser ordernumret. 3
Direktbetalning Från företaget till Handelsbanken Företaget länkar sig till Handelsbanken genom att använda ett formulär som har följande innehåll: <form action= https://secure.handelsbanken.se/bb/glss/servlet/ssco_dirapp?entryid=switch&appaction=dodirectpay&switc haction=3&handoverdatatype=1&appname=ssse&language=sv&country=se method= post > Det är möjligt att använda en engelsk version, man måste då ändra språkkod och landkod i URL: <form action= https://secure.handelsbanken.se/bb/glss/servlet/ssco_dirapp?entryid=switch&appaction=dodirectpay&switc haction=3&handoverdatatype=1&appname=ssse&language=en&country=gb method= post > Butikid, ordernummer, orderbelopp, retururl och kontrollsumma ligger som gömda fält, och fylls i av företaget. Fält Typ Beskrivning Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett företag anslutet till direktbetalning. Denna kod tilldelas företaget av Handelsbanken. Ordernummer Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos företaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. Orderbelopp Sträng, max 9 numeriska tecken. De två sista är alltid ören. The order amount that is transferred from the buyer s account to the company s account. Note that the amount does not contain any demarcation to set off the öre. The last two positions represent öre. For example, SEK 265 is written as 26500. Senastebokningstid Sträng, 14 tecken. (ÅÅÅÅMMDDTTMMSS). En sträng som innehåller datum och tidpunkt. Efter denna tidpunkt kommer banken inte att boka betalningen. Ibland kan förseningar uppstå, som gör att betalningen inte omedelbart kommer in till banken, med denna parameter kan företaget bestämma när banken senast får lov att boka betalningen. Retururl Sträng, 150 tecken. Den URL som Handelsbanken ska länka köparen tillbaka till (inklusive inledande https://), d v s den sida som bekräftar ordern i företagets system. Kontrollsumma Sträng, 32 tecken. En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop butikid, ordernummer och orderbelopp i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. Kontroll att kontrollsumman stämmer med inskickade data görs innan betalningen genomförs. Beräkningen sker på exakt det fältinnehåll som finns, t ex om orderbelopp är 15000, så beräknas det på 15000 och inte 000015000. 4
Exempel på formulär <HTML> <HEAD><TITLE>HANDELSBANKEN - DIREKTBETALNING</TITLE> <BODY TEXT= 000000 BGCOLOR= ffffff > <FONT FACE= Arial,Helvetica SIZE=+2 COLOR= #003399 > <B>Handelsbanken</B><BR><BR> </FONT> <FONT FACE= Arial,Helvetica > Du ska nu gå vidare till Handelsbankens nätplats för Direktbetalning.<BR> Påloggning sker på sedvanligt sätt.<br><br> </FONT> <form action= https://secure.handelsbanken.se/bb/glss/servlet/ssco_dirapp?entryid=switch&appaction=dodirectpay&switc haction=3&handoverdatatype=1&appname=ssse&language=sv&country=se method= post > <INPUT TYPE= submit VALUE= Klicka här för att genomföra betalningen > <INPUT TYPE= hidden NAME= butikid VALUE= 9999 ><BR> <INPUT TYPE= hidden NAME= ordernummer VALUE= ABCD000001 ><BR> <INPUT TYPE= hidden NAME= orderbelopp VALUE= 1100 ><BR> <INPUT TYPE= hidden NAME= kontrollsumma VALUE= 26efb0517cdfbbacb13a61e91feae16d ><BR> <INPUT TYPE= hidden NAME= senastebokningstid VALUE= 20011015121500 ><BR> <INPUT TYPE= hidden NAME= retururl VALUE= https://www.butik.com/cgi/checkorder ><BR> <BR> </FORM> </BODY> </HTML> OBS! Kontrollsumman beräknas på butikid, ordernummer, orderbelopp, och hemligt ord. Ovanstående kontrollsumma är beräknad med hemligt ord = aaaabbbb 5
Direktbetalning Från Handelsbanken till företaget Handelsbanken länkar sig tillbaka till företaget genom att använda ett formulär som har följande innehåll: <FORM ACTION= Den inskickade retururl METHOD= post > Ordernummer, status, timestamp och kontrollsumma ligger som gömda fält, och fylls i av Handelsbanken. Fält Typ Beskrivning Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett företag anslutet till direktbetalning. Denna kod tilldelas företaget av Handelsbanken. Ordernummer Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos företaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. Orderbelopp Sträng, max 9 numeriska tecken. De två sista är alltid ören. Orderbeloppet som överförs från köparens konto till företagets konto. Observera att beloppet inte innehåller öresavgränsare, de två sista positionerna representerar ören. Exempelvis 265 kronor skrivs som 26500. Status Sträng 1 numeriskt tecken. Innehåller en nolla eller en etta. Nollan säger att betalningen gick bra och ettan säger att betalningen inte gick bra. Timestamp Sträng, 14 tecken (ÅÅÅÅMMDDTTMMSS). En sträng som innehåller den tid då svaret skapades i Handelsbankens server. Kontrollsumma Sträng, 32 tecken. En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop butikid, ordernummer, orderbelopp, status och timestamp och i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. Kontroll att kontrollsumman stämmer med inskickade data görs innan betalningen genomförs. Beräkningen sker på exakt det fältinnehåll som finns, t ex om orderbelopp är 15000, så beräknas det på 15000 och inte 000015000. 6
Exempel på formulär Hiddenfält i svarsformulär när överföringen är OK <INPUT TYPE= hidden NAME= butikid VALUE= 9999 > <INPUT TYPE= hidden NAME= ordernummer VALUE= ABCD000001 > <INPUT TYPE= hidden NAME= orderbelopp VALUE= 1100 > <INPUT TYPE= hidden NAME= status VALUE= 0 > <INPUT TYPE= hidden NAME= timestamp VALUE= 20011015121000 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= 1f3caf897286c3159b65a705cf880570 > Kontrollsumman beräknas på butikid, ordernummer, orderbelopp, status, timestamp och hemligt ord Hiddenfält i svarsformulär när överföringen är makulerad <INPUT TYPE= hidden NAME= butikid VALUE= 9999 > <INPUT TYPE= hidden NAME= ordernummer VALUE= ABCD000001 > <INPUT TYPE= hidden NAME= orderbelopp VALUE= 1100 > <INPUT TYPE= hidden NAME= status VALUE= 1 > <INPUT TYPE= hidden NAME= timestamp VALUE= 20011015121000 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= b6914cca7702f96983a06c694b00ce34 > Kontrollsumman beräknas på butikid, ordernummer, orderbelopp, status, timestamp och hemligt ord Om det uppstår ett fel i överföringen (status=1) i ett tidigt skede, kan vi inte producera någon kontrollsumma, och då finns det inget värde i fältet. <INPUT TYPE= hidden NAME= kontrollsumma VALUE= > OBS! Ovanstående kontrollsummor är beräknad med hemligt ord = aaaabbbb 7
Betalningskontroll Från företaget till Handelsbanken Ibland kan Handelsbanken inte skicka tillbaka något elektroniskt kvitto till företaget. Detta kan bero på att kunden stängt ner sin webbläsare, fått avbrott eller annan orsak. För att få reda på om en order är utförd eller inte kan företaget sända en fråga till oss på obekräftade ordrar. Frågan kan innehålla en eller flera ordrar och kan inititeras med ett intervall som företaget själv väljer. De tekniska anpassningar som måste göras för att kunna använda betalningskontrollen finns beskrivna nedan. Kryptering 128 bitars kryptering måste användas. Formulär Företaget länkar sig till Handelsbanken genom att använda ett formulär som har följande innehåll: <FORM ACTION= https://d01.handelsbanken.se/dirbet/ betalkontroll METHOD= post > Versionsnr, butikid, antal, ordernummer1, ordernummer2 osv och kontrollsumma ligger som gömda fält, och fylls i av företaget. IP-adress Företaget anropar Handelsbanken från den IP-adress som meddelats banken. Banken gör en kontroll att anropet kommer från rätt IP-adress. Om denna inte stämmer avvisas anropet. Det är därför mycket viktigt att rätt IP-adress anges i de uppgifter som lämnas till banken i samband med avtalstecknandet. De företag som önskar nyttja flera IP-adresser har möjlighet att göra detta under förutsättning att de har samma nummerserie. Någon eller några av de sista positionerna i IP adressen ska då ersättas med?. Exempel: 123.13.123.111 kan skrivas 123.13.123.11? eller 123.13.123.1?? eller 123.13.123.???. Ett avtal kan dock inte ha flera vitt skilda IP-adresser. 8
Fält Typ Beskrivning Versionsnr Sträng, 4 numeriska tecken. Ett nummer som identifierar vilken version av betalningskontrollfunktionen som ska anropas hos Handelsbanken. Ska sättas till 1. Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett företag anslutet till direktbetalning. Denna kod tilldelas säljföretaget av Handelsbanken. Antal Sträng, 3 numeriska tecken. Ett nummer som identifierar hur många ordernummer som ska kontrolleras.max 500. Ordernummer Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos säljföretaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. Max 500 st. Kontrollsumma Sträng, 32 tecken. En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop versionsnr, butikid, antal, ordernummer1, ordernummer2 osv i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. Kontroll att kontrollsumman stämmer med inskickade data görs innan betalningskontrollen utförs. Beräkningen sker på exakt det fältinnehåll som finns, t ex om antal är 10, så beräknas det på 10 och inte 010. Exempel <INPUT TYPE= hidden NAME= versionsnr VALUE= 1 > <INPUT TYPE= hidden NAME= butikid VALUE= 1234 > <INPUT TYPE= hidden NAME= antal VALUE= 3 > <INPUT TYPE= hidden NAME= ordernummer1 VALUE= A000000025 > <INPUT TYPE= hidden NAME= ordernummer2 VALUE= A000000026 > <INPUT TYPE= hidden NAME= ordernummer3 VALUE= A000000027 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= 26ad3af832f376ed43243f408350d837 > OBS! Ovanstående kontrollsumma är beräknad med hemligt ord = aaaabbbb 9
Betalningskontroll Från Handelsbanken till företaget Formulär Handelsbanken lämnar svar på företagets Http-request, genom att använda en sida som har följande innehåll: butikid, antal, ordernummer1, status1, kvarv_orderbelopp1, ordernummer2, status2, kvarv_orderbelopp2, osv och kontrollsumma. Ligger som gömda fält, och fylls i av Handelsbanken. Fält Typ Beskrivning Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett företag anslutet till direktbetalning. Denna kod tilldelas företaget av Handelsbanken. Antal Sträng, 3 numeriska tecken. Ett nummer som identifierar hur många ordernummer som ska kontrolleras. Orderbelopp Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos företaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. Status Sträng, 1 numeriskt tecken. 0 = Order OK. 1 = Order inte OK. Orderbeloppet som finns kvar efter eventuella krediteringar. Observera att beloppet inte innehåller öresavgränsare, de två sista positionerna representerar ören. Exempelvis 265 kronor skrivs som 26500. kvarv_orderbelopp Kontrollsumma Sträng, 32 tecken. En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop butikid, antal, ordernummer1, status1, kvarst_belopp1, ordernummer2, status2, kvarst_belopp2 i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. 10
Exempel <INPUT TYPE= hidden NAME= butikid VALUE= 1234 > <INPUT TYPE= hidden NAME= antal VALUE= 3 > <INPUT TYPE= hidden NAME= ordernummer1 VALUE= A000000025 > <INPUT TYPE= hidden NAME= status1 VALUE= 0 > <INPUT TYPE= hidden NAME= kvarv_orderbelopp1 VALUE= 11100 > <INPUT TYPE= hidden NAME= ordernummer2 VALUE= A000000026 > <INPUT TYPE= hidden NAME= status2 VALUE= 1 > <INPUT TYPE= hidden NAME= kvarv_orderbelopp2 VALUE= 0 > <INPUT TYPE= hidden NAME= ordernummer3 VALUE= A000000027 > <INPUT TYPE= hidden NAME= status3 VALUE= 0 > <INPUT TYPE= hidden NAME= kvarv_orderbelopp3 VALUE= 33300 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= 1a3dfaf2233f0ac5ed3eec66eb47b16e > OBS! Om order inte OK, finns det en nolla i kvarv_orderbelopp. Ovanstående kontrollsumma är beräknad med hemligt ord = aaaabbbb Felhantering Om tekniskt fel uppstår, t ex att kontrollsumman från säljföretaget inte stämmer, eller något annat fel i banken, så Avslutas sessionen med att banken lägger på luren. 11
Återkreditering Från företaget till Handelsbanken Formulär När en kund gjort ett köp och betalt med Handelsbankens direktbetalning händer det ibland att företaget inte kan leverera hela eller delar av en order. Kunden kan även reklamera en beställd vara eller tjänst. För att betala tillbaka pengar till kunden kan företaget använda sig av Återkrediteringstjänsten. För att kunna göra en återkreditering måste ordern ha betalts via Handelsbankens direktbetalning. Återkrediteringen får INTE överstiga ursprungligt orderbelopp. Återkreditering kan göras flera gånger på samma order men respektive återkreditering får INTE överstiga kvarvarande orderbelopp efter avräkning. De tekniska anpassningar som måste göras för att kunna göra återkrediteringar finns beskrivna nedan. IP-adress Företaget anropar Handelsbanken från den IP-adress som meddelats banken. Banken gör en kontroll att anropet kommer från rätt IP-adress. Om denna inte stämmer avvisas anropet. Kryptering 128 bitars kryptering måste användas. Formulär Företaget länkar sig till Handelsbanken genom att använda ett formulär som har följande innehåll: <FORM ACTION= https://d01.handelsbanken.se/dirbet/ kreditering METHOD= post > Versionsnr, butikid, antal, ordernummer och kontrollsumma ligger som gömda fält, och fylls i av Företaget. 12
Fält Typ Beskrivning Versionsnr Sträng, 4 numeriska tecken. Ett nummer som identifierar vilken version av betalningskontrollfunktionen som ska anropas hos Handelsbanken. Ska sättas till 1. Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett säljföretag anslutet till direktbetalning. Denna kod tilldelas företaget av Handelsbanken. Ordernummer Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos företaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. kvarv_orderbelopp krediteringsbelopp Kontrollsumma Sträng, max 9 numeriska tecken. De två sista är alltid ören. Sträng, max 9 numeriska tecken. De två sista är alltid ören. Sträng, 32 tecken. Återstående belopp på ordern före kreditering. Belopp att återkreditera En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop versionsnr, butikid, ordernummer, kvarv_orderbelopp och krediteringsbelopp i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. Kontroll att kontrollsumman stämmer med inskickade data görs innan återkrediteringen utförs. Beräkningen sker på exakt det fältinnehåll som finns, t ex om version är 1, så beräknas det på 1 och inte 0001. Exempel <INPUT TYPE= hidden NAME= versionsnr VALUE= 1 > <INPUT TYPE= hidden NAME= butikid VALUE= 1234 > <INPUT TYPE= hidden NAME= ordernummer VALUE= A000000025 > <INPUT TYPE= hidden NAME= kvarv_orderbelopp VALUE= 20000 > <INPUT TYPE= hidden NAME= krediteringsbelopp VALUE= 10000 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= b8e6faaf3cca294814d0e06a8d4dac49 > OBS! Ovanstående kontrollsumma är beräknad med hemligt ord = aaaabbbb 13
Återkreditering Från Handelsbanken till företaget Formulär Handelsbanken lämnar svar på företagets Http-request, genom att använda en sida som har följande innehåll: butikid, ordernummer, status, kvarv_orderbelopp, ordernummer och kontrollsumma. Ligger som gömda fält, och fylls i av Handelsbanken. Fält Typ Beskrivning Butikid Sträng, 4 numeriska tecken. En kod som unikt identifierar ett företag anslutet till direktbetalning. Denna kod tilldelas företaget av Handelsbanken. Ordernummer Sträng, max 10 alfanumeriska tecken. Den kod som unikt identifierar en order hos företaget. Ordernumret kan vara kortare om företaget önskar, men inte längre. Status Sträng, 1 numeriskt tecken. 0 = Order OK. 1 = Order inte OK. Sträng, max 9 numeriska tecken. De två sista är alltid ören. Orderbeloppet som finns kvar efter eventuella krediteringar. Observera att beloppet inte innehåller öresavgränsare, de två sista positionerna representerar ören. Exempelvis 265 kronor skrivs som 26500. kvarv_orderbelopp Kontrollsumma Sträng, 32 tecken. En sträng som används för att kontrollera att ingen manipulation av data har skett på vägen. Strängen byggs genom att slå ihop butikid, antal, ordernummer1, status1, kvarst_belopp1, ordernummer2, status2, kvarst_belopp2 i denna ordning, till en sträng utan fältavgränsare. Till detta lägger man ett hemligt ord som man kommit överens om. På denna sträng görs sedan en MD5-hashning som efter transformation till läsbart format resulterar i en sträng på 32 tecken. 14
Exempel <INPUT TYPE= hidden NAME= butikid VALUE= 1234 > <INPUT TYPE= hidden NAME= ordernummer VALUE= A000000025 > <INPUT TYPE= hidden NAME= status VALUE= 0 > <INPUT TYPE= hidden NAME= kvarv_orderbelopp VALUE= 10000 > <INPUT TYPE= hidden NAME= kontrollsumma VALUE= 5f4fe282d1f360b880d1546539a0a1a8 > OBS! Om order inte OK, finns det noll i kvarv_orderbelopp. Detta för att vi eventuellt inte har kunnat hämta detta ur bankens databaser. Ovanstående kontrollsumma är beräknad med hemligt ord = aaaabbbb Felhantering Om tekniskt fel uppstår, t ex att kontrollsumman från säljföretaget inte stämmer, eller något annat fel uppstår i banken så avslutas sessionen med att banken lägger på luren. Hjälp & Support För hjälp och support i tekniska frågor i samband med t ex upplägg skicka ett mail till kundsupporten.backoffice@handelsbanken.se 15