pimcore/payment-provider-klarna
最新稳定版本:v2.0.0
Composer 安装命令:
composer require pimcore/payment-provider-klarna
包简介
Pimcore Payment Provider - Klarna
README 文档
README
Official Klarna Documentation
Test E-Mail Accounts
- klarna@green.com -> Open Invoice without selection of payment method
- klarna@yellow.com -> selection of payment methods: open invoice + credit cart
- klarna@red.com -> only credit card
Requirements
- klarna/checkout
Installation
Install latest version with Composer:
composer require pimcore/payment-provider-klarna
Enable bundle via console or extensions manager in Pimcore backend:
php bin/console pimcore:bundle:enable PimcorePaymentProviderKlarnaBundle
Configuration
<?php $url = $this->view->serverUrl(); $config = [ 'purchase_country' => 'AT' , 'merchant_reference' => [ 'orderid2' => $paymentInfo->getInternalPaymentId() ] , 'locale' => 'de-at' , 'merchant' => [ 'back_to_store_uri' => $url(['action' => 'payment']) , 'terms_uri' => $this->view->serverUrl() . '/agb' , 'checkout_uri' => $url(['action' => 'payment']) . '?klarna_order={checkout.order.uri}' , 'confirmation_uri' => $url(['action' => 'confirm'], 'payment') . '?klarna_order={checkout.order.uri}' , 'push_uri' => $url(['action' => 'confirm'], 'payment') . '?klarna_order={checkout.order.uri}' , 'validation_uri' => $this->view->serverUrl() . '/<LINK TO VALIDATE ORDER>?klarna_order={checkout.order.uri}' ] , 'options' => [ 'color_button' => '#557F0D' , 'color_button_text' => '#FFFFFF' , 'color_checkbox' => '#FF0000' , 'color_checkbox_checkmark' => '#FF0000' , 'color_header' => '#EA5B0C' , 'color_link' => '#FF0000' , 'allow_separate_shipping_address' => true ] ];
The cart items
The Klarna provider implementation has currently no fallback to the default checkout manager to extract the cart items. So you have to pass them in the config array $config['cart']['items'] .
See under "1. Add the cart items" https://developers.klarna.com/en/at/kco-v2/checkout/2-embed-the-checkout
Example implementation:
$items = []; foreach ( $cart->getItems() as $cartItem){ $item = []; $item['reference'] = $cartItem->getProduct()->getOSProductNumber(); // a unique reference for this product / variant $item['name'] = $cartItem->getProduct()->getOSName(); $item['quantity'] = (int) $cartItem->getCount(); $unitPrice = $cartItem->getProduct()->getOSPrice(); // the price for 1 piece $item['unit_price'] = (int) $unitPrice->getAmount()->asRawValue() / 100; // format to integer $item['discount_rate'] = 0; // mostly implemented via an cart modificator $item['tax_rate'] = 0; // can be null, if you don't need tax calculation in the Klarna checkout $items[] = $item; // push it to the items array } $config['cart']['items'] = $items;
Most important is the formatting of the prices, they have to be integers. For example: 20.00 € has to become 2000. Klarna only accepts integers because of avoiding rounding mistakes.
Here is a list for all accepted item fields: https://developers.klarna.com/en/at/kco-v2/checkout-api#cart-item-object-properties
统计信息
- 总下载量: 2.71k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2021-02-02