brainlabsweb/laravel-paytm

适用于 Laravel 应用的 Paytm 网关

v1.0.2 2019-05-03 05:20 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:44 UTC


README

💰 Laravel Paytm 💰

Latest Stable Version Total Downloads License

此包允许您将 Paytm 支付网关集成到您的 Laravel 应用中。有关 Paytm 的完整文档,您可以在这里查看 here

💡 安装

  1. 使用 Composer 安装包
composer require brainlabsweb/laravel-paytm

包将自动注册其服务提供者。

  1. 发布配置文件
php artisan vendor:publish --provider="Brainlabsweb\Paytm\PaytmServiceProvider"

配置

注意:对于 Laravel 5.5 及以上版本,您可以跳过以下步骤

在您的 config/app.php 中添加以下内容

'providers' => [
    // Other service providers...
    Brainlabsweb\Patym\PatymServiceProvider::class,
],

同样在别名下

'aliases' => [
    // Other aliases
    'Paytm' => Brainlabsweb\Patym\Paytm::class,
],

以获取 Paytm API 网址

这些网址将自动根据在 Paytm 配置文件中设置的 💪 默认 状态,导向相应的 Paytm 沙盒、直播模式

paytm()->getTxnUrl(); // for charging  
paytm()->getTransactionStatusUrl(); // to know the status of the paytm transaction
paytm()->getRefundUrl(); // to inititate refund
paytm()->getRefundStatusUrl(); // to know the refund status

在您的视图文件中

/**
* The below are mandatory fields
* optional fields MOBILE_NO, EMAIL
*/
$data = [
    'ORDER_ID'   => 'order_id',
    'TXT_AMOUNT' => '1',
    'CUST_ID'    => 'custid'
];
<form method="POST" action="{{ paytm()->getTxnUrl() }}">
    @foreach(\Brainlabsweb\Paytm\Paytm::prepare($data) as $key => value)
    <input type="hidden" name="{{ $key }}" value="{{ $value }}">   
    @endforeach
    
    <button type="submit">Pay</button>
</form>
OR

paytm()->prepare($data)

禁用 Paytm 路由的 CSRF

确保所有 Paytm 的 POST 请求处理路由均不受 CSRF 保护。例如

Route::post('paytm/verify','PaytmController@verify');

您可以在 app/Http/Middleware/VerifyCsrfToken.php 中禁用这些

protected $except = ['paytm/verify'];

一旦在您的控制器中完成支付

\Brainlabsweb\Paytm\Paytm::verify(); // returns true/false 

OR

paytm()->verify();

以获取 Paytm 响应状态

\Brainlabsweb\Paytm\Paytm::response(); // returns paytm response array 

OR
                  
paytm()->response();                   

以了解交易状态

Make POST REQUEST with param $order_id

\Brainlabsweb\Paytm\Paytm::getTransactionStatus($order_id); // returns paytm response array

OR

paytm()->getTransactionStatus($order_id); 

以发起退款

$data = [
    'ORDERID'   => 'order_id',
    'REFID' => 'ref1', // should be unique everytime
    'TXNID'    => 'TXNID' // will get as response when made a transaction
    'REFUNDAMOUNT' => '1',
    'COMMENT' => 'SOME TEXT' // THIS IS OPTIONAL PARAMTER
];

\Brainlabsweb\Paytm\Paytm::refund($data); // returns paytm response array 

OR

paytm()->refund($data);

以了解退款状态

$data = [
    'ORDERID'   => 'order_id',
    'REFID' => 'ref1', // This is REFID for which refund status is being inquired
];

\Brainlabsweb\Paytm\Paytm::refundStatus($data); // returns paytm response array

OR

paytm()->refundStatus($data); 

完成!!