turown / laravel-paytr
Laravel的PayTR集成。
Requires
- php: ^8.1.0
- illuminate/console: ^10.0
- illuminate/validation: ^10.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2024-09-25 18:59:41 UTC
README
描述
Laravel的PayTR集成。
此包处于开发中,第一个版本仅支持iFame支付屏幕。
感谢您的贡献。
安装
composer require turown/laravel-paytr
发布配置和资产
php artisan vendor:publish --tag="paytr"
用法
要运行此项目,您需要在.env文件中添加以下环境变量
PAYTR_MERCANT_ID
PAYTR_MERCANT_KEY
PAYTR_MERCANT_SALT
PAYTR_API_URL
PAYTR_OK_URL
PAYTR_FAIL_URL
配置
您可以在config文件中更改或获取必要的设置。此文件非常重要
use PayTR\Config;
您可以通过它轻松访问,您可以根据示例执行操作。
以下是需要设置的配置示例,用于简单的API触发。
$config = new Config(); $config->setMerchantId(00000) ->setMerchantKey("XXXXX") ->setMerchantSalt("XXXX") ->setApiType(2) // iFrame Type ->setApiUrl(ENV('PAYTR_API_URL') . 'odeme/api/get-token');
接下来,我们定义生成HASH数据的所需数组变量。
$hash_data = [ "merchant_id" => $config->getMerchantId(), "user_ip" => request()->ip(), "merchant_oid" => 1002945, //must be unique "email" => "ali.riza.oztetik@gmail.com", "payment_amount" => 999, //9.99 TL|EUR|USD vs. for 999; "user_basket" => json_encode([ ["Test Product", "9.99", 1] //(Product Name - Unit Price - Quantity) ]), "no_installment" => $config->getNoInstallment(), "max_installment" => $config->getMaxInstallment(), "currency" => $config->getCurrency(), "test_mode" => $config->getTestMode() ];
然后我们设置POST数据数组并触发必要的操作
$post_data = [ 'user_name' => "Ali Rıza Öztetik", 'user_address' => "test", 'user_phone' => "901111111111", //Need [+][country code][area code][phone number] 'paytr_token' => $paytr->setHashStr($hash_data)->getToken()->token, 'debug_on' => $config->getDebugOn(), 'merchant_ok_url' => $config->getMerchantOkUrl(), 'merchant_fail_url' => $config->getMerchantFailUrl(), 'timeout_limit' => $config->getTimeoutLimit() ]; $post_data = array_merge($post_data, $hash_data); //Absolutely 2 array data must be combined.
然后您可以激活PayTR类,并通过调用方法进行操作。
use PayTR\Paytr;
$trigger = $paytr->call($post_data, $config->getApiUrl());
使用iFrame将在交易后返回您成功和令牌。此外,我还为您提供了必要的javascript代码。
{ +"status": "success" +"token": "090aab565210f757db0d9948ed4f58c8723a9f1de3beac1f651a90cdf9b2f678-324703229" +"javascript_file_url": "https://www.paytr.com/js/iframeResizer.min.js" +"iframe_code": "<iframe src="https://www.paytr.com/odeme/guvenli/090aab565210f757db0d9948ed4f58c8723a9f1de3beac1f651a90cdf9b2f678-324703229" id="paytriframe" frameborder="0" scrolling="no" style="width: 100%;"></iframe>" +"script": "<script>iFrameResize({},'#paytriframe');</script>" }
通过在返回中包含"javascript_file_url",您可以在任何地方打印"iframe_code"代码。别忘了也包含"script"变量。
实际上就是这么简单!
然后在您的屏幕上会出现一个支付屏幕。在此屏幕上完成交易后,API将返回给您,所有成功或失败的返回都在设置中指定;
'merchant_ok_url' => $config->getMerchantOkUrl()
'merchant_fail_url' => $config->getMerchantFailUrl()
这就是为什么这些设置非常重要。