<?php

require_once dirname(dirname(__FILE__)) . '/Klarna.php';
// Dependencies from http://phpxmlrpc.sourceforge.net/
require_once dirname(dirname(__FILE__)) . '/transport/xmlrpc-3.0.0.beta/lib/xmlrpc.inc';
require_once dirname(dirname(__FILE__)) . '/transport/xmlrpc-3.0.0.beta/lib/xmlrpc_wrappers.inc';
$k = new Klarna();
$k->config(0, 'sharedSecret', KlarnaCountry::SE, KlarnaLanguage::SV, KlarnaCurrency::SEK, Klarna::BETA, 'json', './pclasses.json');
$k->addArticle(4, "MG200MMS", "Matrox G200 MMS", 299.99, 25, 0, KlarnaFlags::INC_VAT);
$k->addArticle(1, "", "Shipping fee", 14.5, 25, 0, KlarnaFlags::INC_VAT | KlarnaFlags::IS_SHIPMENT);
$k->addArticle(1, "", "Handling fee", 11.5, 25, 0, KlarnaFlags::INC_VAT | KlarnaFlags::IS_HANDLING);
$addr = new KlarnaAddr('*****@*****.**', '', '0762560000', 'Testperson-se', 'Approved', '', 'Stårgatan 1', '12345', 'Ankeborg', KlarnaCountry::SE, null, null);
$k->setAddress(KlarnaFlags::IS_BILLING, $addr);
$k->setAddress(KlarnaFlags::IS_SHIPPING, $addr);
try {
    $result = $k->reserveAmount('4103219202', null, -1, KlarnaFlags::NO_FLAG, KlarnaPClass::INVOICE);
    $rno = $result[0];
    $status = $result[1];
    // $status is KlarnaFlags::PENDING or KlarnaFlags::ACCEPTED.
    echo "OK: reservation {$rno} - order status {$status}\n";
} catch (Exception $e) {
    echo "{$e->getMessage()} (#{$e->getCode()})\n";
}