redberry / georgian-card-gateway
使用格鲁吉亚卡网关简化您的支付。
Requires
- giunashvili/xml-parser: dev-master
This package is auto-updated.
Last update: 2024-09-28 15:06:36 UTC
README
格鲁吉亚卡网关是一个易于使用的包。它可以为您减轻很多负担。
使用此包,您可以进行以下操作:
- 常规支付(每次交易都需要输入用户的信用卡信息)
- 周期性支付(基本上,您可以使用此方法将用户的信用卡信息保存到商户处,然后无需每次都询问用户信用卡信息即可进行支付。)
安装
安装相当简单
$ composer require redberry/georgian-card-gateway
设置
1. 环境变量
您必须在环境变量文件中输入商户的必要凭证。
MERCHANT_ID=---YOUR-MERCHANT-ID--- PAGE_ID=---YOUR-PAGE-ID--- ACCOUNT_ID=---YOUR-ACCOUNT-ID--- CCY=---YOUR-CURRENCY-CODE--- REFUND_API_PASS=---YOUR-REFUND-API-PASSWORD--- BACK_URL_S=https://your-website.ge/payment/succeed BACK_URL_F=https://your-website.ge/payment/failed
MERCHANT_ID
代表您的商户标识符,这将由BOG提供给您。
PAGE_ID
代表支付页面的标识符,可以根据您的喜好进行自定义和样式设置。
ACCOUNT_ID
在商户处可以有多个POS终端。每个终端都会有相应的账户,支付将指向这些账户。您可能只需要一个终端。但在本文件中,我们还将展示如何管理多个终端的支付。
CCY
表示交易应使用的货币。您最可能使用的是981,代表拉里。 查看更多
REFUND_API_PASS
表示进行交易退款时的密码。
BACK_URL_S
成功交易后将访问的URL。例如: https://your-web-site.ge/payments/success
BACK_URL_F
失败交易后将访问的URL。例如: https://your-web-site.ge/payments/success
2. 发布供应商
php artisan vendor:publish --provider="Redberry\GeorgianCardGateway\Support\ServiceProvider"
3. 绑定格鲁吉亚卡处理器
为了能够在数据库中创建交易记录、执行周期性交易或在交易成功/失败时执行某些操作,您需要创建一个格鲁吉亚卡类并将其绑定到容器中。
因此...让我们创建一个类,其路径为:"app/Library/GeorgianCard.php",并实现GeorgianCardHandler接口
<?php namespace App\Library; use Redberry\GeorgianCardGateway\Contracts\GeorgianCardHandler; use Illuminate\Http\Request; class GeorgianCard implements GeorgianCardHandler { /** * Get primary transaction id * for recurrent transactions. * * @param Request $request * @return string|null */ public function getPrimaryTransactionId( Request $request ) { // Return primary transaction id } /** * Determine if it should save card or pay * and proceed accordingly. * * @param Request $request * * @return void */ public function update( Request $request ) { // Do things... } /** * Success method will be executed if * transaction is to end successfully. * * @return mixed */ public function success() { dump( 'Success' ); } /** * Failed method will be executed if * transaction is to end with failure. * * @return mixed */ public function failure() { dump( 'Failure' ); } }
现在将其绑定到我们的应用程序服务提供商
namespace App\Providers; use App\Library\GeorgianCard; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { $this -> app -> bind( 'redberry.georgian-card.handler', GeorgianCard :: class ); }
现在您可以执行简单的常规交易
use Redberry\GeorgianCardGateway\Transaction; $transaction = new Transaction; $transaction -> setOrderId ( $orderId ) -> setAmount ( $amount ) // 100 = 1 lari -> setUserId ( $userId ) // optional -> setUserCardId( $userCardId ) // optional -> set( 'rame' , 'rume' ) -> execute();
当我们使用Transaction的新实例设置这些字段时,我们可以在执行GeorgianCard -> update()方法时看到这些字段和其他BOG信息。在这种情况下,您可以将数据库记录保存等...
进行交易退款
use Redberry\GeorgianCardGateway\Refund; $refund = new Refund; $refund -> setTrxId ( $trxId ) -> setRRN ( $RRN ) -> setAmount( $amount ) -> execute();
TrxId和RRN
TrxId和RRNs是交易ID,您将在GeorgianCard -> update方法中获得,您必须将其保存在数据库中,然后使用它进行该交易的退款。