2017-07-01 142 views
0

我已通過官方文檔在 https://www.payumoney.com/dev-guide/mobilecheckout/android.html#prereq中將payu集成到我的Android應用程序中。Payu payement錯誤「發生了一些錯誤,請再試一次!」

我面臨的問題是,我的代碼完全符合測試憑證,並且當我使用我想要在應用程序中集成的真實帳戶的憑據時失敗。

public void makePayment(View view) { 
    String phone = "8882434664"; 
    String productName = "product_name"; 
    String firstName = "piyush"; 
    String txnId = "0nf7" + System.currentTimeMillis(); 
    String email = "[email protected]"; 
    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,它是沒有答案。

回答

0

setIsDebug(boolean)您需要在此方法中傳遞false作爲參數以使用實時付款,並且在實時模式下進行測試時爲true。 我將它設置爲false,並使用Real Merchant ID,salt和key,它工作,沒有錯誤。 希望這可以幫助別人。

0

我覺得你的問題是在該行

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

,你必須使用

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

調試到PayUmoneyActivity 錯誤響應啓動交易的正式文件狀態包含實際的錯誤。 它可能是散列不匹配或錯誤的鍵。

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

PayUmoneyActivity中的此方法不會顯示錯誤響應中的錯誤。只是一般的錯誤。這對調試非常有問題。

相關問題