PayApi / efterbehandling af transaktioner (Legacy)

Med PayApi kan man undgå login til https://pay.dandomain.dk administrationen, når man skal hæve mv. i sit betalingssystem. Det vil sige, at man kan hæve en transaktion ved et enkelt http kald. Det kan indbygges i eks. ERP systemer, Intranet eller andet.

URL’en til at lave et kald til webservicen: https://pay.dandomain.dk/PayApi.asp?username=yyyyyyy&password=xxxxxxx

(yyyyyyy og xxxxxxxx ændres til hhv. brugernavn og password der benyttes til at logge ind i betalingssystem administrationen)

Eksempel:

https://pay.dandomain.dk/PayApi.asp?username=yyyyyyy&password=xxxxxxx&capture=1&orderid=1020

Her hæves en eksisterende transaktion med ordre id 1020, hvis capture er sat til værdien 1.

Der kan tilføjes yderligere parametre, hvis der ønskes udført andre funktioner sammen med hævning af beløbet.

Eksempelvis en nedjustering af beløbet der hæves:

https://pay.dandomain.dk/PayApi.asp?username=yyyyyyy&password=xxxxxxx&capture=1&orderid=1020&ChangeAmount=1&Amount=22

Parameter Beskrivelse
Username (krævet) Forretningens merchantnummer tildelt af PBS
Password (krævet) Password som bruges til log ind i betalingssystemet
Capture (krævet) Skal være 1 for at hæve
Orderid OrdreID på den transaktion der skal hæves.

(valgfri – men krævet hvis TransID ikke er udfyldt)

Transid Transaktions ID på den transaktion der skal hæves.

(valgfri – men krævet hvis OrdreID ikke er udfyldt)

DoAmountCheck (Valgfri) Hvis sat til 1 vil der valideres om beløb på transaktionen stemmer overens med det angivet i amount parametren.
ChangeAmount (Valgfri) Hvis sat til 1 vil beløbet på transaktionen blive ændret til det angivet i amount parametren.

Bemærk! DoAmountCheck må ikke være udfyldt og amount må ikke være større end det original beløb der findes på transaktionen.

Amount (Valgfri) Skal udfyldes med beløbet, hvis DoAmountCheck eller ChangeAmount sættes til
Partialcapture Hvis sat til 1 foretages der en delhævning. Kræver at Amount og Transid medsendes samt, at der er benyttetSupplementary Authorisation.
Partialcredit Bruges til at kreditere en delhævning. Kræver medsendelse af Amount, og parameteren PartialCaptureID. PartialCaptureID er det transaktionsnummer den delhævede transaktion tildeles.

Statuskoder

Der er muligt at få vist statuskoder. Disse er for de enkelte kald (Capture, Renew, Reject) defineret således:

Parameter Beskrivelse Format
Capture=1

 

eller

 

Partialcapture=1


ShowStatusCodes=1

Hæver transaktioner ud fra OrderID


406 – Amount mismatch

405 – Amount parameter invalid

409 – Amount cannot exceed original amount

404 – Transaction not found

407 – Transaction #XXXXXXX is expired. (Should be renewed)

Case 0 = 200 – Transaction # & TransID & successfully captured.  Amount

Case 1 = 402 – Transaction #” & TransID & ” could not be captured”

Case else =  403 – Invalid transaction

Generel fejlkode: 404 – FEJL! Det er i øjeblikket ikke muligt at hæve transaktionen – da PBS har problemer. Forsøg venligst senere…<br>

Int
Renew=1


ShowStatusCodes=1

Muliggør fornyelse af transaktioner der er udløbet


200 – Transaction # “number” successfully renewed.

404 – Transaction error.

Ellers udskrives:

404 – Transaction not found.

Int
Reject=1


ShowStatusCodes=1

Muliggør afvisninger af transaktioner


200 – Transaction # “number” successfully rejected.

404 – Transaction # “number” not found.”

ellers udskrives:

404 – Transaction not found

Int
Credit=1


ShowStatusCodes=1

Giver mulighed for at kreditere en ordre. “Amount” kan sendes med hvis man kun ønsker at kreditere en del af ordren. Sendes denne ikke med krediteres det fulde beløb.


200 – Transaction # “number” successfully credited.

