Как исправить проблему с контрольной суммой платежа QuickPay - PullRequest
0 голосов
/ 08 октября 2019

Я интегрировал платежный шлюз QuickPay на свой веб-сайт, но я получаю ошибку контрольной суммы. Я использовал их функцию контрольной суммы, но все еще получаю ту же ошибку, и ключ API не совпадает с Agreement_id в их системе QuickPay. У меня есть 4 различных ключа API и соглашение_, я могу 'Я не понимаю, какой из них использовать. Пожалуйста, помогите исправить эти проблемы. Я прикрепил сообщение об ошибке и код вниз.

Форма моего платежного шлюза с функцией контрольной суммы

 function sign($params, $api_key) {
        $flattened_params = flatten_params($params);
        ksort($flattened_params);
        $base = implode(" ", $flattened_params);

        return hash_hmac("sha256", $base, $api_key);
    }

    function flatten_params($obj, $result = array(), $path = array()) {
        if (is_array($obj)) {
            foreach ($obj as $k => $v) {
                $result = array_merge($result, flatten_params($v, $result, array_merge($path, array($k))));
            }
        } else {
            $result[implode("", array_map(function($p) { return "[{$p}]"; }, $path))] = $obj;
        }

        return $result;
    }

    $params = array(
        "version"      => "v10",
        "merchant_id"  => 25652,
        "agreement_id" => 35653,
        "order_id"     => "0001",
        "amount"       => 1000,
        "currency"     => "DKK",
        "continueurl" => "http://testing.com/sucess.php",
        "cancelurl"   => "http://testing.com/checkout.php",
        "callbackurl" => "http://testing.com/checkout.php",
    );

    //$params["checksum"] = sign($params, "549586e233dbf0116ec9570b948867281fae9a852c909f05d8b4e35b808fc9ad");
    $checksum = sign($params, "549586e233dbf0116ec9570b948867281fae9a852c909f05d8b4e35b808fc9ad");

В этой функции я использовал этот платежный шлюззарегистрированный URL

это форма, которую я использовал

<form method="POST" action="https://payment.quickpay.net">
        <input type="hidden" name="version" value="v10">
        <input type="hidden" name="merchant_id" value="25652">
        <input type="hidden" name="agreement_id" value="35653">
        <input type="text" name="order_id" value="0001">
        <input type="text" name="amount" value="1000">
        <input type="hidden" name="currency" value="DKK">
        <input type="hidden" name="continueurl" value="http://testing.com/sucess.php">
        <input type="hidden" name="cancelurl" value="http://testing.com/checkout.php">
        <input type="hidden" name="callbackurl" value="http://testing.com/checkout.php">
        <input type="text" name="checksum" value="<?php echo $checksum; ?>">
        <input type="submit" value="Continue to payment...">
    </form>

Я прикрепил изображение ключа API, которое я использовал

enter image description here

И это сообщение об ошибке я получаю

enter image description here

...