【问题标题】:Payu payement error "Some error occurred, Try again!"Payu 支付错误“发生了一些错误,再试一次!”
【发布时间】:2017-12-05 07:27:08
【问题描述】:

我已通过官方文档将 payu 集成到我的 Android 应用程序中 https://www.payumoney.com/dev-guide/mobilecheckout/android.html#prereq.

我面临的问题是我的代码与测试凭据完美配合,当我使用我想要集成到应用程序中的真实帐户凭据时失败。

   public void makePayment(View view) {
    String phone = "8882434664";
    String productName = "product_name";
    String firstName = "piyush";
    String txnId = "0nf7" + System.currentTimeMillis();
    String email = "piyush.jain@payu.in";
    String sUrl = "https://test.payumoney.com/mobileapp/payumoney/success.php";
    String fUrl = "https://test.payumoney.com/mobileapp/payumoney/failure.php";
    String udf1 = "";
    String udf2 = "";
    String udf3 = "";
    String udf4 = "";
    String udf5 = "";
    boolean isDebug = true;

    String key = "2fcU3pmI";
    String merchantId = "4947182";// These credentials are from https://test.payumoney.com/ 
    String salt = "BxA24L2F7Z";   //  THIS WORKS

  /*  String key = "yX8OvWy1";     //These credentials are from https://www.payumoney.com/ 
    String merchantId = "5826688"; //THIS DOESN'T WORK
    String salt = "0vciMJBbaa";    //ERROR: "some error occurred, Try again"
  */

    PayUmoneySdkInitilizer.PaymentParam.Builder builder = new PayUmoneySdkInitilizer.PaymentParam.Builder();


    builder.setAmount(getAmount())
            .setTnxId(txnId)
            .setPhone(phone)
            .setProductName(productName)
            .setFirstName(firstName)
            .setEmail(email)
            .setsUrl(sUrl)
            .setfUrl(fUrl)
            .setUdf1(udf1)
            .setUdf2(udf2)
            .setUdf3(udf3)
            .setUdf4(udf4)
            .setUdf5(udf5)
            .setIsDebug(isDebug) //Also can someone clarify if this should be true/false for live mode
            .setKey(key)
            .setMerchantId(merchantId);

    PayUmoneySdkInitilizer.PaymentParam paymentParam = builder.build();


    String hash = hashCal(key + "|" + txnId + "|" + getAmount() + "|" + productName + "|"
            + firstName + "|" + email + "|" + udf1 + "|" + udf2 + "|" + udf3 + "|" + udf4 + "|" + udf5 + "|" + salt);
    Log.d("app_activity123", hash);
    paymentParam.setMerchantHash(hash);

    PayUmoneySdkInitilizer.startPaymentActivityForResult(MyActivity.this, paymentParam);

}

额外信息:测试凭据最初无法正常工作。我不得不联系 payu 支持团队以激活帐户,之后代码工作正常。我的雇主说他已经激活了真实账户,所以我不知道这里有什么问题。

这里没有像我这样的其他问题,最接近的问题是这里PayuMoney Integration in Android : Some error occured! Try again,它没有得到答复。

【问题讨论】:

    标签: android payment-gateway payumoney


    【解决方案1】:

    setIsDebug(boolean) 在此方法中需要传递 false 作为参数才能使用实时支付,在实时模式下测试时需要传递 true。 我已将其设置为 false 并使用 Real Merchant id、salt 和 key 并且它有效,没有错误。 希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      调试到 PayUmoneyActivity ErrorResponse 包含实际错误。 可能是哈希不匹配或键错误。

      @override
      public void onFailureResponse(ErrorResponse response, String tag) {
      mProgressDialog.dismiss();
      Toast.makeText(context, "Some error occured", 
      Toast.LENGTH_SHORT).show();
      finish();
      }
      

      PayUmoneyActivity 中的此方法不会显示来自错误响应的错误。只是一般错误。调试起来很麻烦。

      【讨论】:

        【解决方案3】:

        我认为你的问题出在这条线上

        'PayUmoneySdkInitilizer.startPaymentActivityForResult(MyActivity.this, paymentParam);'.
        

        官方文档说你必须通过使用开始交易

        'PayUmoneyFlowManager.startPayUMoneyFlow(paymentParam,this, R.style.AppTheme_default, false);'
        

        【讨论】:

          猜你喜欢
          • 2016-12-06
          • 1970-01-01
          • 1970-01-01
          • 2017-02-05
          • 1970-01-01
          • 2018-02-25
          • 1970-01-01
          • 1970-01-01
          • 2021-09-10
          相关资源
          最近更新 更多