sportakal / garantipos
0.1.4
2022-05-30 08:58 UTC
Requires
- ext-curl: *
- ext-dom: *
- ext-json: *
- ext-simplexml: *
- ext-xml: *
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- php-sage/sage: ^1.2
README
Garanti银行提供用于虚拟POS交易的PHP集成库。您可以轻松地进行3D Secure、XMLPay和退款操作。
有关测试环境和生产环境中的用户信息,请与Garanti银行联系。
安装
Composer
您可以使用Composer Composer 安装这些依赖项。
$ composer require sportakal/garantipos
为了使用这些依赖项,请使用Composer的autoload功能。
require_once('vendor/autoload.php');
用法
将虚拟POS用户信息分配给Options对象。
use Sportakal\Garantipos\Models\Options; $options = new Options(); $options->setMode($_ENV['MODE']); $options->setApiVersion($_ENV['API_VERSION']); $options->setTerminalId($_ENV['TERMINAL_ID']); $options->setTerminalProvUserId($_ENV['TERMINAL_PROV_USER_ID_PAY']); $options->setTerminalProvUserPassword($_ENV['TERMINAL_PROV_USER_PASSWORD']); $options->setTerminalUserId($_ENV['TERMINAL_USER_ID']); $options->setTerminalMerchantId($_ENV['TERMINAL_MERCHANT_ID']); $options->setStoreKey($_ENV['STORE_KEY']);
将卡片信息分配给Card对象。
$card = new Card(); $card->setNumber('5549608789641500'); $card->setExpireDate('0323'); $card->setCVV2('712');
将客户信息分配给Customer对象。
$customer = new Customer(); $customer->setIpAddress('159.146.45.34'); $customer->setEmailAddress('portakalsinan@gmail.com');
将订单信息分配给Order对象。
$order = new Order(); $order->setOrderID('sportakal_garantipos_' . time());
将地址信息分配给Address对象。
$address = new Address(); $address->setType('B'); // B for 'billing' or S for 'shipping' $address->setName('Sinan'); $address->setLastName('Portakal'); $address->setPhoneNumber('+90 532 345 67 89'); $address->setText('Kınıklı Mah.'); $address->setDistrict('Pamukkale'); $address->setCity('Denizli'); $address->setCountry('Turkey');
使用addAddress方法将地址添加到订单中。
$order->addAddress($address);
将交易信息分配给Transaction对象。
$transaction = new Transaction(); $transaction->setInstallmentCnt(""); $transaction->setAmount(1000); $transaction->setCurrencyCode('TRY'); $transaction->setCardholderPresentCode('0'); $transaction->setMotoInd('N'); $transaction->setDescription('test payment');
将这些对象收集到RequestModel对象中。
$request = new RequestModel(); $request->setOptions($options); $request->setCard($card); $request->setCustomer($customer); $request->setOrder($order); $request->setTransaction($transaction);
根据您的操作将RequestModel分配给Request对象。
无3D Secure的交易
$request = new \Sportakal\Garantipos\Requests\Pay($request);
退款操作
$request = new \Sportakal\Garantipos\Requests\Refund($request);
3D Secure支付操作
$request = new \Sportakal\Garantipos\Requests\ThreeDSecurePay($request);
操作结果
您可以通过以下方式检查操作结果。
$result = $request->getResult(); $status = $result->getStatus(); //boolean $message = $result->getStatusMessage(); //string $error_message = $result->getErrorMessage()); //string
在3D Secure操作中,还会返回mdStatusCode和mdErrorMessage值。
在3D Secure操作完成后,数据将通过您指定的successUrl或errorUrl地址发送。您可以在该地址处使用以下方法捕获这些数据并检查mdStatus值。
$result = new \Sportakal\Garantipos\Results\ThreeDSecurePayResult($options); $md_status = $result->getMdStatus(); $md_response_message = $result->getResponseMessage(); $md_error_message = $result->getErrorMessage()
操作结果还会返回Order和Transaction对象。
$order = $result->getOrder(); $transaction = $result->getTransaction();
在/samples目录中可以找到更多示例。
开发
安装依赖项
composer install
里程碑
- 将添加更多操作类型
- 取消交易
- Garanti Pay
Bin查询- TCKN查询
- 预授权交易