PHP code example of dalholm / omnipay-klarna
1. Go to this page and download the library: Download dalholm/omnipay-klarna library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dalholm / omnipay-klarna example snippets
$gateway = Omnipay\Omnipay::create('\Dalholm\Omnipay\KlarnaCheckout\Gateway');
// or
$gateway = new Dalholm\Omnipay\Klarna\Gateway(/* $httpClient, $httpRequest */);
$gateway->initialize([
'username' => $username,
'secret' => $secret,
'api_region' => $region, // Optional, may be Gateway::API_VERSION_EUROPE (default) or Gateway::API_VERSION_NORTH_AMERICA
'testMode' => false // Optional, default: true
]);
// or
$gateway->setUsername($username);
$gateway->setSecret($secret);
$gateway->setApiRegion($region);
$data = [
'amount' => 100,
'tax_amount' => 20,
'currency' => 'SEK',
'locale' => 'SE',
'purchase_country' => 'SE',
'notify_url' => '', // https://developers.klarna.com/api/#checkout-api__ordermerchant_urls__validation
'return_url' => '', // https://developers.klarna.com/api/#checkout-api__ordermerchant_urls__checkout
'terms_url' => '', // https://developers.klarna.com/api/#checkout-api__ordermerchant_urls__terms
'validation_url' => '', // https://developers.klarna.com/api/#checkout-api__ordermerchant_urls__validation
'items' => [
[
'type' => 'physical',
'name' => 'Shirt',
'quantity' => 1,
'tax_rate' => 2500,
'price' => 1000,
'unit_price' => 1000,
'total_tax_amount' => 200,
],
],
];
$response = $gateway->authorize($data)->send()->getData();
$response = $gateway->fetchTransaction(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])
->send();
echo $response->getData()['checkout']['html_snippet'];
$response = $gateway->updateTransaction([
'transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab',
'amount' => 200,
'tax_amount' => 40,
'currency' => 'SEK',
'locale' => 'SE',
'purchase_country' => 'SE',
'items' => [/*...*/],
])->send();
$response = $gateway->updateMerchantReferences([
'transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab',
'merchant_reference1' => (String) 'Your reference or order id',
'merchant_reference2' => (String) 'Another reference or order id',
])->send();
if ($gateway->extendAuthorization(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])->send()->isSuccessful()) {
$expiration = new \DateTimeImmutable(
$gateway->fetchTransaction(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])
->send()
->getData()['management']['expires_at']
);
}
$success = $gateway->capture([
'transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab',
'amount' => '995',
])->send()
->isSuccessful();
$response = $gateway->fetchTransaction(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])
->send();
$success = $response->isSuccessful();
$checkoutData = $response->getData()['checkout'] ?? [];
$managementData = $response->getData()['management'] ?? [];
$success = $gateway->acknowledge(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])
->send()
->isSuccessful();
$success = $gateway->refund([
'transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab',
'amount' => '995',
])->send()
->isSuccessful();
$success = $gateway->void(['transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab'])
->send()
->isSuccessful();
$success = $gateway->refund([
'transactionReference' => 'a5bec272-d68d-4df9-9fdd-8e35e51f92ab',
'shipping_address' => [
'given_name'=> 'Klara',
'family_name'=> 'Joyce',
'title'=> 'Mrs',
'street_address'=> 'Apartment 10',
'street_address2'=> '1 Safeway',
'postal_code'=> '12345',
'city'=> 'Knoxville',
'region'=> 'TN',
'country'=> 'us',
'email'=> '[email protected] ',
'phone'=> '1-555-555-5555'
],
'billing_address' => [
'given_name'=> 'Klara',
'family_name'=> 'Joyce',
'title'=> 'Mrs',
'street_address'=> 'Apartment 10',
'street_address2'=> '1 Safeway',
'postal_code'=> '12345',
'city'=> 'Knoxville',
'region'=> 'TN',
'country'=> 'us',
'email'=> '[email protected] ',
'phone'=> '1-555-555-5555'
],
])->send()
->isSuccessful();