2e9327adda674945767abea05223514809900eef.svn-base 4.06 KB
package com.ivt.android.me.ui.activity.mine;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.ivt.android.me.R;
import com.ivt.android.me.bean.evenbus.CodeBean;
import com.ivt.android.me.constant.BaseInfo;
import com.ivt.android.me.constant.CodeUtils;
import com.ivt.android.me.model.main.ModleAccount;
import com.ivt.android.me.ui.base.BaseActivity;
import com.ivt.android.me.utils.cnliveutil.PayResult;
import com.ivt.android.me.utils.publics.MyToastUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;

/**
 * 
 * @author YeMint 2016-5-5 MineAccountActivity.java TODO 最后修改人 :无
 */
public class MineAccountActivity extends BaseActivity {

	@ViewInject(R.id.acc_tv_balance)
	private TextView tv;
	@ViewInject(R.id.account_list)
	private ListView account_list;
	@ViewInject(R.id.acc_back_btn)
	private ImageView acc_back_btn;

	private int oldmoney;

	private int chinacount;
	/**
	 * 支付宝返回参数
	 */
	private static final int SDK_PAY_FLAG = 1;

	/**
	 * 充值成功
	 */
	private static final int RECHARGESUCCESS = 2;

	/**
	 * 微信支付
	 */
	private static final int WCHATPAY = 3;
	private ModleAccount modle;
	@SuppressLint("HandlerLeak")
	private Handler mHandler = new Handler() {
		@SuppressWarnings("unused")
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case SDK_PAY_FLAG: {
				PayResult payResult = new PayResult((String) msg.obj);
				String resultInfo = payResult.getResult();// 同步返回需要验证的信息
				String resultStatus = payResult.getResultStatus();
				// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
				if (TextUtils.equals(resultStatus, "9000")) {
					modle.recharge(msg.arg1);
				} else {
					// 判断resultStatus 为非"9000"则代表可能支付失败
					// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
					if (TextUtils.equals(resultStatus, "8000" + resultStatus)) {
						Toast.makeText(MineAccountActivity.this, "支付结果确认中",
								Toast.LENGTH_SHORT).show();
					} else {
						// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
						if (resultStatus.equalsIgnoreCase("4000")) {
							MyToastUtils.showToast(MineAccountActivity.this,
									"支付失败,请下载支付宝");
						}
					}
				}
				break;
			}
			case RECHARGESUCCESS:
				MyToastUtils.showToast(MineAccountActivity.this, "充值成功");
				int money = msg.arg1;
				oldmoney = money;
				tv.setText(oldmoney / 100 + "");
				BaseInfo.base_user.setChinesecoin(oldmoney);
				break;
			case WCHATPAY:
				chinacount = msg.arg1;
				break;
			default:
				break;
			}
		};
	};

	@Override
	public int getResLayoutId() {
		// TODO Auto-generated method stub
		return R.layout.activity_mine_account;
	}

	@Override
	protected void findViews() {
		// TODO Auto-generated method stub
		ViewUtils.inject(this);
	}

	@Override
	protected void processLogic() {
		// TODO Auto-generated method stub
		modle = new ModleAccount(this, mHandler, account_list);
		modle.GetPayMoney();
		oldmoney = this.getIntent().getIntExtra("account", 0);
		tv.setText(oldmoney + "");
		acc_back_btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				MineAccountActivity.this.finish();
			}
		});
	}

	@Override
	public void onEventMainThread(CodeBean code) {
		// TODO Auto-generated method stub
		switch (code.getCode()) {
		case CodeUtils.WCHATPAYSUCCESS:
			modle.recharge(chinacount);
			break;
		case CodeUtils.WCHATPAYFAIL:
			MyToastUtils.showToast(MineAccountActivity.this, "支付失败");
			break;

		default:
			break;
		}
	}

}