payU支付网关android集成中缺少哈希参数

时间:2015-09-03 12:15:49

标签: android hash payment-gateway salt payu

我需要在我的Android应用中集成payU支付网关。但是当应用程序试图获取哈希键时,它会给出错误说

缺少哈希参数

在演示应用程序中,有两个选项可以生成哈希

EnableSsl = true

在演示应用程序中,有一条说明应该完成哈希密钥生成 在服务器端

所以我将salt传递为null

但现在问题是我必须使用哪个服务器URL来生成哈希? 演示应用正在使用此网址 https://payu.herokuapp.com/get_hash

3 个答案:

答案 0 :(得分:0)

PayU资金不提供任何类型的API,因此,人们使用webview代替。

答案 1 :(得分:0)

您必须使用自己的服务器URL来生成哈希键。 在Android应用程序中,您必须设置3个必需的哈希键,否则您将收到错误"缺少必需的哈希键"。

确保已将此3个键设置为payuHashes对象。

  1. payuHashes.setPaymentHash(response.getString(" payment_hash&#34));
  2. payuHashes.setVasForMobileSdkHash(response.getString(" vas_for_mobile_sdk_hash&#34));
  3. payuHashes.setPaymentRelatedDetailsForMobileSdkHash(response.getString(" payment_related_details_for_mobile_sdk_hash&#34));
  4. 以下三个哈希值对付款流程是强制性的,需要在商家服务器上生成: 1.支付哈希是需要从商家服务器端生成的强制哈希之一。 以下是生成payment_hash的公式 -                                              SHA512(键| txnid |量源|产品|姓名|电子邮件| udf1 | udf2 | udf3 | udf4 | |||||| udf5 SALT)

    1. vas_for_mobile_sdk_hash是需要从商家服务器端生成的强制性哈希之一。 以下是生成vas_for_mobile_sdk_hash -
    2. 的公式

      SHA512(键|命令| VAR1 |盐)
      var1将是"默认"

      1. payment_related_details_for_mobile_sdk_hash是需要从商家服务器端生成的强制性哈希之一。 以下是生成payment_related_details_for_mobile_sdk_hash -
      2. 的公式

        SHA512(键|命令| VAR1 |盐) 这里,var1将是用户凭据。如果您没有使用user_credentials,请使用"默认"。

        从这里参考示例sdk: https://github.com/payu-intrepos/Android-SDK-Sample-App/releases/

        对于服务器端代码,请参阅: https://github.com/payu-intrepos/Documentations/wiki/4.-Server-Side

答案 2 :(得分:0)

我希望它对其他人有用我发现了一个用于在下面链接中生成哈希的PHP脚本

https://docs.google.com/document/d/1wby1TStudKuOtIRmUIc3ZqDVOg20mks8q5mT40i60qw/edit

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,minimum-scale=1,maximum-scale=1"/> 
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no" />
<style>
  button { font-size:2em; }
</style>
<script>
  var g_context, g_buffer;
  function play() {
    if (g_buffer) {
      var source = g_context.createBufferSource();
      source.buffer = g_buffer;
      source.connect(g_context.destination);
      source.start(0);
    }
  }

  function ready(){
    g_context = new webkitAudioContext();

    var req = new XMLHttpRequest();
    req.open("GET", "<*** insert your sound file path here ***>", true);
    req.responseType = "arraybuffer";
    req.onload = function(){
        g_context.decodeAudioData(req.response,function(buffer){
            g_buffer = buffer;
        }, function(e){});
    };
    req.onerror = function(e){
        console.log("fail to load", e);
    };
    try{req.send()}
    catch(e){}
  }
</script>

</head>  
<body onload="ready()">
  <button onclick="play()">play</button>
</body>
</html>

复制php代码并编辑密钥和盐。