descom/payment-gateway

Laravel应用支付网关

3.7.0 2024-09-02 13:54 UTC

README

DPG是一个Laravel的包,允许您将支付网关集成到您的应用中。此包使用Omnipay来集成支付网关。

tests analyze style-fix

安装

composer require descom/payment-gateway

您可以为Omnipay安装任何模块,示例

composer require descom/omnipay-offline-dummy

用法

创建支付方法

<?php

use Descom\Payment\Payment;
use Omnipay\OfflineDummy\Gateway as OfflineDummyGateway;

Payment::for(new OfflineDummyGateway())
            ->name('Method Name')
            ->config([
                'return_url' => 'http:/www.localhost/checkout/success',
                'cancel_url' => 'http:/www.localhost/checkout/cancel',
                'request' => [
                    'notify_url' => 'http:/api.localhost/payment/paymentdemo/notify',
                    'return_url' => 'http:/api.localhost/payment/{parameterId}/redirect',
                ],
            ]))
            ->transformer() // Optional, you can use your own transformer with interface Descom\Payment\Transformers\Transformer
            ->create('paymentdemo');

访问支付方法

<?php
use Descom\Payment\Payment;

$payment = Payment::find('paymentdemo');

创建交易

<?php
use Descom\Payment\Payment;
use Descom\Payment\Transaction;

$payment = Payment::find('paymentdemo');

$transaction = Transaction::for($payment)->create([
    'amount' => '10.00',
    'merchant_id' => 'order_1',
]);

您可以选择添加一个外部模型的关联

<?php
use Descom\Payment\Payment;
use Descom\Payment\Transaction;

$payment = Payment::find('paymentdemo');

$transaction = Transaction::for($payment)
    ->model(Order::find(1))
    ->create([
        'amount' => '10.00',
        'merchant_id' => 'order_1',
    ]);
## Capture Notification

Create Listener to events:

- `Descom\Payment\Events\TransactionPaid`
- `Descom\Payment\Events\TransactionDenied`