Revo + PHP + LiqPay = грабли



  • Глюк пришёл откуда не ждали: суть - LiqPay хочет, что бы сумму передавали не строкой, а числом! но как только я пишу в коде

    $amount = settype($pt, "float"); // или (int) $pt
    

    он вместо преобразования - возвращает нуль!!!

    версия PHP-5.4

    полный код:

    // [[liqpay? &pt=`[[+shk.price]]` &oi=`[[+shk.id]]`]]
    
    $public_key = 'i1687733****';
    $private_key = 'dEABQRZsXvHsTjA0Cf6U0ss9WaNBHNdIP****';
    
    $amount = settype($pt, "float");
    $order_id = $oi;
    
    $description = 'Оплата в магазине www.austpharma.com.ua';
    $data = base64_encode(
              json_encode(
                array('version'     => 3,
                      'public_key'  => $public_key,
                      'private_key' => $private_key,
                      'amount'      => $amount,
                      'currency'    => 'UAH',
                      'description' => $description,
                      'order_id'    => $order_id,
                      'sandbox'     => 0 )
              )
            );
    $sig = base64_encode( sha1( $private_key . $data . $private_key, 1) );
    echo '
       <form method="POST" action="https://www.liqpay.com/api/checkout"
       accept-charset="utf-8">
         <input type="hidden" name="data" value="'.$data.'" />
         <input type="hidden" name="signature" value="'.$sig.'" />
         <input type="image" src="//static.liqpay.com/buttons/p1ru.radius.png" />
       </form>';
    

  • Администраторы

    он вместо преобразования - возвращает нуль!!!

    Кто "он"? LiqPay или settype?

    Я думаю нужна строка, но правильно отформатированная

    $amount = number_format($pt, 2, '.');
    


Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.