0

I developing app with ccavenue payment gateway Integration. I searched in google, I download code. but it works fine in eclipse, then comes in studio it crashes. I tried. but I didn't get output. please any one help me.

public class WebViewActivity extends Activity {
 private ProgressDialog dialog;
 Intent mainIntent;
 String html, encVal;
 public static final String TAG = "WebViewStatus : ";
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_webview);
  mainIntent = getIntent();
    Log.d(TAG,"main 1 ");
  new RenderView().execute();
 }
 
 private class RenderView extends AsyncTask<Void, Void, Void> {
  @Override
  protected void onPreExecute() {
   super.onPreExecute();
   dialog = new ProgressDialog(WebViewActivity.this);
   dialog.setMessage("Please wait...");
   dialog.setCancelable(false);
   dialog.show();
  }

  @Override
  protected Void doInBackground(Void... arg0) {
   ServiceHandler sh = new ServiceHandler();
   Log.d(TAG,"main 3 ");
   List<NameValuePair> params = new ArrayList<NameValuePair>();
   params.add((NameValuePair) new BasicNameValuePair(AvenuesParams.ACCESS_CODE, mainIntent.getStringExtra(AvenuesParams.ACCESS_CODE)));
   params.add((NameValuePair) new BasicNameValuePair(AvenuesParams.ORDER_ID, mainIntent.getStringExtra(AvenuesParams.ORDER_ID)));
 
   String vResponse = sh.makeServiceCall(mainIntent.getStringExtra(AvenuesParams.RSA_KEY_URL), ServiceHandler.POST,params);//, params
   System.out.println(vResponse);
   if(!ServiceUtility.chkNull(vResponse).equals("")
     && ServiceUtility.chkNull(vResponse).toString().indexOf("ERROR")==-1){
    StringBuffer vEncVal = new StringBuffer("");
    vEncVal.append(ServiceUtility.addToPostParams(AvenuesParams.AMOUNT, mainIntent.getStringExtra(AvenuesParams.AMOUNT)));
    vEncVal.append(ServiceUtility.addToPostParams(AvenuesParams.CURRENCY, mainIntent.getStringExtra(AvenuesParams.CURRENCY)));
    encVal = RSAUtility.encrypt(vEncVal.substring(0,vEncVal.length()-1), vResponse);
   }
   
   return null;
  }

  @Override
  protected void onPostExecute(Void result) {
   super.onPostExecute(result);
   if (dialog.isShowing())
    dialog.dismiss();
   Log.d(TAG,"main 4 ");
   @SuppressWarnings("unused")
   class MyJavaScriptInterface
   {
    @JavascriptInterface
       public void processHTML(String html)
       {
           // process the html as needed by the app
        String status = null;
        if(html.indexOf("Failure")!=-1){
         status = "Transaction Declined!";
        }else if(html.indexOf("Success")!=-1){
         status = "Transaction Successful!";
        }else if(html.indexOf("Aborted")!=-1){
         status = "Transaction Cancelled!";
        }else{
         status = "Status Not Known!";
        }
        Intent intent = new Intent(getApplicationContext(),StatusActivity.class);
     intent.putExtra("transStatus", status);
     startActivity(intent);
       }
   }
   
   final WebView webview = (WebView) findViewById(R.id.webview);
   webview.getSettings().setJavaScriptEnabled(true);
   webview.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
   webview.setWebViewClient(new WebViewClient(){
    @Override  
          public void onPageFinished(WebView view, String url) {
              super.onPageFinished(webview, url);
              if(url.indexOf("/ccavResponseHandler.jsp")!=-1){
               webview.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
              }
          }  

          @Override
          public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
              Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show();
          }
   });
   
   StringBuffer params = new StringBuffer();
   params.append(ServiceUtility.addToPostParams(AvenuesParams.ACCESS_CODE,mainIntent.getStringExtra(AvenuesParams.ACCESS_CODE)));
   params.append(ServiceUtility.addToPostParams(AvenuesParams.MERCHANT_ID,mainIntent.getStringExtra(AvenuesParams.MERCHANT_ID)));
   params.append(ServiceUtility.addToPostParams(AvenuesParams.ORDER_ID,mainIntent.getStringExtra(AvenuesParams.ORDER_ID)));
   params.append(ServiceUtility.addToPostParams(AvenuesParams.REDIRECT_URL,mainIntent.getStringExtra(AvenuesParams.REDIRECT_URL)));
   params.append(ServiceUtility.addToPostParams(AvenuesParams.CANCEL_URL,mainIntent.getStringExtra(AvenuesParams.CANCEL_URL)));
   params.append(ServiceUtility.addToPostParams(AvenuesParams.ENC_VAL,URLEncoder.encode(encVal)));
   
   String vPostParams = params.substring(0,params.length()-1);
   try {
    webview.postUrl(Constants.TRANS_URL, EncodingUtils.getBytes(vPostParams, "UTF-8"));
   } catch (Exception e) {
    showToast("Exception occured while opening webview.");
   }
  }
 }
 
 public void showToast(String msg) {
  Toast.makeText(this, "Toast: " + msg, Toast.LENGTH_LONG).show();
 }
} 

The Error is :

--------- beginning of crash
11-16 11:19:56.256 21909-21909/com.reports.com.ccavenueseamless 

