Vent venligst ...


Loading...

Recurring payments

Abonnementsbetalinger

Mange forretninger ønsker at trække penge fra et betalingskort flere gange, uden at kunden skal indtaste sine kortoplysninger igen og igen. Det kan være til månedlige abonnementer/gebyrer (f.eks. til online datingprofiler) eller mobilselskaber, hvis kundens konto automatisk tankes op, når den er i bund. Denne logik kan bruges på mange forskellige services, men er helt generelt en måde, hvorpå en forretning kan gemme kortholderens kort uden at være PCI-certificeret, som Bambora er.   

Hos Bambora kalder vi disse tilbagevendende betalinger for abonnementsbetalinger. Ideen bag er, at der oprettes et abonnement ved Bambora. Der kan så trækkes penge flere gange over dette abonnement. Når kortholder annullerer sit abonnement ved forretningen, slettes abonnementet ved Bambora.
Vigtigt: IP-adresse

Du skal tilføje din IP-adresse under API/Webservices -> Adgang på din Bambora-administration, før du kan lave abonnementsbetalinger.

Abonnementets trin

En abonnementsbetaling går gennem disse fire trin:


Trin 1

Kortholder indtaster sine kortoplysninger, som godkendes af forretningens indløser (gennem Bambora). Det sker i Bamboras betalingsvindue. Parameteren subscription skal være = 1. Så ved Bambora, at transaktionen skal være et abonnement, og at kortoplysningerne skal gemmes, så der kan laves abonnementsbetalinger.

Eksempel

Bemærk! Parameteren amount kan sættes til 0, hvis der ikke skal trækkes penge ved tilmelding.

<script type="text/javascript" src="https://ssl.ditonlinebetalingssystem.dk/integration/ewindow/paymentwindow.js" charset="UTF-8"></script>
 
<script type="text/javascript">
    paymentwindow = new PaymentWindow({
        'merchantnumber': "ENTER YOUR MERCHANT NUMBER HERE",
        'amount': "10095",
        'currency': "DKK",
        'subscription': "1"
    });
</script>
 
<input type="button" onclick="javascript: paymentwindow.open()" value="Go to payment" />

Trin 2

Bambora gemmer kortoplysningerne og returnerer en reference til betalingskortet til forretningen. Denne reference kaldes subscriptionid, og parameteren subscriptionid har samme værdi som referencen. Den returneres som et GET-parameter på accepturl og callbackurl. Parameterens værdi skal gemmes sammen med kundens øvrige informationer i forretningens system.

Trin 3

Når forretningen vil trække penge på kortet (f.eks. den første dag i måneden), sker følgende:

  • a. Forretningens system kalder Bamboras webservicefunktion authorize. Referencen subscriptionid bliver tilføjet som en parameter for at lave en betaling med betalingskortet, som er gemt ved Bambora.

PHP-eksempel

<?php
    $epay_params = array();
    $epay_params['merchantnumber'] = "ENTER YOUR MERCHANT NUMBER HERE";
    $epay_params['subscriptionid'] = "ENTER THE SUBSCRIPTIONID RETURNED FROM EPAY HERE";
    $epay_params['orderid'] = "1234";
    $epay_params['amount'] = "9995";
    $epay_params['currency'] = "208";
    $epay_params['instantcapture'] = "0";
    $epay_params['fraud'] = "0";
    $epay_params['transactionid'] = "-1";
    $epay_params['pbsresponse'] = "-1";
    $epay_params['epayresponse'] = "-1";

    $client = new SoapClient('https://ssl.ditonlinebetalingssystem.dk/remote/subscription.asmx?WSDL');

    $result = $client->authorize($epay_params);

    if($result->authorizeResult == true)
    {
        $transactionid = $result->transactionid;
    }
    else
    {
        //Error - see pbsresponse and epayresponse
    }
?>
  • b. Ved en succesfuld betaling returnerer Bambora en unik reference på transaktionen, som kaldes transactionid

  • c. Forretningens system hæver betalingen ved at kalde Bamboras betalingswebservice med parameteren transactionid. Bemærk venligst, at parameteren instantcapture kan defineres ved trin ‘a’, hvilket betyder, at dette trin kan springes over. Du må dog kun bruge instantcapture, hvis kunden modtager sin vare/service med det samme.  

PHP-eksempel

<?php 
$epay_params = array();

$epay_params['merchantnumber'] = "ENTER YOUR MERCHANT NUMBER HERE";
$epay_params['transactionid'] = "ENTER THE TRANSACTIONID HERE";
$epay_params['amount'] = "9995";
$epay_params['pbsResponse'] = "-1";
$epay_params['epayresponse'] = "-1";
$client = new SoapClient('https://ssl.ditonlinebetalingssystem.dk/remote/payment.asmx?WSDL');
$result = $client->capture($epay_params);
if($result->captureResult == true)
{
    //Capture OK
}
else
{
    //Error - see pbsResponse and epayresponse
}
?>

Trin 4

Når abonnementet skal annulleres, kalder forretningen system webservicefunktionen deletesubscription med abonnementswebservicen. Alle kortoplysninger slettes ved Bambora, og der kan ikke længere foretages abonnementsbetalinger.

Når kortet udløber

Når betalingskortet udløber, skal kortholderen oprette et nyt abonnement. Det kan gøres på følgende måde:

1. Forretningens system kalder funktionen deletesubscription med abonnementswebservicen. Referencen subscriptionid tilføjes som et parameter for at fortælle Bamboras system, hvilket abonnement der skal slettes. 

2. Forretningens system sletter referencen til abonnementet i sit eget system. 

3. Forretningens system skal så bede kortholder om at genindtaste sine kortoplysninger i Bamboras betalingsvindue. Derefter gentages trin 1 i sektionen ovenfor.