Интеграция платежного шлюза Payumoney с использованием REST API

Я разрабатываю веб-приложение, которое представляет собой полностью спокойный интерфейс с использованием angular и backend nodejs, express и mongodb. Я пытаюсь интегрировать платежный шлюз Payumoney со своим веб-приложением. Plz. Просмотрите этот https://www.payumoney.com/developer-doc-api.html api возвращает html-страницу, когда я нажимаю на конечную точку платежа https://test.payu.in/_payment. Я не знаю, как заставить пользователя перенаправить на страницу оплаты payumoney. Перед всем этим я получаю сообщение об ошибке Checksum Failed  Ошибка на странице HTML . Я отправляю данные в этом формате

request.post({
                url: 'https://test.payu.in/_payment',
                headers: {
                    Authorization:'4sOSsCZXIopj4XvbddLX8kF7tmlTu2UZsjHVAwPt404=' 
                       },
                form:  { 
      key: 'lfX7uR',
      txnid: 578cb861e9c38ecc185ec8e7,
      firstname: 'Rayees',
      lastname: 'Mir',
      email: '[email protected]',
      phone: '9797187225',
      productinfo: '{"_id":"57611c58763eb9c0116d6def","expiryDate":"2016-09-15T09:14:00.536Z","amount":8600,"updated":"2016-06-22T13:55:43.176Z","user":"5757c59e3d47bd50118e07c7","__v":27,"status":"active","created":"2016-06-15T09:14:00.533Z","products":[{"_id":"575a9257685404601d1da5c0","quantity":3,"salesPrice":200,"addedDate":"2016-06-15T15:29:29.525Z","listPrice":50},{"_id":"575a9286ee1ca30c27abb9eb","quantity":20,"salesPrice":400,"addedDate":"2016-06-22T13:55:43.176Z","listPrice":210}]}',
      amount: 8200,
      surl: 'https://www.google.com',
      furl: 'https://www.facebook.com',
      hash: '',
      service_provider: '',
      address1: '',
      address2: '',
      city: '',
      state: '',
      country: '',
      zipcode: '',
      udf1: '',
      udf2: '',
      udf3: '',
      udf4: '',
      udf5: '',
      udf6: '',
      udf7: '',
      udf8: '',
      udf9: '',
      udf10: '' }
            },function(result){
                console.log(result);
            });

person Rayees    schedule 18.07.2016    source источник
comment
Ваша контрольная сумма с использованием SHA512 отсутствует.   -  person stack5    schedule 08.01.2017
comment
смогли ли вы это сделать. Если да, пожалуйста, поделитесь кодом? Я пробую что-то подобное и ищу справочный код   -  person Srini    schedule 01.05.2017
comment
Привет, вы получаете результат с помощью rest API   -  person ram kumar    schedule 28.09.2017


Ответы (2)


Вам необходимо рассчитать хэш данных вашего запроса, прежде чем продолжить, согласно документации, вы должны создать хеш на стороне сервера, вот пример кода:

<?php
error_reporting(0);

$salt = "eCwWELxi"; # salt value need to be picked from your database
$amount = $_POST["amount"]; # amount need to be picked up from your database
$reverseHash = generateReverseHash();

if ($_POST["hash"] == $reverseHash) {
    # transaction is successful
    # do the required javascript task
    echo("Transaction Success & Verified");
    AndroidSuccess($_POST["amount"]);
}
else{
    # transaction is tempered
    # handle it as required
    echo("<br>");
    echo "\nInvalid transaction";
}

# For Android Success
function AndroidSuccess($input) {
    echo '<script type="text/javascript">';
    echo 'PayU.onSuccess("Amount =" +'.$_POST["amount"].')';
    echo "</script>";
}

# Function to generate reverse hash
function generateReverseHash() {
    global $salt;
    global $amount;
    if ($_POST["additional_charges"] != null) {
        $reversehash_string = $_POST["additional_charges"] . "|" . $salt . "|" . $_POST["status"]  . "||||||" . $_POST["udf5"] . "|" . $_POST["udf4"] . "|" . $_POST["udf3"] . "|" . $_POST["udf2"] . "|" . $_POST["udf1"] . "|" .
        $_POST["email"] . "|" . $_POST["firstname"] . "|" . $_POST["productinfo"] . "|" . $amount . "|" . $_POST["txnid"] . "|" . $_POST["key"] ;
    }
    else{
        $reversehash_string =  $salt . "|" . $_POST["status"]  . "||||||" . $_POST["udf5"] . "|" . $_POST["udf4"] . "|" . $_POST["udf3"] . "|" . $_POST["udf2"] . "|" . $_POST["udf1"] . "|" .
             $_POST["email"] . "|" . $_POST["firstname"] . "|" . $_POST["productinfo"] . "|" . $amount . "|" . $_POST["txnid"] . "|" . $_POST["key"] ;
    }

//  echo($reversehash_string);
    $reverseHash = strtolower(hash("sha512", $reversehash_string));
    return $reverseHash;
}
person Kiran Maniya    schedule 21.09.2018
comment
Спасибо @John Conde - person Kiran Maniya; 21.09.2018
comment
: Как ввести payumoney в angular6 / 7/8? - person Nila Vaani; 03.01.2020

ваш хэш отсутствует попробуйте сгенерировать хеш с использованием алгоритма sha512 в php, запрос jquery не разрешен, вам нужно отправить все параметры с помощью метода публикации формы

person Akshay Chandrakar    schedule 20.09.2018