melogail/telr-laravel

Laravel Telr支付网关解决方案包。

1.0.6 2023-05-16 18:45 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

使用Laravel包通过"Telr"支付网关从您的网站进行在线支付。

安装

您可以通过composer安装此包

composer require melogail/telr-laravel

您可以使用以下命令发布并运行迁移

php artisan vendor:publish --provider="Melogail\TelrLaravel\TelrLaravelServiceProvider" --tag="migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Melogail\TelrLaravel\TelrLaravelServiceProvider" --tag="config"

这将把config/telr-laravel.php配置文件添加到您的项目配置文件夹中。

config/telr-laravel.php配置文件中,您需要根据项目路由添加成功、失败和取消页面的相对路径。

return [

    // ...other configs

    'response_path' => [
        'return_auth' => '/:path/to_success_page',
        'return_decl' => '/:path/to_decline_page',
        'return_can' => '/:path/to_cancel_page',
    ],
];

将以下代码添加到您的.env文件中,并将值更改为您的支付值。

TELR_STORE_ID=      # Payment API key [its different from your "Service API" key].
TELR_AUTH_KEY=      # Payment API key.
TELR_TEST_MODE=     # 1=Test mode | 0=Live mode.
TELR_CURRENCY=      # Currency used for payment.

在您的config/app.php文件中添加TelrLaravel外观。

'aliases' => Facade::defaultAliases()->merge([
        // 'ExampleClass' => App\Example\ExampleClass::class,
        'TelrLaravel' => \Melogail\TelrLaravel\Facades\TelrLaravel::class,

    ])->toArray(),

用法

要执行支付,您需要在控制器中调用TelrLaravel类。

use Melogail\TelrLaravel\TelrLaravel;

$telr_laravel = new TelrLaravel();

使用makePayment()方法进行支付。

$telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16');

调用makePayment()方法后,然后调用pay()方法执行支付。

makePayment(string $order_id, float $amount, string $description)方法需要三个参数

  • string $order_id : 您系统生成的订单ID。
  • float $amount : 需要支付的金额,以小数形式表示,例如:9.50。
  • string $description : 支付的简短描述,最大长度63个字符。

pay(<array $params>)方法接受一个可选的数组参数,该数组包含支付网关所需的必要账单信息。如果这些参数在您的系统中被忽略,支付网关页面将提示用户添加这些信息。

所需信息如下

  • bill_fname : 用户名。
  • bill_sname : 用户姓氏。
  • bill_addr1 : 主要账单地址。
  • bill_phone : 用户电话号码。
  • bill_city : 城市,例如:迪拜。
  • bill_country : 国家,必须以两个字符的ISO 3166国家代码提供,例如:US、GB、EG。
  • bill_email : 用户主要电子邮件。
$billing_parameters = [
    'bill_fname' => $first_name,
    'bill_sname' => $sure_name,
    'bill_addr1' => $address1,
    'bill_phone' => $phone,
    'bill_city' => $city,
    'bill_country' => $country,
    'bill_email' => $email
];

$telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16')
    ->pay($billing_parameters);

完整代码示例

use Melogail\TelrLaravel\TelrLaravel;

$telr_laravel = new TelrLaravel();

$billing_parameters = [
    'bill_fname' => $first_name,
    'bill_sname' => $sure_name,
    'bill_addr1' => $address1,
    'bill_phone' => $phone,
    'bill_city' => $city,
    'bill_country' => $country,
    'bill_email' => $email
];

$telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16')->pay($billing_parameters);

有关账单参数的更多信息,请参阅平台文档此处

确认交易并更新交易状态

在您的config/telr-laravel.php文件中设置支付状态路径页面后,您需要创建三个不同的视图,每个视图对应一个状态(成功、失败、取消)。

在每个视图中,您需要调用Telr外观上的setTransactionStatus(Request $request)方法来根据其返回的响应更新交易状态。

use Illuminate\Http\Request;
use \Melogail\TelrLaravel\Facades\TelrLaravel;

class PaymentController extends Controller {

    public function success(Request $request){
    
        // Calling setTransactionStatus facade.
        TelrLaravel::setTransactionStatus($request);
        
        return view( //... success view page);
    }
    
    
    public function decline(Request $request){
    
        // Calling setTransactionStatus facade.
        TelrLaravel::setTransactionStatus($request);
        
        return view( //... decline view page);
    }
    
    
    public function cancel(Request $request){
    
        // Calling setTransactionStatus facade.
        TelrLaravel::setTransactionStatus($request);
        
        return view( //... cancel view page);
    }

}

测试卡

您可以使用以下卡来测试您的支付网关集成。

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件