404 – Transaction error.

Ellers udskrives:

404 – Transaction not found.

Int

 

Download eksempel

Eksempelfil Beskrivelse

Download

remote_handler.txt Filen indeholder mulighed for, via nogen få ændringer i variabler for eksempelvis brugernavn og password mv. at udføre fjern behandling af transaktioner. Funktionerne er fornyelser, afvisninger og hævning af transaktioner.

Download

 

Kontrol af transaktioners status

Eksempel: https://pay.dandomain.dk/PayApi.asp?username=yyyyyyy&password=xxxxxxx&Checkstatus=1&OrderID=2365

Parameter Beskrivelse Format
Checkstatus (1)

 

Udskriver status for transaktioner ud fra OrderID


200 – Transaction #123 exists. Not captured. OrderID:2365; Amount:100; OrigAmount:100

201 – Transaction #123 exists. Captured. OrderID:2365; Amount:100; OrigAmount:100

202 – Transaction #123 exists. Rejected. OrderID:2365; Amount:100; OrigAmount:100

203 – Transaction #123 exists. Credited. OrderID:2365; Amount:100; OrigAmount:100

404 – Transaction not found

Int

 

Download eksempel

Eksempelfil Beskrivelse

Download

remote_statuscheck.txt Filen indeholder mulighed for, via nogen få ændringer, at få vist status for transaktioner via fjernkald af denne fil.

Download

 

Specielt for abonnementsbetalinger (kræver specialaftale med Nets!)

Der gælder specielle parametre til https://pay.dandomain.dk/PayApi.asp. Udgangspunktet er dog stadigt:

https://pay.dandomain.dk/PayApi.asp?username=yyyyyyy&password=xxxxxxx

når der forsøges at ændre eller kalde eksisterende abonnementer.

Nedenstående benyttes til at oprette, rette og hæve via eksterne sider, som intranet, ERP / økonomisystemer, extranet, mv.

Parameter Beskrivelse Format
PreAutRecurring

(Funktionskald)

 

Angiver at en betaling skal oprettes som en abonnementsbetaling. En “Pre Authorization”, altså en præ kontrol, ved PBS, som muliggør tjek for om der kan foretages abonnements betalinger på kortet.


Status koder:

200 – Subscribtion #123 successfull Pre-aut

201 – Subscribtion #123 successfull Pre-aut Update

402 – Subscribtion #123 Pre-aut Failed

403 – Subscribtion #123 Pre-aut Failed – Customer number already exists

404 – Subscribtion #123 Pre-aut Failed – Max recurring limit reached


Ved tilføjelse af UpdateExistingSubscriber til PreAutRecurring, gives status koden:

201 – Subscribtion #123 successfull Pre-aut Update

Int
PreAutInstantCapture

(Funktionskald)

Foretager gen-autorisation ved PBS, og danner efterfølgende capture ved PBS for at hæve beløbet / starte første abonnementsbetaling. Int
RecurringCustNumber

(Variabel)

Værdien af kundenummer indsættes på abonnementet. Denne tager både tal og bogstaver som værdi. Værdi krævet hvis der udføres RecurringCapture, altså hævning af beløbet på vedkommende abonnement. String
RecurringDays

(Variabel)

Sætter intervallet af dage mellem hver betaling på abonnementet. Int
RecurringMonths

(Variabel)

Sætter intervallet af månder mellem hver betaling på abonnementet. Int
RecurringAmount

(Variabel)

Sætter beløbet der skal tillægges abonnementsbetalingen. Krævet hvis funktionen PreAutInstantCapture benyttes. Money
RecurringCurrency

(Variabel)

Sætter CurrencyID der bruges for abonnementsbetalingen. Currency ISO
RecurringNextCapture

(Variabel)

Angiver en dato for hvornår den næste abonnementsbetaling skal finde sted.

 

Date
PreAutCardNumber

(Variabel)

Kreditkort nummer.

 

Int
PreAutCardCVC

(Variabel)

Kreditkort kontrolcifre.

 

Int
PreAutCardExpireYear

(Variabel)

Kreditkort udløbs år.

 

Int
PreAutCardExpireMonth

(Variabel)

Kreditkort udløbs måned.

 

Int
RecurringCapture

(Funktionskald)

 

