aries/seppay

此包已被废弃且不再维护。没有推荐替代包。

Laravel 包,用于使用 to pay.ir 支付网关

3.5 2019-09-23 15:59 UTC

This package is auto-updated.

Last update: 2023-01-16 16:35:00 UTC


README

基于伊朗 Shaparak 网络的 Laravel 的 Saman 电子支付(pay.ir)支付包

更新说明:

您需要再次发布 Service Provider 并运行迁移以更新交易表

php artisan vendor:publish  --provider='Aries\Seppay\SeppayServiceProvider'

php artisan migrate

安装:

运行此命令

composer require aries/seppay

然后运行此命令

php artisan vendor:publish --provider='Aries\Seppay\SeppayServiceProvider'

然后运行

php artisan migrate

用法:

您可以在 config/Seppay.php 或您的 .env 文件中使用 SEP_API_KEY 设置 pay.ir api 密钥

您有两种付款方式

  1. 使用 Trait

Payable Trait 导入您想要拥有付款功能的模型中

use Aries\Seppay\Traits\Payable;

并在模型类中使用 Payable 如下

class Bill extends Model {
    use Payable;
    ...
}

然后在您的控制器中,您可以开始付款如下

public function payment($id) {
    $bill = Bill::find($id);
    return $bill->pay($amount, $mobile, $description, $callback_url, $factor_number, $valid_card_number);
}

$factor_number$valid_card_number 是可选的,您可以将其设置为 null 或不将它们传递给 pay() 方法

  1. 使用 Pay() 类
<?php

namespace App\Http\Controllers;

use Aries\Seppay\Pay;
use Aries\Seppay\Models\Transaction;
use Illuminate\Http\Request;

class TestController extends Controller
{
    public function test()
    {
        $factor_number = 123;
        $amount = 1000;
        $valid_card_number = '6037999999999999';
        try {
            $pay = new Pay();
            $pay->amount($amount);
            $pay->factorNumber($factor_number);
            $pay->validCardNumber($valid_card_number);
            $pay->callback(url('/'));
            $response = $pay->ready();
            
            Transaction::create([
                'amount'            =>  $amount,
                'transId'           =>  $response->token,
                'factorNumber'      =>  $factor_number,
                'validCardNumber'   =>  $valid_card_number,
                'mobile'            =>  '09123456789'
            ]);
            
            /*
             * do anything you want with $response Object
             * Like: store Transaction ID on your cart with: $response->transId;
             */
            
            return $pay->start();

        } catch (\Exception $e) {
            return $e->getMessage();
        }
    }

    public function callback()
    {
        try {
            $pay = new Pay();
            $response = $pay->verify();
            
            /*
             * if verification was successful you can send order for your customer
             */
        } catch (\Exception $e) {
            return $e->getMessage();
        }
    }
}

特别感谢 Mohammad Babaei