E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          

        Process: com.reports.com.ccavenueseamless, PID: 21909
                                                                          

        java.lang.IllegalStateException: Could not find method Next(View) 

in a parent or ancestor Context for android:onClick attribute defined on 

view class android.support.v7.widget.AppCompatButton with id 'nextButton'
                                                                          

            at android.support.v7.app.AppCompatViewInflater

$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:325)
                                                                          

            at android.support.v7.app.AppCompatViewInflater

$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
                                                                          

            at android.view.View.performClick(View.java:4780)
                                                                          

            at android.view.View$PerformClick.run(View.java:19866)
                                                                          

            at android.os.Handler.handleCallback(Handler.java:739)
                                                                          

            at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                          

            at android.os.Looper.loop(Looper.java:135)
                                                                          

            at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                          

            at java.lang.reflect.Method.invoke(Native Method)
                                                                          

            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                          

            at com.android.internal.os.ZygoteInit

$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                          

            at com.android.internal.os.ZygoteInit.main

(ZygoteInit.java:698)

The MainActivity is----

public class MainActivity extends AppCompatActivity {
    private EditText accessCode, merchantId, currency, amount, orderId, rsaKeyUrl, redirectUrl, cancelUrl;
    private Button webview;

    private void init() {
        accessCode = (EditText) findViewById(R.id.accessCode);
        merchantId = (EditText) findViewById(R.id.merchantId);
        orderId = (EditText) findViewById(R.id.orderId);
        currency = (EditText) findViewById(R.id.currency);
        amount = (EditText) findViewById(R.id.amount);
        rsaKeyUrl = (EditText) findViewById(R.id.rsaUrl);
        redirectUrl = (EditText) findViewById(R.id.redirectUrl);
        cancelUrl = (EditText) findViewById(R.id.cancelUrl);
        webview = (Button) findViewById(R.id.nextButton);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
        setContentView(R.layout.activity_main);

        init();



       webview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Next();
            }
        });
        //generating order number
        Integer randomNum = ServiceUtility.randInt(0, 9999999);
        orderId.setText(randomNum.toString());
    }



    public void Next() {
        //Mandatory parameters. Other parameters can be added if required.
        String vAccessCode = ServiceUtility.chkNull(accessCode.getText()).toString().trim();
        String vMerchantId = ServiceUtility.chkNull(merchantId.getText()).toString().trim();
        String vCurrency = ServiceUtility.chkNull(currency.getText()).toString().trim();
        String vAmount = ServiceUtility.chkNull(amount.getText()).toString().trim();
        if(!vAccessCode.equals("") && !vMerchantId.equals("") && !vCurrency.equals("") && !vAmount.equals("")){
            Intent intent = new Intent(this,WebViewActivity.class);intent.putExtra(AvenuesParams.ACCESS_CODE, ServiceUtility.chkNull(accessCode.getText()).toString().trim());
            intent.putExtra(AvenuesParams.MERCHANT_ID, ServiceUtility.chkNull(merchantId.getText()).toString().trim());
            intent.putExtra(AvenuesParams.ORDER_ID, ServiceUtility.chkNull(orderId.getText()).toString().trim());
            intent.putExtra(AvenuesParams.CURRENCY, ServiceUtility.chkNull(currency.getText()).toString().trim());
            intent.putExtra(AvenuesParams.AMOUNT, ServiceUtility.chkNull(amount.getText()).toString().trim());

            intent.putExtra(AvenuesParams.REDIRECT_URL, ServiceUtility.chkNull(redirectUrl.getText()).toString().trim());
            intent.putExtra(AvenuesParams.CANCEL_URL, ServiceUtility.chkNull(cancelUrl.getText()).toString().trim());
            intent.putExtra(AvenuesParams.RSA_KEY_URL, ServiceUtility.chkNull(rsaKeyUrl.getText()).toString().trim());

            startActivity(intent);
        }else{
            showToast("All parameters are mandatory.");//09438576355
        }
    }

    public void showToast(String msg) {
        Toast.makeText(this, "Toast: " + msg, Toast.LENGTH_LONG).show();
    }
}

the activity_main.xml is---

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="left"
        android:orientation="vertical" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/access_code" />

        <EditText
            android:id="@+id/accessCode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:text="AVPE07CL82AO87EPOA" >

        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/merchant_id" />

        <EditText
            android:id="@+id/merchantId"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:text="84472"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="Order Id" />

        <EditText
            android:id="@+id/orderId"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/currency" />

        <EditText
            android:id="@+id/currency"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:text="INR"
            />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/amount" />

        <EditText
            android:id="@+id/amount"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:text="1.00"
            />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/redirect_url" />

        <EditText
            android:id="@+id/redirectUrl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textUri"
            android:text="http://122.182.6.216/merchant/ccavResponseHandler.jsp"
            />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/cancel_url" />

        <EditText
            android:id="@+id/cancelUrl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textUri"
            android:text="http://122.182.6.216/merchant/ccavResponseHandler.jsp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:paddingLeft="10dp"
            android:text="@string/rsa_url" />

        <EditText
            android:id="@+id/rsaUrl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textUri"
            android:text="http://122.182.6.216/merchant/GetRSA.jsp" />



        <Button
            android:id="@+id/nextButton"
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="48dp"

            android:text="@string/pay_button" />
    </LinearLayout>
</ScrollView>
rational
  • 1
  • 1

0 Answers0