Giver mulighed for at foretage hævning af beløb på et angivet abonnement. Hvis RecurringAmount er angivet, foretages der hævning på dette beløb, ellers hentes beløbet fra abonnementets faste beløb. Altså, hvis RecurringCapture er sat til værdien 1, og evt. RecurringAmount er ændret i forhold til original beløbet, vil man kunne justere beløbet for det enkelte abonnement.

Status koder:

200 – Customer #[kundenummer] successfully captured (xxx,xx) on transaction [TransID]

402 – Customer #[kundenummer] Capture Failed

1
RecurringDelete

(Funktionskald)

Opdatering og deaktivering af abonnementer kan udføres ved at sende en parameter: RecurringDelete til payapi.asp. Denne vil give følgende status koder tilbage når den udføres:

200 successfully deleted

402 delete Failed – Customer not found

403 delete Failed – Customer already deleted

RecurringStatusList

(Funktionskald)

 

Giver mulighed for at hente en liste over abonnementer ud fra følgende søgekriterier:

1 – for abonnementer der skal hæves idag.

2 – for abonnementer der skulle have været hævet.

3 – for abonnementer hvor kortet er udløbet.

Denne kan køres selvstændig, eksempelvis således:

https://pay.dandomain.dk/payapi.asp?Username=xxxxxxx&Password=yyyyyyyy&RecurringStatusList=1

eksemplet vil så vise, i dette tilfælde med status listen 1, en liste over alle abonnementer.

1 / 2 / 3
UpdateExistingSubscriber

(Variabel)

Giver mulighed for opdatering af et eksisterende abonnement. Ved en opdatering SKAL alle normale parametre til en abonnements-oprettelse medsendes. Det betyder altså at kunden vil skulle det normale “betalings-flow” igennem igen. Men ved at sende UpdateExistingSubscriber=1 med, vil der i stedet for oprettelse af et nyt abonnement rettes i et eksisterende.

Grunden til at kunden skal igennem et nyt “betalings-flow” er at Nets kræver en gensendelse af alle kort data for at kunne ændre beløbet.

Forklaret i tekst, vil: <input type=”hidden” name=”UpdateExistingSubscriber” value=”1″> tilføjet i det normale “betalings-flow” medføre at:

– PreAuthTicket

– ClientIP

– CardType

– PreAuthExpirationDate

– RecurringCurrencyID

– RecurringAmount

altid opdateres med nye værdier.

Variablerne:

– IntervalDays

– InterValMonths

– NextCaptureDate

opdateres kun hvis ikke de er tomme / ikke har nogen værdi.

Når en opdatering af eksisterende abonnementer er gennemført, vil den / disse få en RecurringReturnStatus = 4, og dermed sende et http svar tilbage:

201 – Subscribtion #123 successfull Pre-aut Update

1

Det er vigtig at bemærke, at der er væsentlig forskel på håndtering af abonnementsbetalinger med PayApi.asp i forhold til SecureCapture.asp da PayApi.asp typisk benyttes “backend”, i forhold til SecureCapture.asp hvor kunder betaler via frontend / hjemmeside mv.

Fjernhævning af abonnementsbetalinger

Hvis der bruges “Recurringcapture” som i nedenstående eksempel, vil abonnementsbetalinger automatisk forlænges – og dermed ikke længere fremgå over dem der er forfaldne, samt abonnementsbetalingen vil være gennemført.

Eksempelfil Beskrivelse

Download

remote_recurring_capture.txt Filen indeholder mulighed for at “hæve”, en eksisterende abonnementsbetaling.

Download

 

Kodeeksempel på http kald med til payapi.asp

Følgende læser en status ud på en transaktion der er foretaget og ligger i betalingssystemet:

<%
dim XMLHTTPobj,PageUrl
PageUrl = "https://pay.dandomain.dk/payapi.asp?username=xxxxxxx&password=xxxxxxx&Checkstatus=1&OrderID=xxxxxx"
set XMLHTTPobj = server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
XMLHTTPobj.open "GET", PageUrl,false
XMLHTTPobj.send
response.write XMLHTTPobj.responseText
set XMLHTTPobj = nothing
%>


Du finder dokumentationen til Dandomain Webshop her: https://webshop-help.dandomain.dk x