taki47/otpsimplepay

simplepay for laravel

安装: 35

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 1

开放问题: 0

类型:软件包

1.2.1 2021-04-06 08:44 UTC

This package is auto-updated.

Last update: 2024-09-08 19:23:15 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
         */
    }
}