0

私はAndroidアプリケーションにpayUMoneyを統合しています。私はpaymentIdとなり、両方の環境、すなわち& Productionでの支払いが成功した後にしか得られません。私はの取引の詳細もpayUMoneyから必要とします。私もpayUMoney技術チームに連絡しましたが、何の反応も得られませんでした。PayUMoney - Android:お支払い後にpayUMoney SDKから** paymentId **を取得する

私はLogcatで印刷したpayumoneyレスポンスの画像を参照してください。

私が試したことは以下のようです。

public void makePayment() { 
    String phone = "8882434664"; 
    String productName = "product_name"; 
    String firstName = "piyush"; 
    String txnId = "0nf7" + System.currentTimeMillis(); 
    String email = "[email protected]"; 
    String sUrl = AppConstant.BASE_URL + "/mob-payment/success"; 
    String fUrl = AppConstant.BASE_URL + "/mob-payment/failure"; 
    String udf1 = ""; 
    String udf2 = ""; 
    String udf3 = ""; 
    String udf4 = ""; 
    String udf5 = ""; 
    boolean isDebug = true; 
    String key = "dRQuiA"; 
    String merchantId = "4928174"; 

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

    builder.setAmount(1.0) 
      .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) 
      .setKey(key) 
      .setMerchantId(merchantId); 

    PayUmoneySdkInitilizer.PaymentParam paymentParam = builder.build(); 
    calculateServerSideHashAndInitiatePayment(paymentParam); 
} 

private void calculateServerSideHashAndInitiatePayment(final PayUmoneySdkInitilizer.PaymentParam paymentParam) { 

    String url = "https://test.payumoney.com/payment/op/calculateHashForTest"; 

    StringRequest jsonObjectRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       JSONObject jsonObject = new JSONObject(response); 

       if (jsonObject.has(SdkConstants.STATUS)) { 
        String status = jsonObject.optString(SdkConstants.STATUS); 
        if (status != null || status.equals("1")) { 
         String hash = jsonObject.getString(SdkConstants.RESULT); 
         paymentParam.setMerchantHash(hash); 
         PayUmoneySdkInitilizer.startPaymentActivityForResult(ActivityConfirmOrder.this, paymentParam); 
        } else { 
         Toast.makeText(ActivityConfirmOrder.this, 
           jsonObject.getString(SdkConstants.RESULT), 
           Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 

    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      if (error instanceof NoConnectionError) { 
       Toast.makeText(ActivityConfirmOrder.this, 
         ActivityConfirmOrder.this.getString(R.string.connect_to_internet), 
         Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(ActivityConfirmOrder.this, 
         error.getMessage(), 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }) { 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      return paymentParam.getParams(); 
     } 
    }; 
    Volley.newRequestQueue(this).add(jsonObjectRequest); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PayUmoneySdkInitilizer.PAYU_SDK_PAYMENT_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 

      StringBuilder str = new StringBuilder(); 
      Bundle bundle = data.getExtras(); 
      if (bundle != null) { 
       Set<String> keys = bundle.keySet(); 
       Iterator<String> it = keys.iterator(); 
       while (it.hasNext()) { 
        String key = it.next(); 
        str.append(key); 
        str.append(":"); 
        str.append(bundle.get(key)); 
        str.append("\n\r"); 
       } 
       Log.e("res: ", str.toString()); 
      } 

     } else if (resultCode == RESULT_CANCELED) { 
     } else if (resultCode == PayUmoneySdkInitilizer.RESULT_FAILED) { 
      if (data != null) { 
       if (data.getStringExtra(SdkConstants.RESULT).equals("cancel")) { 
       } else { 
       } 
      } 
     } else if (resultCode == PayUmoneySdkInitilizer.RESULT_BACK) { 
     } 
    } 
} 

Logcat Snapshot of PayUMoney Response

PayUMoney SDK-バージョン:versionName "6.1.0"

答えて

0

私も同じ問題に直面していたが、研究の少し後に、私は、私たちに必要なことを発見しました異なる請求書apiを使用して個別に請求書を生成する。あなたが請求書APIのドキュメントの怒鳴るURLを見つけることができます...

https://www.payumoney.com/dev-guide/products/invoicing.html

@MaulikDodiaは実際にあなたがしてpayumoneyがあなたに直接、このようにすべてのデータを送信します、自分で成功URLを作成する必要があります成功URL ...

Array 
(
    [mihpayid] => 40399371551******* 
    [mode] => DC 
    [status] => success 
    [unmappedstatus] => captured 
    [key] => d****A 
    [txnid] => INV0****0531 
    [amount] => 1000.0 
    [addedon] => 2017-05-31 13:16:12 
    [productinfo] => **** 
    [firstname] => **** 
    [lastname] => 
    [address1] => 
    [address2] => 
    [city] => null 
    [state] => 
    [country] => null 
    [zipcode] =>  
    [email] => ***@test.xxx 
    [phone] => 
    [udf1] => 
    [udf2] => 
    [udf3] => 
    [udf4] => 
    [udf5] => 
    [udf6] => 
    [udf7] => 
    [udf8] => 
    [udf9] => 
    [udf10] => 
    [hash] => *************** 
    [field1] => 715140****61 
    [field2] => 99***9 
    [field3] => 8523310*****511 
    [field4] => -1 
    [field5] => 
    [field6] => 
    [field7] => 
    [field8] => 
    [field9] => SUCCESS 
    [PG_TYPE] => HDFCPG 
    [encryptedPaymentId] => DB****EB8****02A****9FE4C****CB3 
    [bank_ref_num] => 8****016137**** 
    [bankcode] => MAST 
    [error] => E000 
    [error_Message] => No Error 
    [name_on_card] => payu 
    [cardnum] => 512345XXXXXXXX46 
    [cardhash] => This field is no longer supported in postback params. 
    [amount_split] => {"PAYU":"1000.0"} 
    [payuMoneyId] => 1******0 
    [discount] => 0.00 
    [net_amount_debit] => 1000 
) 

次に、サーバー側の請求書を使用して請求書を作成するか、必要な処理を行うことができます。

出典:すべてのコードを完了しており、動作しています。希望すると...ありがとう

+0

これは、** paymentId **を使用して** INVOICE API **を呼び出す必要があることを意味します。これからは、顧客カード名、取引IDなどのその他の詳細をすべて取得します。 @Sayan Mukherjee –

+0

はい、詳細のような請求書を生成するには、このAPIを使用する必要があります、このansを有用とマークすることを忘れないでください –

+0

私はあなたが解決策が働いているかどうかを確認する必要があります、あなたの答えをここで受け入れるよりもずっと前です。情報をありがとう@ SayanMukherjee –