alegra/omnipay-klarna

Klarna支付网关用于Omnipay支付处理库

v0.0.2 2021-05-29 03:01 UTC

This package is auto-updated.

Last update: 2024-08-29 05:31:33 UTC


README

Build Status Total Downloads Latest Stable Version

Klarna支付网关用于Omnipay支付处理库

Omnipay 是一个框架无关的,多网关支付处理库,适用于PHP 7.3+。此包实现了Klarna在线支付网关对Omnipay的支持。

要求

  • PHP >= 7.3.x
  • Omnipay V.3 仓库
  • PHPUnit以运行测试

自动加载

您必须安装Omnipay V.3

composer require league/omnipay:^3

然后您必须安装omnipay-payu包

composer require alegra/omnipay-klarna

payment-klarna遵循PSR-4约定名称为其类,这意味着您可以轻松地将payment-klarna类加载到自己的自动加载器中。

基本用法

  • 您可以使用/examples文件夹来执行示例。此文件夹仅用于展示示例,不适用于生产使用。
  • /examples文件夹中的第一个文件
composer install

授权示例

  • 您可以在/examples文件夹中查看authorize.php文件。
<?php

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4('Examples\\', __DIR__);

use Omnipay\Klarna\Message\AuthorizeResponse;
use Omnipay\Klarna\Gateway;
use Examples\Helper;

$gateway = new Gateway();

$helper = new Helper();
try {
    $params = $helper->getAuthorizeParams();

    /** @var AuthorizeResponse $response */
    $response = $gateway->authorize($params)->send();

    $result = [
        'status' => $response->isSuccessful() ?: 0,
        'message' => $response->getMessage(),
        'requestParams' => $response->getServiceRequestParams(),
        'response' => $response->getData()
    ];
} catch (Exception $e) {
    throw new \RuntimeException($e->getMessage());
}

购买示例

  • 您可以在/examples文件夹中查看purchase.php文件。
<?php

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4('Examples\\', __DIR__);

use Omnipay\Klarna\Message\PurchaseResponse;
use Omnipay\Klarna\Gateway;
use Examples\Helper;

$gateway = new Gateway();

$helper = new Helper();
try {
    $params = $helper->getPurchaseParams();

    /** @var PurchaseResponse $response */
    $response = $gateway->authorize($params)->send();

    $result = [
        'status' => $response->isSuccessful() ?: 0,
        'message' => $response->getMessage(),
        'requestParams' => $response->getServiceRequestParams(),
        'response' => $response->getData()
    ];
} catch (Exception $e) {
    throw new \RuntimeException($e->getMessage());
}

退款示例

  • 您可以在/examples文件夹中查看refund.php文件。
<?php

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4('Examples\\', __DIR__);

use Omnipay\Klarna\Gateway;
use Examples\Helper;

$gateway = new Gateway();
$helper = new Helper();

try {
    $params = $helper->getRefundParams();
    $response = $gateway->refund($params)->send();

    $result = [
        'status' => $response->isSuccessful() ?: 0,
        'redirect' => $response->isRedirect() ?: 0,
        'message' => $response->getMessage(),
        'requestParams' => $response->getServiceRequestParams(),
        'response' => $response->getData()
    ];

    print("<pre>" . print_r($result, true) . "</pre>");
} catch (Exception $e) {
    throw new \RuntimeException($e->getMessage());
}

requestParams

系统向Klarna API发送请求。它显示了请求信息。