freethinkerz/laravel-pay

MeSomb和NotchPay的laravel支付网关包装器

1.2.0 2024-01-16 23:28 UTC

This package is auto-updated.

Last update: 2024-09-17 00:53:15 UTC


README

MeSomb和NotchPay的laravel支付网关包装器

路线图

API功能及其实现 https://mesomb.hachther.com/en/api/v1.1/schema/

安装

开始之前,您必须注册您的服务以及MeSomb,并获取API访问密钥。请遵循此教程

安装包

composer require freethinkerz/laravel-pay

发布配置文件

从MeSomb设置以下参数

在遵循上述教程后,从MeSomb获取以下信息。

MESOMB_APP_KEY=<ApplicationKey>
MESOMB_API_HOST=https://mesomb.hachther.com
MESOMB_API_VERSION=v1.1
MESOMB_ACCESS_KEY=<AccessKey>
MESOMB_SECRET_KEY=<SecretKey>
MESOMB_SSL_VERIFY=true

发布配置文件

php artisan vendor:publish --tag=mesomb-configuration

迁移Mesomb交易表

php artisan migrate

用法

快速示例

简单收款

// OrderController.php
use FreeThinkerz\LaravelPay\Operation\Payment\Collect;

class OrderController extends Controller {

    public function confirmOrder()
    {
        $request = new Collect('67xxxxxxx', 1000, 'MTN', 'CM');

        $payment = $request->pay();

        if($payment->success){
            // Fire some event,Pay someone, Alert user
        } else {
            // fire some event, redirect to error page
        }

        // get Transactions details $payment->transactions
    }
}

简单存入

// OrderController.php
use FreeThinkerz\LaravelPay\Operation\Payment\Deposit;

class OrderController extends Controller {

    public function makeDeposit()
    {
        $request = new Deposit('67xxxxxxx', 1000, 'MTN', 'CM');

        $payment = $request->pay();

        if($payment->success){
            // Fire some event,Pay someone, Alert user
        } else {
            // fire some event, redirect to error page
        }

        // get Transactions details $payment->transactions
    }
}

直接将付款附加到模型

// Order.php

use FreeThinkerz\LaravelPay\Helper\HasPayments;

class Order extends Model
{
    use HasPayments;
}

// OrderController.php

class OrderController extends Controller {

    public function confirmOrder(){

        $order = Order::create(['amount' => 100]);

        $payment  = $order->payment('67xxxxxxx', $order->amount, 'MTN', 'CM')->pay();

        if($payment->success){
            // Fire some event,Pay someone, Alert user
        } else {
            // fire some event, redirect to error page
        }

        // View Order payments via $order->payments

        // Get payment transaction with $payment->transaction

        return $payment;
    }
}

处理多个应用程序

如果您想使用同一个项目处理多个MeSomb应用程序,请按照以下方式处理。

  1. 按照以下指定设置默认应用程序和其他信息配置您的配置文件。
  2. 动态更新应用程序密钥(如有需要,还包括访问密钥和秘密密钥),如下所示。
// OrderController.php
use FreeThinkerz\LaravelPay\Operation\Payment\Collect;

class OrderController extends Controller {

    public function confirmOrder()
    {
        $request = new Collect('67xxxxxxx', 1000, 'MTN', 'CM');

        // Update applicationKey before process the payment
        // You also have setAccessKey and setSecretKey
        $payment = $request->setApplicationKey('<applicationKey>')->pay();

        if($payment->success){
            // Fire some event,Pay someone, Alert user
        } else {
            // fire some event, redirect to error page
        }

        // get Transactions details $payment->transactions
    }
}

作者

FreeThinkerz https://github.com/FreeThinkerz

感谢

感谢Malico (hi@malico.me) 开发此模块。

Hachther LLC(为模块添加更新) contact@hachther.com