04
Окт
2016

Ajax,Privat24-api: ошибка invalid signature

Отсылаю ajax запрос на https://api.privatbank.ua/p24api/balance(). Данное api принимает xml документ. В ответе получаю invalid signature.

Выкладка из Privatbank docs:

Сигнатура запроса рассчитывется следующим образом (PHP):$sign=sha1(md5($data.$password)); $data - содержимое тега данного запроса; $password - личный пароль мерчанта

Ссылка на документацию:https://api.privatbank.ua/balance.html

Как именно нужно отформатировать содержимое тега data?

Вычисление сигнатуры:

$pass="***************";
    $data="<oper>cmt</oper><wait>0</wait><test>0</test><payment><prop name=\"cardnum\" value=\"*************\"></prop><prop name=\"country\" value=\"UA\"></prop></payment>";
    $sign =sha1(md5($data.$pass));

и сам код Ajax запроса:

var xml = '' +
    '<\?xml version="1.0" encoding="UTF-8"\?>'+
    '<request version="1.0">'+
      '<merchant>'+
        '<id>mercaht-id</id>'+
        '<signature>'+'<?$sign?>'+'</signature>'+
     '</merchant>'+
      '<data>'+
        '<oper>cmt</oper>'+
        '<wait>0</wait>'+
        '<test>0</test>'+
        '<payment id="">'+
         ' <prop name="cardnum" value="cart-number" />'+
         ' <prop name="country" value="UA" />'+
        '</payment>'+
      '</data>'+
    '</request>';
        function Privat24Info(){
            var request = new XMLHttpRequest();
            request.open("POST", "https://api.privatbank.ua/p24api/balance", false);
            request.send(xml);
            alert(request.responseText);
        }

Источник: https://ru.stackoverflow.com/questions/573508/ajax-privat24-api-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-invalid-signature

Share

Тебе может это понравится...