Klarna Invoice
Last updated
<?php
//src/Acme/PaymentBundle/Controller
namespace AcmeDemoBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
class PaymentController extends Controller
{
public function prepareKlarnaInvoiceAction()
{
$gatewayName = 'your_gateway_name';
$storage = $this->get('payum')->getStorage('Acme\PaymentBundle\Entity\PaymentDetails');
/** @var \Acme\PaymentBundle\Entity\PaymentDetails $details */
$payment = $payum->getPayment($paymentName);
$payment->execute($getAddresses = new GetAddresses($pno));
$details = $storage->create();
$details = array(
/** @link http://developers.klarna.com/en/testing/invoice-and-account */
'pno' => '410321-9202',
'amount' => -1,
'gender' => \KlarnaFlags::MALE,
'articles' => array(
array(
'qty' => 4,
'artNo' => 'HANDLING',
'title' => 'Handling fee',
'price' => '50.99',
'vat' => '25',
'discount' => '0',
'flags' => \KlarnaFlags::INC_VAT | \KlarnaFlags::IS_HANDLING
),
),
'billing_address' => $getAddresses->getFirstAddress()->toArray(),
'shipping_address' => $getAddresses->getFirstAddress()->toArray(),
);
$storage->update($details);
$captureToken = $this->getTokenFactory()->createCaptureToken(
$gatewayName,
$details,
'acme_payment_done'
);
$storage->update($details);
return $this->redirect($captureToken->getTargetUrl());
}
}