mabdulmonem / laravel-paytabs
laravel 包,用于实现与 laravel 应用程序的 PayTabs 集成
Requires
- php: ^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-13 23:21:39 UTC
README
Laravel PayTabs PT2
描述
本包提供了与 PayTabs 支付网关的集成。
本文件内容
- 介绍
- 要求
- 安装
- 配置
- 用法
介绍
本包从 5.8 - 8.x 版本的 Laravel 框架开始,将 PayTabs 在线支付集成到 Laravel 框架中。
要求
本包不需要外部依赖。
安装
- composer require mabdulmonem/laravel-paytabs
配置
-
composer dump-autoload
-
前往 config/app.php 文件,在 providers 数组中添加
Mabdulmonem\LaravelPayTabs\PaypageServiceProvider::class,
-
创建包配置文件:(在 laravel <5.5 中必需)
php artisan vendor:publish --tag=paytabs
-
前往 config/logging.php 文件,在 channels 数组中添加
'PayTabs' => [ 'driver' => 'single', 'path' => storage_path('logs/paytabs.log'), 'level' => 'info', ],
-
在 config/paytabs.php 文件中添加您的商户信息。
重要提示:您可以通过环境文件传递商户信息,其键名与 config/paytabs.php 文件中提到的相同。如果不存在给定键的环境变量,则将返回此值。
用法
-
创建支付页面
use Mabdulmonem\LaravelPayTabs\Facades\paypage; $pay= paypage::sendPaymentCode('all') ->sendTransaction('sale') ->sendCart(10,1000,'test') ->sendCustomerDetails('Walaa Elsaeed', 'w.elsaeed@paytabs.com', '0101111111', 'test', 'Nasr City', 'Cairo', 'EG', '1234','100.279.20.10') ->sendShippingDetails('Walaa Elsaeed', 'w.elsaeed@paytabs.com', '0101111111', 'test', 'Nasr City', 'Cairo', 'EG', '1234','100.279.20.10') ->sendURLs('return_url', 'callback_url') ->sendLanguage('en') ->create_pay_page(); return $pay;
-
如果您想将送货地址与账单地址相同,可以使用
>shipping_same_billing() and make sure to remove calling ->sendShippingDetails.
-
如果您想隐藏送货地址,可以使用
->sendHideShipping(true);
-
如果您想使用 iframe 选项而不是重定向,可以使用
->sendFramed(true);
-
如果您想传递支付方式,可以使用
::sendPaymentCode("['creditcard','fawry']")
-
如果您想传递令牌化选项,可以使用
->sendTokinse(true)
-
如果您想通过令牌进行支付,可以使用
->sendTransaction('transaction_type','recurring') ->sendToken('token returned from the first payment page created with Tokenization option','transRef returned to you in the same first payment page')
-
如果您想使用用户定义的方式进行支付,可以使用
->sendUserDefined(["udf1"=>"UDF1 Test", "udf2"=>"UDF2 Test", "udf3"=>"UDF3 Test"])
-
退款(您可以使用此功能进行全额退款或部分退款)
$refund = Paypage::refund('tran_ref','order_id','amount','refund_reason'); return $refund;
-
认证
pay= Paypage::sendPaymentCode('all') ->sendTransaction('Auth') ->sendCart(10,1000,'test') ->sendCustomerDetails('Walaa Elsaeed', 'w.elsaeed@paytabs.com', '0101111111', 'test', 'Nasr City', 'Cairo', 'EG', '1234','100.279.20.10') ->sendShippingDetails('Walaa Elsaeed', 'w.elsaeed@paytabs.com', '0101111111', 'test', 'Nasr City', 'Cairo', 'EG', '1234','100.279.20.10') ->sendURLs('return_url', 'callback_url') ->sendLanguage('en') ->create_pay_page(); return $pay;
-
捕获(tran_ref 是您需要捕获的 Auth 交易的 tran_ref。
您可以使用此功能进行全额捕获或部分捕获。)
$capture = Paypage::capture('tran_ref','order_id','amount','capture description'); return $capture;
-
取消(tran_ref 是您需要取消的 Auth 交易的 tran_ref。
您可以使用此功能进行全额取消或部分取消)
$void = Paypage::void('tran_ref','order_id','amount','void description'); return $void
-
交易详情
$transaction = Paypage::queryTransaction('tran_ref'); return $transaction;
-
如果您遇到任何错误,您将在以下位置找到它:storage/logs/paytabs.log
支付结果通知
PayTabs 支付网关提供了一种在交易处理完成后通知您的系统的方式,以便您的系统可以更新相应的购物车。
要使用此功能,请执行以下操作
1- 定义一个路由(可选)
Laravel PayTabs PT2 包附带一个默认路由用于接收 IPN 请求。路由 URI 为 /paymentIPN,如果您不喜欢这个 URI,可以忽略它并定义自己的。查看 routes/routes.php 以获取提示。
2- 实现接收通知的方法
为了接收通知,请执行以下操作之一
-
在创建支付页面时,将此路由作为 Callback URL 传递给 sendURLs 方法,该 URL 将接收带有支付结果的 HTTP Post 请求。有关回调的更多信息,请参阅:商户仪表板 > 开发者 > 交易 API。
-
第二种方式是配置来自商户仪表板的 IPN 通知。有关如何配置 IPN 请求及其不同格式的详细信息,请参阅:商户仪表板 > 开发者 > 服务类型。
3- 配置回调方法
现在,您需要使用类\方法配置插件,以便抓取支付详情并执行您的自定义逻辑(更新数据库中的购物车、通知客户等)。
-
在您的网站 config/paytabs.php 文件中,添加以下内容
'callback' => env('paytabs_ipn_callback', new namespace\your_class() ),
-
在您的类中添加新的方法,其名称必须为:updateCartByIPN
updateCartByIPN( $requestData){ $cartId= $requestData->getCartId(); $status= $requestData->getStatus(); //your logic .. updating cart in DB, notifying the customer ...etc //Hold On Reject support // if $status = "H" this is mean the transaction is hold on reject. // you can't make capture for it from your system. // you must make the capture from paytabs dashboard side. // make sure to add your ipn value to paytabs dashboard from here: "{paytabs portal}/merchant/developers/ipnconfig". }
您还可以获取交易参考号。要获取可用属性的列表,请检查:Paytabscom\Laravel__paytabs\IpnRequest 类。