付款后的 000 个虚拟主机操作

000 Webhost Actions after payment

提问人:rgustv 提问时间:7/29/2020 更新时间:7/29/2020 访问量:40

问:

我正在尝试使用PayPal付款。当我在本地机器上工作并运行代码时,付款会通过,然后它会重定向到我的“pago.php”文件。这个有SQL查询插入到我的订单表中,并从购物车中删除商品。在 localhost 上工作时,付款会通过并且表会正确更新。

现在我已经将我的项目上传到托管网站(000 Webhost),并且由于某种原因付款通过,我被重定向到我的网站并确认付款,但是由于某种原因,SQL查询不会执行。

我尝试将其简化为仅删除的简单查询,但甚至没有这样做。这是重定向后的PHP代码:

<?php


include '../includes/db.php';
include '../acciones/sesion.php';





$cookie = $_COOKIE['mTotal'];
$uid = $row['id'];
$username = $row['usuario']; 



$transaccion = $_GET['tx'];
$resultado = $_GET['st'];
$monto = $_GET['amt'];
$clientId = $_GET['cm'];

if($cookie == $monto && $resultado = 'Completed' && $clientId = $uid){
    $sql = $con->query("SELECT * FROM carro where idCliente = '$uid'");
    if(mysqli_num_rows($sql) > 0){
        while($r = mysqli_fetch_array($sql)){
            $productId[] = $r['idProducto'];
            $cant[] = $r['cantidad'];
            $nombre = $r['nombreProducto'];
            $precio[] = $r['precio'];

            $prodArray = array($productId);
        }

        $q = $con->query("SELECT * FROM direccion WHERE idCliente = '$uid' and main=1");
        if(mysqli_num_rows($q) > 0){
            while($r2 = mysqli_fetch_array($q)){
                $idDir = $r2['idDir'];
            }
        }

        for($i=0; $i < count($productId); $i++){
            $con->query("INSERT INTO `comprafinalizada` (`compraId`, `clienteId`, `productoId`,  `cantidad`, `monto`, `transaccionId`, `FechaCompra`, `idDireccion`) VALUES (NULL, '$uid', '".$productId[$i]."', '".$cant[$i]."', '".$precio[$i]."', '$transaccion', current_timestamp(), '$idDir')");      
        }

        $con->query("DELETE FROM carro WHERE idCliente = '$uid'");

    }


}

    

?>

我尝试更改撇号,删除 cookie 确认并仅运行 DELETE 查询。不知道为什么这段代码没有运行,我不确定这是否与我使用 PayPal 沙盒有关。

我希望我能在这里得到一些帮助。谢谢

php mysqli phpmyadmin PayPal 沙盒

评论

1赞 Ma Kobi 7/29/2020
如果您需要帮助,请使用正确的格式。
0赞 Mike Doe 7/29/2020
您需要的是 IDE,而不是记事本。

答:

0赞 Ma Kobi 7/29/2020 #1

请注意,在此行中:

if($cookie == $monto && $resultado = 'Completed' && $clientId = $uid){

您将“已完成”分配给变量$resultado而不是进行比较。如果要检查是否有值,请使用双等号,例如$resultado'Completed'$resultado == 'Completed'

与 should be 相同。$clientId = $uid$clientId == $uid

评论

0赞 rgustv 7/29/2020
谢谢伙计,你救了我的命,这是问题的一部分,我也开始注意到$cookie和$uid没有被抓获。感谢您的帮助