Как получить статус транзакции платежа payumoney

Я интегрировал PayUMoney с моим приложением для Android, транзакция работает нормально, но я не получаю никаких ответных данных, мне нужно выполнить некоторую операцию в зависимости от статуса платежной транзакции (в случае успеха я должен выполнить некоторую операцию, а в случае неудачи я необходимо выполнить какую-то другую операцию).

Вот мой код

private void callPayUGateway(String toBePaid, String firstName, String mobileNo, final String emailId) {

        PayUmoneyConfig payUmoneyConfig = PayUmoneyConfig.getInstance();
        payUmoneyConfig.setDoneButtonText("Continue");
        payUmoneyConfig.setPayUmoneyActivityTitle("PayUMoney");

        String txnId = System.currentTimeMillis() + "";
        String productName = "product_name";
        String salt = "nrn0cqVgkH";
        String marchantId = "5000051";
        String marchantKey = "mJ0vrJ0Z";

        PayUmoneySdkInitializer.PaymentParam.Builder builder = new PayUmoneySdkInitializer.PaymentParam.Builder();
        builder.setAmount(Double.parseDouble(toBePaid))
                .setTxnId(txnId)
                .setPhone(mobileNo)
                .setProductName(productName)
                .setFirstName(firstName)
                .setEmail(emailId)
                .setsUrl("https://www.payumoney.com/mobileapp/payumoney/success.php")
                .setfUrl("https://www.payumoney.com/mobileapp/payumoney/failure.php")
                .setUdf1("")
                .setUdf2("")
                .setUdf3("")
                .setUdf4("")
                .setUdf5("")
                .setUdf6("")
                .setUdf7("")
                .setUdf8("")
                .setUdf9("")
                .setUdf10("")
                .setIsDebug(false)
                .setKey(marchantKey)
                .setMerchantId(marchantId);
        try {
            mPaymentParams = builder.build();

            HashMap<String, String> params = mPaymentParams.getParams();
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append(params.get(PayUmoneyConstants.KEY) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.TXNID) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.AMOUNT) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.PRODUCT_INFO) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.FIRSTNAME) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.EMAIL) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.UDF1) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.UDF2) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.UDF3) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.UDF4) + "|");
            stringBuilder.append(params.get(PayUmoneyConstants.UDF5) + "||||||");
            //salt
            stringBuilder.append(salt);

            final String hash = hashCal(stringBuilder.toString());
            if (!hash.isEmpty()) {
                mPaymentParams.setMerchantHash(hash);
                if (AppConstants.selectedTheme != -1) {
                    PayUmoneyFlowManager.startPayUMoneyFlow(mPaymentParams, CheckoutActivity.this, AppConstants.selectedTheme, appConstants.isOverrideResultScreen());
                } else {
                    PayUmoneyFlowManager.startPayUMoneyFlow(mPaymentParams, CheckoutActivity.this, R.style.AppTheme_default, appConstants.isOverrideResultScreen());
                }
            }
        } catch (Exception e) {
            Toast.makeText(CheckoutActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }

Пожалуйста помоги мне с этим.


person Shamim Ahmad    schedule 17.09.2017    source источник


Ответы (2)


Это редкое явление, когда ответ по транзакции от банка прерывается из-за сбоя соединения до того, как он достигает сервера PayUmoney. Статус обновляется в конце дня в нерабочее время банка. В тех случаях, когда статус не обновляется, отправьте электронное письмо по адресу[email protected] с информацией о платеже, такой как сумма, идентификатор платежа (идентификатор транзакции), дата и приблизительное время транзакции и т. д.

person Brijesh Tanwar    schedule 22.03.2018

Вам нужно запросить все параметры. Вот код, как запрашивать параметры в .NET с помощью С#. Вы можете изменить код в зависимости от платформы.

protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("<h2>BOLT Payment Response</h2>");
            Response.Write("Key: "+Request.Form["key"]+"<br />");
            Response.Write("Salt: " + Request.Form["salt"] + "<br />");
            Response.Write("Txnid: " + Request.Form["txnid"] + "<br />");
            Response.Write("Amount: " + Request.Form["amount"] + "<br />");
            Response.Write("Product Info: " + Request.Form["productinfo"] + "<br />");
            Response.Write("First Name: " + Request.Form["firstname"] + "<br />");
            Response.Write("Email: " + Request.Form["email"] + "<br />");
            Response.Write("Myhpayid: " + Request.Form["mihpayid"] + "<br />");
            Response.Write("Status: " + Request.Form["status"] + "<br />");
            Response.Write("UDF5: " + Request.Form["udf5"] + "<br />");
            Response.Write("Hash: " + Request.Form["hash"] + "<br />");

        }
person RUSHABH SHAH    schedule 24.03.2020