hachther/laravel-mesomb

基于 Mesomb 支付 API 的 Laravel 封装

1.8.0 2023-12-23 10:20 UTC

README

MeSomb 支付 API 之上的 Laravel 封装

路线图

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

安装

在开始之前,您必须注册您的服务和 MeSomb 并获取 API 访问密钥。请按照此教程进行。

安装包

composer require hachther/laravel-mesomb

发布配置文件

从 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 Hachther\MeSomb\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 Hachther\MeSomb\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 Hachther\MeSomb\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 Hachther\MeSomb\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
    }
}

作者

Hachther LLC contact@hachther.com

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