taki47 / otpsimplepay
simplepay for laravel
1.2.1
2021-04-06 08:44 UTC
README
此模块可以帮助您轻松地将 OTP SimplePay 支付解决方案嵌入到基于 Laravel 的网站中。
重要!!!
此模块不是官方的 OTP 模块。请自行承担风险使用!
安装
编辑项目的 composer.json 文件
"require": { ... "taki47/otpsimplepay": "^1.0.0" ... }, "repositories": [ { "type": "vcs", "url": "https://github.com/taki47/otpsimplepay" } ],
运行 composer update
composer update
使用方法
如果您想创建自定义日志通道,请这样做。如果不创建,并且 OTP_PAYMENT_LOG 设置为 true,则将 OTP_PAYMENT_LOG_CHANNEL 设置为 "daily"。
将 OTP_PAYMENT_RETURN_URL 设置为您指定的返回 URL,该 URL 在 web.php 文件中指定。
将这些设置添加到您的 .env 文件中
OTP_PAYMENT_CURRENCY="HUF" OTP_PAYMENT_LANG="HU" OTP_PAYMENT_HUF_MERCHANT="PUBLICTESTHUF" OTP_PAYMENT_HUF_SECRET_KEY="FxDa5w314kLlNseq2sKuVwaqZshZT5d6" OTP_PAYMENT_RETURN_URL="${APP_URL}/payResult" OTP_PAYMENT_TIMEOUT_IN_SEC="600" OTP_PAYMENT_LOG=true OTP_PAYMENT_LOG_CHANNEL="simplePay" OTP_PAYMENT_SANDBOX=true
就是这样!编码愉快 :-)
示例代码 - 开始支付
use Taki47\Otpsimplepay\SimplePayStart; class PublicController extends Controller { public function PayStart() { $simplePay = new SimplePayStart(); //TWO STEP AUTH $simplePay->addData("twoStep", false); // ORDER REFERENCE NUMBER // uniq oreder reference number in the merchant system $simplePay->addData('orderRef', str_replace(array('.', ':', '/'), "", @$_SERVER['SERVER_ADDR']) . @date("U", time()) . rand(1000, 9999)); // customer's registration mehod // 01: guest // 02: registered // 05: third party $simplePay->addData('threeDSReqAuthMethod', '02'); // EMAIL // customer's email $simplePay->addData('customerEmail', "taki47@gmail.com"); // METHODS // CARD or WIRE $simplePay->addData('methods', array('CARD')); //ORDER ITEMS $simplePay->addItems( array( 'ref' => "Test product 1", 'title' => "Test product 1", 'description' => 'Test product description', 'amount' => "2", 'price' => "12000", 'tax' => '0', ) ); // SHIPPING COST $simplePay->addData('shippingCost', "450"); // INVOICE DATA $simplePay->addGroupData('invoice', 'name', "Test Kft."); $simplePay->addGroupData('invoice', 'company', "Test Kft."); $simplePay->addGroupData('invoice', 'country', "Hungary"); $simplePay->addGroupData('invoice', 'state', "Budapest"); $simplePay->addGroupData('invoice', 'city', "Budapest"); $simplePay->addGroupData('invoice', 'zip', "1111"); $simplePay->addGroupData('invoice', 'address', "Teszt road 11."); // DELIVERY DATA $simplePay->addGroupData('delivery', 'name', "Test Kft."); $simplePay->addGroupData('delivery', 'company', "Test Kft."); $simplePay->addGroupData('delivery', 'country', "Hungary"); $simplePay->addGroupData('delivery', 'state', "Budapest"); $simplePay->addGroupData('delivery', 'city', "Budapest"); $simplePay->addGroupData('delivery', 'zip', "1111"); $simplePay->addGroupData('delivery', 'address', "Teszt road 11."); $simplePay->addGroupData('delivery', 'phone', "+3611111111"); //create transaction in SimplePay system $simplePay->runStart(); $returnData = $simplePay->getReturnData(); return redirect($returnData["paymentUrl"]); } }
示例代码 - 支付结果(返回)
use Taki47\Otpsimplepay\SimplePayBack; class PublicController extends Controller { public function PayBack(Request $request) { $simplePayBack = new SimplePayBack(); $result = array(); if (isset($request->r) && isset($request->s)) { if ($simplePayBack->isBackSignatureCheck($request->r, $request->s)) { $result = $simplePayBack->getRawNotification(); } } /** * DO SOMETHING WITH $result ARRAY */ } }