首页 文章

使用REST API进行Payumoney支付网关集成

提问于
浏览
0

我正在使用角度和后端nodejs,express和mongodb开发完全安静的前端的web应用程序 . 我正在尝试将payumoney支付网关与我的网络应用程序集成 . Plz当我点击付款Endpoint https://test.payu.in/_payment时,通过这个https://www.payumoney.com/developer-doc-api.html api返回html页面 . 我不知道如何让用户重定向到payumoney支付页面 . 在所有这一切之前我收到错误Checksum失败
Error Returned in Html Page
. 我以这种格式发送数据

request.post({
                url: 'https://test.payu.in/_payment',
                headers: {
                    Authorization:'4sOSsCZXIopj4XvbddLX8kF7tmlTu2UZsjHVAwPt404=' 
                       },
                form:  { 
      key: 'lfX7uR',
      txnid: 578cb861e9c38ecc185ec8e7,
      firstname: 'Rayees',
      lastname: 'Mir',
      email: 'rayees@mir.com',
      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);
            });

2 回答

  • 1

    在继续进行之前,您需要计算请求数据的哈希值,根据您应该在服务器端创建哈希的文档,下面是示例代码:

    <?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;
    }
    
  • -1

    您的哈希丢失尝试在php中使用sha512算法生成哈希,不允许使用jquery请求您必须使用表单post方法发送所有参数

相关问题