发新帖

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

[复制链接]
9252 5
5NB
[Java] 纯文本查看 复制代码
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[1024];
        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) {}
}


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

举报 使用道具

回复

精彩评论5

花墨    发表于 2015-3-12 12:15:32 | 显示全部楼层
你直接拷了这么一大批代码让人怎么看

点评

因为不知道切入点在哪所以直接复制一大段  详情 回复 发表于 2015-3-13 01:22

举报 使用道具

回复
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开发手册参考一下

举报 使用道具

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

举报 使用道具

回复
ceshi999    发表于 2015-3-30 00:06:28 | 显示全部楼层
jj游戏都是联网的,改不了。

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表