pinDENA/omnipay-vipps

Omnipay支付处理库的Vipps驱动程序

v1.0.16 2023-09-15 18:05 UTC

This package is auto-updated.

Last update: 2024-09-15 20:25:41 UTC


README

Omnipay PHP支付处理库的Vipps驱动程序

Omnipay 是一个与框架无关、多网关的PHP支付处理库。此包实现了Omnipay的Vipps支持。

安装

Omnipay通过 Composer 安装。要安装,只需使用Composer要求 league/omnipaypindena/omnipay-vipps

composer require league/omnipay pindena/omnipay-vipps

基本用法

此包提供了以下网关

  • Vipps (Vipps Ecomm Checkout)

有关一般用法说明,请参阅主要的 Omnipay 存储库和 Vipps 文档

初始化网关、授权并重定向到Vipps

use Pindena\Omnipay\Vipps\Gateway;

$gateway = new Gateway();

$gateway->initialize([
    'clientId'             => '',
    'clientSecret'         => '',
    'ocpSubscription'      => '',
    'merchantSerialNumber' => '',
]);

$response = $gateway->authorize([
    'amount'      => '10.00',
    'currency'    => 'NOK',
    'description' => 'This is a test transaction',
    'phone'       => $_POST['phone'],
    'returnUrl'   => $fallbackUrl,
    'notifyUrl'   => $callbackPrefix,
])->send();

if ($response->isRedirect()) {
    $response->redirect();
}

捕获授权金额

$response = $gateway->capture([
    'amount'               => $amount,
    'description'          => 'This is a test transaction',
    'transactionReference' => $transactionReference,
])->send();

获取交易详情

$response = $gateway->completeAuthorize(['transactionReference' => $transactionReference])->send();

调试头部信息

Vipps要求合作伙伴和平台在所有请求中发送特殊头部。这可以通过在初始化选项或每个请求中添加头部信息来实现。

$gateway->initialize([
    'clientId'             => '',
    'clientSecret'         => '',
    'ocpSubscription'      => '',
    'merchantSerialNumber' => '',
    'headers'              => [
        'Vipps-System-Name' => 'System name',
        'Vipps-System-Version' => 'v1.0',
    ],
]);

特性

Vipps会向 notifyUrl]/v2/payments/[orderId] 发送一个 notify-请求。对于Laravel,这意味着您需要在 web.php 中注册一个 POST 路由,监听 /v2/payments/{orderId} 以处理来自Vipps的支付通知。

范围之外

Omnipay不涵盖周期性支付或账单协议,因此这些功能不包括在此包中。欢迎对网关进行扩展。

支持

如果您遇到Omnipay的一般问题,我们建议在 Stack Overflow 上发布。请确保添加 omnipay 标签,以便易于查找。

如果您想了解发行公告,讨论项目的想法或提出更详细的问题,还有一个您可订阅的 邮件列表

如果您认为您已发现一个错误,请使用 GitHub问题跟踪器 报告它,或者最好是分叉库并提交一个pull请求。