php支付网关安全问题

时间:2018-05-31 06:24:36

标签: laravel payment-gateway

我有一个测试支付网关,我在localhost环境中使用它。

我写了一个函数,检查主机名是否为localhost,然后其他测试主机继续重定向到该网关。

现在的问题是来自生产环境的人使用该测试网关购买产品。

我的银行控制器:

  function request($bankName, $price,$user = null)
{
    switch (strtoupper($bankName)) {
        case Bank::MELLAT:
            return $this->redirectTo(new Mellat(), $price,$user);



       //ZARINPAL is my test gateway
        case Bank::ZARINPAL:
            if (is_testing_host())
                return $this->redirectTo(new Zarinpal(), $price,$user);



        case Bank::SAMAN:
            return $this->redirectTo(new Saman(), $price,$user);

        case Bank::SAMANKISH:
            return $this->redirectTo(new SamanKish(), $price,$user);
        // other banks here...
    }

    throw new \Exception('Gateway not found');
}

is_testing_host功能:

 function is_testing_host()
{
 return in_array(@$_SERVER['REMOTE_ADDR'], ['localhost', '127.0.0.1','::1'])
 || request()->getHost() == 'site.test';
}

Html选择网关:

<select class="form-control" style="padding:5px;" name="bank" id="bank">
     @if(is_testing_host())
          <option value="zarinpal" selected="selected">Zarinpal</option>
     @else
          <option value="saman">درگاه پرداخت سامان کیش</option>
     @endif
</select>

我的测试:

我将选择值从inspect elemnt更改为zarinpal(测试网关)然后我点击提交btn。 它发送了zarinpal但重定向到另一个网关。(似乎没有错误)

有人可以帮我找到他是如何使用该网关的吗?!

0 个答案:

没有答案