liao504550911 发表于 2015-3-12 00:47:42

求助大神判定这段代码的验证方法

package com.jj.mobile.pay;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.widget.LinearLayout;
import com.alipay.android.app.IAlixPay;
import com.alipay.android.app.IAlixPay.Stub;
import com.alipay.android.app.IRemoteServiceCallback;
import com.alipay.android.app.IRemoteServiceCallback.Stub;
import com.jj.mobile.JJLine;
import com.jj.mobile.common.CommonAlertDialog;
import com.jj.mobile.common.CommonAlertDialog.CommonAlertDialogBtnClickListener;
import com.jj.mobile.common.CommonProgressDialog;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

public class AlipayViewController
extends LinearLayout
{
private static final int DIALOG_ID_ASK_DOWNLOAD_ALIPAY = 1;
private static final int DIALOG_ID_CHECK_ALIPAY = 0;
private static final int DIALOG_ID_DOWNLOAD = 2;
private static final int DIALOG_ID_GUIDE_TO_BIND_NO_REG = 11;
private static final int DIALOG_ID_WAIT_ORDER = 10;
private static final String TAG = "AlipayViewController";
public static final String VERSION = "version";
public static final String actdata = "data";
public static final String action = "action";
public static final String actionUpdate = "update";
public static AlipayViewController g_instance = null;
public static final String partner = "partner";
public static final String platform = "platform";
public static final String server_url = "https://msp.alipay.com/x.htm";
private Integer LOCK = Integer.valueOf(1);
private int amount = 0;
private IRemoteServiceCallback m_AlipayCallback = new IRemoteServiceCallback.Stub()
{
    public boolean isHideLoadingScreen()
      throws RemoteException
    {
      return false;
    }
   
    public void payEnd(boolean paramAnonymousBoolean, String paramAnonymousString)
      throws RemoteException
    {}
   
    public void startActivity(String paramAnonymousString1, String paramAnonymousString2, int paramAnonymousInt, Bundle paramAnonymousBundle)
      throws RemoteException
    {
      Intent localIntent = new Intent("android.intent.action.MAIN", null);
      Log.i("AlipayViewController", "m_AlipayCallback, startActivity, packageName=" + paramAnonymousString1 + ", className=" + paramAnonymousString2 + ", iCallingPid=" + paramAnonymousInt);
      if (paramAnonymousBundle == null) {
      paramAnonymousBundle = new Bundle();
      }
      try
      {
      paramAnonymousBundle.putInt("CallingPid", paramAnonymousInt);
      localIntent.putExtras(paramAnonymousBundle);
      localIntent.setClassName(paramAnonymousString1, paramAnonymousString2);
      JJLine.instance.startActivity(localIntent);
      return;
      }
      catch (Exception localException)
      {
      for (;;)
      {
          localException.printStackTrace();
      }
      }
    }
};
private String m_AlipayDownloadUrl = null;
private IAlixPay m_AlixPay = null;
private ServiceConnection m_AlixPayConnection = new ServiceConnection()
{
    public void onServiceConnected(ComponentName paramAnonymousComponentName, IBinder paramAnonymousIBinder)
    {
      Log.i("AlipayViewController", "onServiceConnected IN");
      synchronized (AlipayViewController.this.LOCK)
      {
      AlipayViewController.this.m_AlixPay = IAlixPay.Stub.asInterface(paramAnonymousIBinder);
      AlipayViewController.this.LOCK.notify();
      return;
      }
    }
   
    public void onServiceDisconnected(ComponentName paramAnonymousComponentName)
    {
      Log.i("AlipayViewController", "onServiceDisconnected IN");
      AlipayViewController.this.m_AlixPay = null;
    }
};
private CommonAlertDialog m_AskDownload = null;
private CommonProgressDialog m_ProgressDialog = null;
private boolean m_bAlipayOK = false;
private boolean m_bPaying = false;
private String m_strRet = null;
private CommonAlertDialog m_toRegisterDialog = null;

public AlipayViewController(Activity paramActivity)
{
    super(paramActivity);
    g_instance = this;
}

private String SendAndWaitResponse(String paramString1, String paramString2)
{
    String str = null;
    ArrayList localArrayList = new ArrayList();
    localArrayList.add(new BasicNameValuePair("requestData", paramString1));
    HttpURLConnection localHttpURLConnection = null;
    try
    {
      UrlEncodedFormEntity localUrlEncodedFormEntity = new UrlEncodedFormEntity(localArrayList, "utf-8");
      localHttpURLConnection = (HttpURLConnection)new URL(paramString2).openConnection();
      localHttpURLConnection.setConnectTimeout(15000);
      localHttpURLConnection.setReadTimeout(15000);
      localHttpURLConnection.setDoOutput(true);
      localHttpURLConnection.addRequestProperty("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
      localHttpURLConnection.connect();
      OutputStream localOutputStream = localHttpURLConnection.getOutputStream();
      localUrlEncodedFormEntity.writeTo(localOutputStream);
      localOutputStream.flush();
      str = JJLine.convertStreamToString(localHttpURLConnection.getInputStream());
      Log.i("AlipayViewController", "SendAndWaitResponse, strResponse=" + str);
      return str;
    }
    catch (IOException localIOException)
    {
      Log.e("AlipayViewController", "SendAndWaitResponse ERROR, msg=" + localIOException.getMessage());
      localIOException.printStackTrace();
      return str;
    }
    finally
    {
      localHttpURLConnection.disconnect();
    }
}

private boolean checkAlipay()
{
    Log.i("AlipayViewController", "test check alipay");
    boolean bool = checkAlipayExist();
    if (!bool)
    {
      askCreateDialog(0);
      new Thread(new Runnable()
      {
      public void run()
      {
          AlipayViewController.this.m_AlipayDownloadUrl = AlipayViewController.this.getAlipayURL();
          AlipayViewController.this.askDestroyDialog(0);
          Log.i("AlipayViewController", "getAlipayURL run, url=" + AlipayViewController.this.m_AlipayDownloadUrl);
          if (AlipayViewController.this.m_AlipayDownloadUrl != null)
          {
            JJLine.mHandler.post(new Runnable()
            {
            public void run()
            {
                AlipayViewController.this.askCreateDialog(1);
            }
            });
            return;
          }
          JJLine.mHandler.post(new Runnable()
          {
            public void run()
            {
            JJLine.prompt(JJLine.instance, "检查支付宝状态失败,请稍后重试!");
            }
          });
      }
      }).start();
    }
    return bool;
}

private boolean checkAlipayExist()
{
    List localList = JJLine.instance.getPackageManager().getInstalledPackages(0);
    for (int i = 0;; i++)
    {
      int j = localList.size();
      boolean bool = false;
      if (i >= j) {}
      for (;;)
      {
      Log.i("AlipayViewController", "checkAlipayExist OUT, bRet=" + bool);
      return bool;
      if (!((PackageInfo)localList.get(i)).packageName.equalsIgnoreCase("com.alipay.android.app")) {
          break;
      }
      bool = true;
      }
    }
}

private String getAlipayURL()
{
    try
    {
      JSONObject localJSONObject1 = new JSONObject();
      localJSONObject1.put("action", "update");
      JSONObject localJSONObject2 = new JSONObject();
      localJSONObject2.put("platform", "android");
      localJSONObject2.put("version", "0");
      localJSONObject2.put("partner", "");
      localJSONObject1.put("data", localJSONObject2);
      JSONObject localJSONObject3 = sendRequest(localJSONObject1.toString());
      Object localObject = null;
      if (localJSONObject3 != null)
      {
      boolean bool = localJSONObject3.getString("needUpdate").equalsIgnoreCase("true");
      localObject = null;
      if (bool)
      {
          String str = localJSONObject3.getString("updateUrl");
          localObject = str;
      }
      }
      return (String)localObject;
    }
    catch (JSONException localJSONException)
    {
      Log.e("AlipayViewController", "getAlipayURL ERROR, msg=" + localJSONException.getMessage());
      localJSONException.printStackTrace();
    }
    return null;
}

private int getEcaschemeId(int paramInt)
{
    switch (paramInt)
    {
    default:
      return -1;
    case 1000:
      return 0;
    case 3000:
      return 38;
    case 10000:
      return 39;
    case 30000:
      return 40;
    }
    return 41;
}

private String getPrompt(int paramInt)
{
    switch (paramInt)
    {
    default:
      return "亲!支付失败," + "请稍后重试!";
    case 9000:
      return "亲!恭喜您支付成功!请稍后查收!";
    case 4001:
      return "亲!支付失败," + "数据格式不正确!";
    case 4003:
      return "亲!支付失败," + "您绑定的支付宝账号被冻结或不允许支付!";
    case 4004:
      return "亲!支付失败," + "该用户已解除绑定!";
    case 4005:
      return "亲!支付失败," + "绑定失败或没有绑定!";
    case 4006:
      return "亲!支付失败," + "订单支付失败!";
    case 4010:
      return "亲!支付失败," + "请重新绑定账户!";
    case 6000:
      return "亲!支付失败," + "支付宝服务正在升级,请稍后重试!";
    }
    return "亲!支付失败," + "中途取消支付!";
}

private JSONObject sendRequest(String paramString)
{
    Log.i("AlipayViewController", "sendRequest IN, content=" + paramString);
    try
    {
      JSONObject localJSONObject1 = new JSONObject(SendAndWaitResponse(paramString, "https://msp.alipay.com/x.htm"));
      localJSONObject2 = localJSONObject1;
    }
    catch (Exception localException)
    {
      for (;;)
      {
      localException.printStackTrace();
      JSONObject localJSONObject2 = null;
      }
    }
    if (localJSONObject2 != null) {
      Log.i("AlipayViewController", "sendRequest,jsonResponse=" + localJSONObject2.toString());
    }
    return localJSONObject2;
}

private boolean urlDownloadToFile(String paramString1, String paramString2)
{
    Log.i("AlipayViewController", "urlDownloadToFile IN, strurl=" + paramString1);
    bool = false;
    if (paramString1 != null) {}
    for (;;)
    {
      try
      {
      HttpURLConnection localHttpURLConnection = (HttpURLConnection)new URL(paramString1).openConnection();
      localHttpURLConnection.setConnectTimeout(15000);
      localHttpURLConnection.setReadTimeout(15000);
      localHttpURLConnection.setDoInput(true);
      localHttpURLConnection.connect();
      InputStream localInputStream = localHttpURLConnection.getInputStream();
      File localFile = new File(paramString2);
      localFile.createNewFile();
      localFileOutputStream = new FileOutputStream(localFile);
      arrayOfByte = new byte;
      i = localInputStream.read(arrayOfByte);
      if (i > 0) {
          continue;
      }
      localFileOutputStream.close();
      localInputStream.close();
      bool = true;
      }
      catch (IOException localIOException)
      {
      FileOutputStream localFileOutputStream;
      byte[] arrayOfByte;
      int i;
      Log.e("AlipayViewController", "urlDownloadToFile ERROR, msg=" + localIOException.getMessage());
      localIOException.printStackTrace();
      bool = false;
      continue;
      }
      Log.i("AlipayViewController", "urlDownloadToFile OUT, bRet=" + bool);
      return bool;
      localFileOutputStream.write(arrayOfByte, 0, i);
    }
}

protected void askCreateDialog(int paramInt)
{
    switch (paramInt)
    {
    }
    do
    {
      do
      {
      do
      {
          do
          {
            return;
          } while (this.m_ProgressDialog != null);
          this.m_ProgressDialog = new CommonProgressDialog(JJLine.instance);
          this.m_ProgressDialog.setMessage("正在检查支付宝状态,请稍候...");
          this.m_ProgressDialog.setCancelable(false);
          this.m_ProgressDialog.show();
          return;
      } while (this.m_AskDownload != null);
      this.m_AskDownload = new CommonAlertDialog(JJLine.instance);
      this.m_AskDownload.setTitle("提示");
      this.m_AskDownload.setMessage("支付宝功能需下载支付宝插件,请确认是否下载?");
      this.m_AskDownload.setButton1("确认", new CommonAlertDialog.CommonAlertDialogBtnClickListener()
      {
          public void onClick()
          {
            AlipayViewController.this.askDestroyDialog(1);
            new Thread(new Runnable()
            {
            public void run()
            {
                JJLine.mHandler.post(new Runnable()
                {
                  public void run()
                  {
                  AlipayViewController.this.askCreateDialog(2);
                  }
                });
                String str1 = JJLine.instance.getCacheDir().getAbsolutePath() + "/alipay.apk";
                boolean bool = AlipayViewController.this.urlDownloadToFile(AlipayViewController.this.m_AlipayDownloadUrl, str1);
                JJLine.mHandler.post(new Runnable()
                {
                  public void run()
                  {
                  AlipayViewController.this.askDestroyDialog(2);
                  }
                });
                if (bool) {}
                try
                {
                  String str2 = "chmod 777 " + str1;
                  Runtime.getRuntime().exec(str2);
                  Intent localIntent = new Intent("android.intent.action.VIEW");
                  localIntent.addFlags(268435456);
                  localIntent.setDataAndType(Uri.parse("file://" + str1), "application/vnd.android.package-archive");
                  JJLine localJJLine = JJLine.instance;
                  if (localJJLine != null)
                  {
                  Log.i("AlipayViewController", "DIALOG_ID_ASK_DOWNLOAD_ALIPAY IN, start activity");
                  localJJLine.startActivity(localIntent);
                  }
                  return;
                }
                catch (IOException localIOException)
                {
                  for (;;)
                  {
                  localIOException.printStackTrace();
                  }
                }
            }
            }).start();
          }
      });
      this.m_AskDownload.setButton2("", new CommonAlertDialog.CommonAlertDialogBtnClickListener()
      {
          public void onClick()
          {
            AlipayViewController.this.askDestroyDialog(1);
          }
      });
      this.m_AskDownload.show();
      return;
      } while (this.m_ProgressDialog != null);
      this.m_ProgressDialog = new CommonProgressDialog(JJLine.instance);
      this.m_ProgressDialog.setMessage("正在下载支付宝,请稍候...");
      this.m_ProgressDialog.show();
      return;
    } while (this.m_ProgressDialog != null);
    this.m_ProgressDialog = new CommonProgressDialog(JJLine.instance);
    this.m_ProgressDialog.setMessage("正在生成订单,请稍候...");
    this.m_ProgressDialog.show();
}

protected void askDestroyDialog(int paramInt)
{
    switch (paramInt)
    {
    }
    do
    {
      do
      {
      do
      {
          return;
      } while (this.m_ProgressDialog == null);
      this.m_ProgressDialog.dismiss();
      this.m_ProgressDialog = null;
      return;
      } while (this.m_AskDownload == null);
      this.m_AskDownload.dismiss();
      this.m_AskDownload = null;
      return;
    } while (this.m_toRegisterDialog == null);
    this.m_toRegisterDialog.dismiss();
    this.m_toRegisterDialog = null;
}

public boolean callAlipay(final String paramString)
{
    if (!this.m_bAlipayOK)
    {
      Log.e("AlipayViewController", "pay OUT, alipay not detect");
      JJLine.prompt(JJLine.instance, "支付宝未安装,无法支付!");
    }
    do
    {
      return false;
      Log.i("AlipayViewController", "callAlipay IN, param=" + paramString + ", m_bPaying=" + this.m_bPaying);
    } while (this.m_bPaying);
    this.m_bPaying = true;
    if (this.m_AlixPay == null) {
      JJLine.instance.bindService(new Intent(IAlixPay.class.getName()), this.m_AlixPayConnection, 1);
    }
    new Thread(new Runnable()
    {
      /* Error */
      public void run()
      {
      // Byte code:
      //   0: ldc 31
      //   2: ldc 33
      //   4: invokestatic 39        android/util/Log:i        (Ljava/lang/String;Ljava/lang/String;)I
      //   7: pop
      //   8: aload_0
      //   9: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   12: aconst_null
      //   13: invokestatic 42        com/jj/mobile/pay/AlipayViewController:access$12        (Lcom/jj/mobile/pay/AlipayViewController;Ljava/lang/String;)V
      //   16: aload_0
      //   17: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   20: invokestatic 45        com/jj/mobile/pay/AlipayViewController:access$0        (Lcom/jj/mobile/pay/AlipayViewController;)Ljava/lang/Integer;
      //   23: astore 11
      //   25: aload 11
      //   27: monitorenter
      //   28: aload_0
      //   29: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   32: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   35: ifnonnull +13 -> 48
      //   38: aload_0
      //   39: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   42: invokestatic 45        com/jj/mobile/pay/AlipayViewController:access$0        (Lcom/jj/mobile/pay/AlipayViewController;)Ljava/lang/Integer;
      //   45: invokevirtual 52        java/lang/Object:wait        ()V
      //   48: aload 11
      //   50: monitorexit
      //   51: aload_0
      //   52: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   55: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   58: aload_0
      //   59: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   62: invokestatic 56        com/jj/mobile/pay/AlipayViewController:access$8        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IRemoteServiceCallback;
      //   65: invokeinterface 62 2 0
      //   70: aload_0
      //   71: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   74: aload_0
      //   75: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   78: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   81: aload_0
      //   82: getfield 21        com/jj/mobile/pay/AlipayViewController$6:val$param        Ljava/lang/String;
      //   85: invokeinterface 66 2 0
      //   90: invokestatic 42        com/jj/mobile/pay/AlipayViewController:access$12        (Lcom/jj/mobile/pay/AlipayViewController;Ljava/lang/String;)V
      //   93: ldc 31
      //   95: new 68        java/lang/StringBuilder
      //   98: dup
      //   99: ldc 70
      //   101: invokespecial 73        java/lang/StringBuilder:<init>        (Ljava/lang/String;)V
      //   104: aload_0
      //   105: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   108: invokestatic 77        com/jj/mobile/pay/AlipayViewController:access$10        (Lcom/jj/mobile/pay/AlipayViewController;)Ljava/lang/String;
      //   111: invokevirtual 81        java/lang/StringBuilder:append        (Ljava/lang/String;)Ljava/lang/StringBuilder;
      //   114: invokevirtual 85        java/lang/StringBuilder:toString        ()Ljava/lang/String;
      //   117: invokestatic 39        android/util/Log:i        (Ljava/lang/String;Ljava/lang/String;)I
      //   120: pop
      //   121: aload_0
      //   122: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   125: iconst_0
      //   126: invokestatic 89        com/jj/mobile/pay/AlipayViewController:access$6        (Lcom/jj/mobile/pay/AlipayViewController;Z)V
      //   129: aload_0
      //   130: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   133: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   136: aload_0
      //   137: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   140: invokestatic 56        com/jj/mobile/pay/AlipayViewController:access$8        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IRemoteServiceCallback;
      //   143: invokeinterface 92 2 0
      //   148: getstatic 98        com/jj/mobile/JJLine:instance        Lcom/jj/mobile/JJLine;
      //   151: aload_0
      //   152: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   155: invokestatic 102        com/jj/mobile/pay/AlipayViewController:access$9        (Lcom/jj/mobile/pay/AlipayViewController;)Landroid/content/ServiceConnection;
      //   158: invokevirtual 106        com/jj/mobile/JJLine:unbindService        (Landroid/content/ServiceConnection;)V
      //   161: getstatic 110        com/jj/mobile/JJLine:mHandler        Landroid/os/Handler;
      //   164: new 112        com/jj/mobile/pay/AlipayViewController$6$1
      //   167: dup
      //   168: aload_0
      //   169: invokespecial 115        com/jj/mobile/pay/AlipayViewController$6$1:<init>        (Lcom/jj/mobile/pay/AlipayViewController$6;)V
      //   172: invokevirtual 121        android/os/Handler:post        (Ljava/lang/Runnable;)Z
      //   175: pop
      //   176: return
      //   177: astore 12
      //   179: aload 11
      //   181: monitorexit
      //   182: aload 12
      //   184: athrow
      //   185: astore 5
      //   187: ldc 31
      //   189: new 68        java/lang/StringBuilder
      //   192: dup
      //   193: ldc 123
      //   195: invokespecial 73        java/lang/StringBuilder:<init>        (Ljava/lang/String;)V
      //   198: aload 5
      //   200: invokevirtual 126        java/lang/Exception:getMessage        ()Ljava/lang/String;
      //   203: invokevirtual 81        java/lang/StringBuilder:append        (Ljava/lang/String;)Ljava/lang/StringBuilder;
      //   206: invokevirtual 85        java/lang/StringBuilder:toString        ()Ljava/lang/String;
      //   209: invokestatic 129        android/util/Log:e        (Ljava/lang/String;Ljava/lang/String;)I
      //   212: pop
      //   213: aload 5
      //   215: invokevirtual 132        java/lang/Exception:printStackTrace        ()V
      //   218: aload_0
      //   219: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   222: iconst_0
      //   223: invokestatic 89        com/jj/mobile/pay/AlipayViewController:access$6        (Lcom/jj/mobile/pay/AlipayViewController;Z)V
      //   226: aload_0
      //   227: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   230: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   233: aload_0
      //   234: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   237: invokestatic 56        com/jj/mobile/pay/AlipayViewController:access$8        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IRemoteServiceCallback;
      //   240: invokeinterface 92 2 0
      //   245: getstatic 98        com/jj/mobile/JJLine:instance        Lcom/jj/mobile/JJLine;
      //   248: aload_0
      //   249: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   252: invokestatic 102        com/jj/mobile/pay/AlipayViewController:access$9        (Lcom/jj/mobile/pay/AlipayViewController;)Landroid/content/ServiceConnection;
      //   255: invokevirtual 106        com/jj/mobile/JJLine:unbindService        (Landroid/content/ServiceConnection;)V
      //   258: getstatic 110        com/jj/mobile/JJLine:mHandler        Landroid/os/Handler;
      //   261: new 112        com/jj/mobile/pay/AlipayViewController$6$1
      //   264: dup
      //   265: aload_0
      //   266: invokespecial 115        com/jj/mobile/pay/AlipayViewController$6$1:<init>        (Lcom/jj/mobile/pay/AlipayViewController$6;)V
      //   269: invokevirtual 121        android/os/Handler:post        (Ljava/lang/Runnable;)Z
      //   272: pop
      //   273: return
      //   274: astore 7
      //   276: ldc 31
      //   278: new 68        java/lang/StringBuilder
      //   281: dup
      //   282: ldc 134
      //   284: invokespecial 73        java/lang/StringBuilder:<init>        (Ljava/lang/String;)V
      //   287: aload 7
      //   289: invokevirtual 126        java/lang/Exception:getMessage        ()Ljava/lang/String;
      //   292: invokevirtual 81        java/lang/StringBuilder:append        (Ljava/lang/String;)Ljava/lang/StringBuilder;
      //   295: invokevirtual 85        java/lang/StringBuilder:toString        ()Ljava/lang/String;
      //   298: invokestatic 129        android/util/Log:e        (Ljava/lang/String;Ljava/lang/String;)I
      //   301: pop
      //   302: aload 7
      //   304: invokevirtual 132        java/lang/Exception:printStackTrace        ()V
      //   307: goto -49 -> 258
      //   310: astore_1
      //   311: aload_0
      //   312: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   315: iconst_0
      //   316: invokestatic 89        com/jj/mobile/pay/AlipayViewController:access$6        (Lcom/jj/mobile/pay/AlipayViewController;Z)V
      //   319: aload_0
      //   320: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   323: invokestatic 49        com/jj/mobile/pay/AlipayViewController:access$7        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IAlixPay;
      //   326: aload_0
      //   327: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   330: invokestatic 56        com/jj/mobile/pay/AlipayViewController:access$8        (Lcom/jj/mobile/pay/AlipayViewController;)Lcom/alipay/android/app/IRemoteServiceCallback;
      //   333: invokeinterface 92 2 0
      //   338: getstatic 98        com/jj/mobile/JJLine:instance        Lcom/jj/mobile/JJLine;
      //   341: aload_0
      //   342: getfield 19        com/jj/mobile/pay/AlipayViewController$6:this$0        Lcom/jj/mobile/pay/AlipayViewController;
      //   345: invokestatic 102        com/jj/mobile/pay/AlipayViewController:access$9        (Lcom/jj/mobile/pay/AlipayViewController;)Landroid/content/ServiceConnection;
      //   348: invokevirtual 106        com/jj/mobile/JJLine:unbindService        (Landroid/content/ServiceConnection;)V
      //   351: getstatic 110        com/jj/mobile/JJLine:mHandler        Landroid/os/Handler;
      //   354: new 112        com/jj/mobile/pay/AlipayViewController$6$1
      //   357: dup
      //   358: aload_0
      //   359: invokespecial 115        com/jj/mobile/pay/AlipayViewController$6$1:<init>        (Lcom/jj/mobile/pay/AlipayViewController$6;)V
      //   362: invokevirtual 121        android/os/Handler:post        (Ljava/lang/Runnable;)Z
      //   365: pop
      //   366: aload_1
      //   367: athrow
      //   368: astore_2
      //   369: ldc 31
      //   371: new 68        java/lang/StringBuilder
      //   374: dup
      //   375: ldc 134
      //   377: invokespecial 73        java/lang/StringBuilder:<init>        (Ljava/lang/String;)V
      //   380: aload_2
      //   381: invokevirtual 126        java/lang/Exception:getMessage        ()Ljava/lang/String;
      //   384: invokevirtual 81        java/lang/StringBuilder:append        (Ljava/lang/String;)Ljava/lang/StringBuilder;
      //   387: invokevirtual 85        java/lang/StringBuilder:toString        ()Ljava/lang/String;
      //   390: invokestatic 129        android/util/Log:e        (Ljava/lang/String;Ljava/lang/String;)I
      //   393: pop
      //   394: aload_2
      //   395: invokevirtual 132        java/lang/Exception:printStackTrace        ()V
      //   398: goto -47 -> 351
      //   401: astore 14
      //   403: ldc 31
      //   405: new 68        java/lang/StringBuilder
      //   408: dup
      //   409: ldc 134
      //   411: invokespecial 73        java/lang/StringBuilder:<init>        (Ljava/lang/String;)V
      //   414: aload 14
      //   416: invokevirtual 126        java/lang/Exception:getMessage        ()Ljava/lang/String;
      //   419: invokevirtual 81        java/lang/StringBuilder:append        (Ljava/lang/String;)Ljava/lang/StringBuilder;
      //   422: invokevirtual 85        java/lang/StringBuilder:toString        ()Ljava/lang/String;
      //   425: invokestatic 129        android/util/Log:e        (Ljava/lang/String;Ljava/lang/String;)I
      //   428: pop
      //   429: aload 14
      //   431: invokevirtual 132        java/lang/Exception:printStackTrace        ()V
      //   434: goto -273 -> 161
      // Local variable table:
      //   start        length        slot        name        signature
      //   0        437        0        this        6
      //   310        57        1        localObject1        Object
      //   368        27        2        localException1        Exception
      //   185        29        5        localException2        Exception
      //   274        29        7        localException3        Exception
      //   177        6        12        localObject2        Object
      //   401        29        14        localException4        Exception
      // Exception table:
      //   from        to        target        type
      //   28        48        177        finally
      //   48        51        177        finally
      //   179        182        177        finally
      //   0        28        185        java/lang/Exception
      //   51        121        185        java/lang/Exception
      //   182        185        185        java/lang/Exception
      //   226        258        274        java/lang/Exception
      //   0        28        310        finally
      //   51        121        310        finally
      //   182        185        310        finally
      //   187        218        310        finally
      //   319        351        368        java/lang/Exception
      //   129        161        401        java/lang/Exception
      }
    }).start();
    return true;
}

public void pay(int paramInt) {}
}


本人小白初学逆向,求大神帮忙分析一下支付验证是通过网络还是服务器验证的。求大神支招

花墨 发表于 2015-3-12 12:15:32

你直接拷了这么一大批代码让人怎么看{:5_130:}

liao504550911 发表于 2015-3-13 01:22:10

花墨 发表于 2015-3-12 12:15
你直接拷了这么一大批代码让人怎么看

因为不知道切入点在哪所以直接复制一大段

peterdocter 发表于 2015-3-18 11:18:12

private String getPrompt(int paramInt)
{
    switch (paramInt)
    {
    default:
      return "亲!支付失败," + "请稍后重试!";
    case 9000:
      return "亲!恭喜您支付成功!请稍后查收!";
    case 4001:
      return "亲!支付失败," + "数据格式不正确!";
    case 4003:
      return "亲!支付失败," + "您绑定的支付宝账号被冻结或不允许支付!";
    case 4004:
      return "亲!支付失败," + "该用户已解除绑定!";
    case 4005:
      return "亲!支付失败," + "绑定失败或没有绑定!";
    case 4006:
      return "亲!支付失败," + "订单支付失败!";
    case 4010:
      return "亲!支付失败," + "请重新绑定账户!";
    case 6000:
      return "亲!支付失败," + "支付宝服务正在升级,请稍后重试!";
    }
    return "亲!支付失败," + "中途取消支付!";
}

这是不是有关键点吗?查看哪里调用?或者找一下ali开发手册参考一下{:5_131:}

晴天 发表于 2015-3-26 17:04:40

找找getPrompt是哪里调用的,前面还调用了什么,找找还有没有其他的9000,另外注意这个app是联网的那种是没戏的,支付宝有同步支付和异步支付两种,也就是说有一种是由游戏服务器发放,另外一种由本地发放,只有第二种才可以修改,如果这个是一个联网的游戏,存档都在网络上,那么请放弃吧,看着你这个有点儿像第一种,另外,下次提问的时候最好把apk上传上来,这样才能得到确定的答案哟~

ceshi999 发表于 2015-3-30 00:06:28

jj游戏都是联网的,改不了。
页: [1]
查看完整版本: 求助大神判定这段代码的验证方法