package com.mgw.member.ui.activity;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.View.OnLongClickListener;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alipay.android.app.sdk.AliPay;
import com.alipay.android.msp.Keys;
import com.alipay.android.msp.Rsa;
import com.google.gson.Gson;
import com.hx.hxchat.activity.ChatActivity;
import com.hx.hxchat.domain.User;
import com.hx.hxchat.domain.UserFriendBean;
import com.hx.hxchat.utils.UserUtils;
import com.mgw.member.R;
import com.mgw.member.bean.UserInfoBean;
import com.mgw.member.constant.Define_C;
import com.mgw.member.constant.imp_Define;
import com.mgw.member.http.pay.WXPayRequest1;
import com.mgw.member.js.dao.JsCnative;
import com.mgw.member.manager.BaseApplication;
import com.mgw.member.ottoEvent.BusProvider;
import com.mgw.member.ottoEvent.MallFragmentNeedRefreshEvent;
import com.mgw.member.ui.activity.cityleague.GoodDetailActivity;
import com.mgw.member.ui.activity.cityleague.ShopDetailAndIntroduceActivity;
import com.mgw.member.ui.activity.login.LoginActivity;
import com.mgw.member.uitls.AppManager;
import com.mgw.member.uitls.DialogUtils;
import com.mgw.member.uitls.InputTools;
import com.mgw.member.uitls.LogUtils;
import com.mgw.member.uitls.PreferenceHelper;
import com.mgw.member.uitls.UIUtils;
import com.mgw.member.uitls.Utils;
import com.squareup.otto.Subscribe;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
/**
* desc:
*
* @author huyan
*
*/
@SuppressLint({ "SetJavaScriptEnabled", "HandlerLeak", "JavascriptInterface" })
public class CopyOfSubWebviewActivity extends MGWBaseActivity implements OnClickListener, imp_Define {
private final String TAG = CopyOfSubWebviewActivity.class.getSimpleName();
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;
public String m_back_url = "";
private WebView mWebView;
private RelativeLayout rl_title_root;
/**
* 首页
*/
private final int TAB_HOME = 1;
/**
* 消息
*/
private final int TAB_NEWS = 2;
/**
* 发现
*/
private final int TAB_FIND = 3;
/**
* 商城
*/
private final int TAB_MALL = 4;
/**
* 我的地盘
*/
private final int TAB_MYINFO = 5;
/*
* 1 首页 2 消息 3 发现
*/
private int mWebType = TAB_HOME;
private String url = "";
private DialogUtils mDialogUtils;
private boolean title = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
protected void init() {
}
protected void initView() {
setContentView(R.layout.activity_sub_webview);
mWebType = getIntent().getExtras().getInt("type");
url = getIntent().getExtras().getString("url");
title = getIntent().getExtras().getBoolean("title");
mWebView = (WebView) findViewById(R.id.webview);
rl_title_root = (RelativeLayout) findViewById(R.id.rl_title_root);
if (title) {
rl_title_root.setVisibility(View.VISIBLE);
} else {
rl_title_root.setVisibility(View.GONE);
}
if (6 == mWebType) {
findViewById(R.id.mainpage).setVisibility(View.GONE);
findViewById(R.id.layout).setVisibility(View.GONE);
findViewById(R.id.back).setVisibility(View.VISIBLE);
} else {
findViewById(R.id.mainpage).setVisibility(View.VISIBLE);
findViewById(R.id.layout).setVisibility(View.VISIBLE);
findViewById(R.id.back).setVisibility(View.VISIBLE);
}
findViewById(R.id.back).setOnClickListener(this);
findViewById(R.id.refresh).setOnClickListener(this);
findViewById(R.id.mainpage).setOnClickListener(this);
dialog = new Dialog(mContext, R.style.MyDialogStyle);
dialog.setContentView(R.layout.dialog);
initWebView(mWebView);
}
/**
* 初始化webview
*
* @param mWebView
* Created by Administrator
*/
private void initWebView(WebView mWebView) {
webViewSetting(mWebView);
mWebView.setWebViewClient(new SubWebViewClient());
mWebView.setWebChromeClient(new SubWebChromeClient());
mWebView.addJavascriptInterface(new Handle(), JsCnative.mgwjs);
mWebView.loadUrl(url);
};
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String data = (String) msg.obj;
if (data.contains("找不到网页")) {
findViewById(R.id.error_layout).setVisibility(View.VISIBLE);
((TextView) findViewById(R.id.title)).setText("");
return;
}
int pos = data.indexOf("<input name=\"parentPage\"");
if (pos >= 0) {
String back = data.substring(pos);
pos = back.indexOf("value=\"");
back = back.substring(pos + 7);
pos = back.indexOf("\"");
back = back.substring(0, pos);
m_back_url = back;
} else {
if (mWebType != 1) {
}
// finish();
}
}
};
/**
* js控制类
*
* @author huyan
*/
class Handle implements JsCnative {
@JavascriptInterface
public void showSource(String data) {
Message msg = handler.obtainMessage(0, data);
handler.sendMessage(msg);
}
@Override
@JavascriptInterface
public void getUserInfo() {
UIUtils.runInMainThread(new Runnable() {
@Override
public void run() {
String aa = getSharedPreferences("mgw_data", 0).getString("mgw_data", "");
mWebView.loadUrl("javascript:setUserInfo('" + aa + "')");
LogUtils.i(TAG, "getUserInfo,aa=" + aa);
// LogUtils.i(TAG, "getUserInfo,url=");
}
});
}
@Override
@JavascriptInterface
public void transferTo(final String url, String parm) {
// TODO
LogUtils.i(TAG, "transforTo,url=" + url + ",parm=" + parm);
if (Utils.isFastDoubleClick()) {
LogUtils.i(TAG, "不能快速点击");
return;
}
UIUtils.runInMainThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (url.contains("index.htm")) {
InputTools.TimerHideKeyboard(mWebView);
finish();
}
}
});
}
@Override
@JavascriptInterface
public void setClientInfo(String groupid, String uid, String sid) {
// TODO Auto-generated method stub
LogUtils.i(TAG, "setClientInfo,json=" + groupid + "uid" + uid);
SharedPreferences.Editor sharedata = getSharedPreferences("mgw_data", 0).edit();
UserInfoBean bean = BaseApplication.getApplication().getBean();
bean.item.groupid = groupid;
bean.item.sid = sid;
bean.item.uid = uid;
String json = new Gson().toJson(bean);
LogUtils.i(TAG, "setClientInfo,json=" + json.toString());
try {
JSONObject jsonObject = new JSONObject(json);
JSONObject jsonObject2 = jsonObject.getJSONObject("item");
sharedata.putString("mgw_data", jsonObject2.toString());
sharedata.commit();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (Utils.isFastDoubleClick()) {
LogUtils.i(TAG, "不能快速点击");
return;
}
UIUtils.runInMainThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent();
getLoginInfo();
intent.putExtra("bind", true);
setResult(1, intent);
finish();
}
});
}
@Override
@JavascriptInterface
public void toConsulter(String userid) {
// TODO Auto-generated method stub
}
@Override
@JavascriptInterface
public void toSupplier(String sid) {
// TODO Auto-generated method stub
}
@Override
@JavascriptInterface
public void buyInSupplier(String sid, String pid) {
// TODO Auto-generated method stub
}
}
public void getLoginInfo() {
new Thread(new Runnable() {
@Override
public void run() {
LogUtils.i("otto", "GetLoginInfo_Thread");
JSONObject loginInfo = UserUtils.getLoginInfo();
if (loginInfo != null) {
LogUtils.i("otto", "loginInfo." + loginInfo.toString());
try {
if (loginInfo.getInt("flag") == 0) {
LogUtils.i("otto", "loginInfo." + loginInfo.toString());
PreferenceHelper.getInstance(UIUtils.getContext()).setLoginInfo(loginInfo.toString());
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
class SubWebViewClient extends WebViewClient {
// public boolean onJsAlert(WebView view, String url, String message,
// JsResult result) {
// return super.onJsAlert(view, url, message, result);
// }
// public boolean onJsConfirm(WebView view, String url,
// String message, JsResult result) {
// return super.onJsConfirm(view, url, message, result);
// }
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
mUploadMessage = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
CopyOfSubWebviewActivity.this.startActivityForResult(Intent.createChooser(intent, "File Chooser"), CopyOfSubWebviewActivity.FILECHOOSER_RESULTCODE);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
openFileChooser(uploadMsg);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
CopyOfSubWebviewActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), CopyOfSubWebviewActivity.FILECHOOSER_RESULTCODE);
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.mgwjs.showSource(document.body.innerHTML);");
// findViewById(R.id.error_layout).setVisibility(View.INVISIBLE);
// findViewById(R.id.dialog).setVisibility(View.GONE);
showOrDismissLoadingDialog(false);
if (url.contains("buy:{")) {
view.goBack();
return;
}
if (url.contains("goto:login")) {
view.goBack();
return;
}
if (url.contains("addad:")) {
view.goBack();
return;
}
if (url.contains("editad:")) {
view.goBack();
return;
}
if (url.contains("chat:{")) {
view.goBack();
return;
}
if (url.contains("tel:")) {
view.goBack();
return;
}
if (url.toLowerCase().contains("supplierid:")) {
view.goBack();
return;
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
@SuppressLint("NewApi")
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// // findViewById(R.id.dialog).setVisibility(View.GONE);
// showOrDismissLoadingDialog(true);
// if (url.contains("chat:{")) {
// view.stopLoading();
//
// try {
// JSONObject obj = new JSONObject(url.substring(5));
//
// Intent intent = new Intent(SubWebviewActivity.this,
// ChatActivity.class);
// intent.putExtra("userId", obj.getString("UserID"));
// // intent.putExtra("Name",
// // URLDecoder.decode(obj.getString("Name"), "utf-8"));
// startActivity(intent);
// } catch (JSONException e) {
// e.printStackTrace();
// }
//
// return;
// }
//
// if (url.contains("goto:login")) {
// if (mShowExit)
// return;
// mShowExit = true;
//
// {
// SharedPreferences.Editor sharedata =
// getSharedPreferences("mgw_data", 0).edit();
// sharedata.putString("mgw_data", "");
// sharedata.putString("mgw_pwd", "");
// sharedata.putString("mgw_account", "");
// sharedata.commit();
// // TODO
// // // 百度推送取消绑定
// // Utils.setBind(getApplicationContext(), false);
// BaseApplication.getApplication().logout();
//
// startActivity(new Intent(SubWebviewActivity.this,
// LoginActivity.class));
// AppManager.getAppManager().finishActivity(MainActivity.class);
// mShowExit = false;
// }
// return;
// }
//
// if (url.toLowerCase().contains("supplierid:")) {
// view.stopLoading();
// // String sid = url.substring("supplierid:".length()).trim();
// // Intent intent = new Intent(SubWebviewActivity.this,
// // ShopDetailAndIntroduceActivity.class);
// // intent.putExtra("sid", sid);
// // startActivity(intent);
// UIUtils.showToastSafe(TAG + "supplierid");
// return;
// }
// if (url.contains("tel:")) {
// view.stopLoading();
// Utils.callMobliePhone(Uri.parse(url), false);
// return;
// }
// // 广告添加页start
// if (url.contains("addad:")) {
// view.stopLoading();
// view.reload();
// Intent intent = new Intent(SubWebviewActivity.this,
// AddadActivity.class);
// intent.putExtra("mod", 1);
// startActivity(intent);
// return;
// }
// if (url.contains("editad:")) {
// view.stopLoading();
// view.reload();
// Intent intent = new Intent(SubWebviewActivity.this,
// AddadActivity.class);
// intent.putExtra("adid", url.substring(7, url.length()));
// intent.putExtra("mod", 2);
// startActivity(intent);
// return;
// }
// // 广告添加页end
// if (url.contains("buy:{")) {
// view.stopLoading();
// if (finishPay) {
// finishPay = false;
//
// try {
// mOrderInfo = new JSONObject(url.substring(4));
//
// new
// Builder(SubWebviewActivity.this).setTitle("选择支付方式").setItems(new
// String[] { "微信支付", "支付宝支付" }, new
// DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface arg0, int arg1) {
// finishPay = true;
// if (arg1 == 1) {
// payOrder();
// } else {
//
// mHandler.sendEmptyMessage(MESSAGE_TYPE_WXPAY);
// }
// }
// }).setOnCancelListener(new OnCancelListener() {
//
// @Override
// public void onCancel(DialogInterface dialog) {
// finishPay = true;
// }
// }).show();
// } catch (JSONException e) {
// e.printStackTrace();
// }
// }
// view.stopLoading();
// return;
// }
//
// // findViewById(R.id.dialog).setVisibility(View.VISIBLE);
// showOrDismissLoadingDialog(true);
// Intent intent = new Intent(ShopDetailAndIntroduceActivity.this,
// GoodDetailActivity.class);
// intent.putExtra("sid", sid);
// intent.putExtra("pid", pid);
// intent.putExtra("pname", pname);
// startActivity(intent);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// showOrDismissLoadingDialog(true);
if (url.contains("chat:{")) {
view.stopLoading();
try {
JSONObject obj = new JSONObject(url.substring(5));
Intent intent = new Intent(CopyOfSubWebviewActivity.this, ChatActivity.class);
intent.putExtra("userId", obj.getString("UserID"));
UserFriendBean friendInfo2Bean = UserUtils.getFriendInfo2Bean(obj.getString("UserID"));
if (friendInfo2Bean != null) {
intent.putExtra("userName", friendInfo2Bean.getItems().get(0).getNickName());
}
startActivity(intent);
} catch (JSONException e) {
e.printStackTrace();
}
return true;
}
if (url.contains("goto:login")) {
view.stopLoading();
if (mShowExit)
return true;
mShowExit = true;
{
// SharedPreferences.Editor sharedata =
// getSharedPreferences("mgw_data", 0).edit();
// sharedata.putString("mgw_data", "");
// sharedata.putString("mgw_pwd", "");
// sharedata.putString("mgw_account", "");
// sharedata.commit();
// TODO
// // 百度推送取消绑定
// Utils.setBind(getApplicationContext(), false);
BaseApplication.getApplication().logout(mContext);
//
// startActivity(new Intent(SubWebviewActivity.this,
// LoginActivity.class));
// AppManager.getAppManager().finishActivity(MainActivity.class);
mShowExit = false;
}
return true;
}
if (url.toLowerCase().contains("supplierid:")) {
view.stopLoading();
// String sid = url.substring("supplierid:".length()).trim();
// Intent intent = new Intent(SubWebviewActivity.this,
// ShopDetailAndIntroduceActivity.class);
// intent.putExtra("sid", sid);
// startActivity(intent);
UIUtils.showToastSafe(TAG + "supplierid");
return true;
}
if (url.contains("tel:")) {
view.stopLoading();
Utils.callMobliePhone(Uri.parse(url), false);
return true;
}
// 广告添加页start
if (url.contains("addad:")) {
view.stopLoading();
view.reload();
Intent intent = new Intent(CopyOfSubWebviewActivity.this, AddadActivity.class);
intent.putExtra("mod", 1);
startActivity(intent);
return true;
}
if (url.contains("editad:")) {
view.stopLoading();
view.reload();
Intent intent = new Intent(CopyOfSubWebviewActivity.this, AddadActivity.class);
intent.putExtra("adid", url.substring(7, url.length()));
intent.putExtra("mod", 2);
startActivity(intent);
return true;
}
// 广告添加页end
if (url.contains("buy:{")) {
view.stopLoading();
if (finishPay) {
finishPay = false;
try {
mOrderInfo = new JSONObject(url.substring(4));
new Builder(CopyOfSubWebviewActivity.this).setTitle("选择支付方式").setItems(new String[] { "微信支付", "支付宝支付" }, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
finishPay = true;
if (arg1 == 1) {
payOrder();
} else {
mHandler.sendEmptyMessage(MESSAGE_TYPE_WXPAY);
}
}
}).setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
finishPay = true;
}
}).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
view.stopLoading();
return true;
}
// findViewById(R.id.dialog).setVisibility(View.VISIBLE);
view.loadUrl(url);
showOrDismissLoadingDialog(true);
return true;
}
}
/**
* 调用加载or隐藏progrossDialog
*/
private void showOrDismissLoadingDialog(boolean ishow) {
if (ishow) {
if (dialog != null && !dialog.isShowing() && !isFinishing()) {
dialog.show();
}
} else {
if (dialog != null && dialog.isShowing() && !isFinishing()) {
dialog.dismiss();
dialog = null;
}
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
showOrDismissLoadingDialog(false);
if(mWebView!=null){
mWebView.removeAllViews();
mWebView.destroy();
}
}
class SubWebChromeClient extends WebChromeClient {
// 关键代码,以下函数是没有API文档的,所以在Eclipse中会报错,如果添加了@Override关键字在这里的话。
// For Android 3.0+
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
// i.setType("");
CopyOfSubWebviewActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE);
}
// For Android 3.0+
public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
CopyOfSubWebviewActivity.this.startActivityForResult(Intent.createChooser(i, "File Browser"), FILECHOOSER_RESULTCODE);
}
// For Android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
mUploadMessage = uploadMsg;
// showImgDialog();
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
LogUtils.i(TAG + "ANDROID_LAB", "TITLE=" + title);
((TextView) findViewById(R.id.title)).setText(title);
}
}
boolean mShowExit = false;
/**
* 退出登录
*
*/
protected void showDialog() {
AlertDialog.Builder builder = new Builder(this);
builder.setMessage("是否退出该账号");
builder.setTitle("美顾问");
builder.setPositiveButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// SharedPreferences.Editor sharedata =
// getSharedPreferences("mgw_data", 0).edit();
// sharedata.putString("mgw_data", "");
// sharedata.putString("mgw_pwd", "");
// sharedata.putString("mgw_account", "");
// sharedata.commit();
// TODO
BaseApplication.getApplication().logout(mContext);
// ((GlobelElements) getApplicationContext()).m_user_id = "";
// startActivity(new Intent(SubWebviewActivity.this,
// LoginActivity.class));
// finish();
// AppManager.getAppManager().finishActivity(MainActivity.class);
mShowExit = false;
}
});
builder.setNegativeButton("返回", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
mShowExit = false;
}
});
builder.create().show();
}
boolean finishPay = true;
JSONObject mOrderInfo;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_TYPE_NOWX:
UIUtils.showToastWithAlertPic("微信未安装或版本不支持微支付,请检查");
break;
case MESSAGE_TYPE_PARAMERR:
UIUtils.showToastWithAlertPic("当前版本不支持,请检查");
break;
case MESSAGE_TYPE_WXPAY:
PaydWX();
break;
default:
finishPay = true;
break;
}
}
};
private Dialog createLoadingDialog;
private Dialog dialog;
/**
* 微信支付
*
*/
void PaydWX() {
try {
IWXAPI api = WXAPIFactory.createWXAPI(this, Define_C.APP_ID);
if (!api.isWXAppInstalled() || !api.isWXAppSupportAPI()) {
UIUtils.showToastWithAlertPic("微信未安装或版本不支持微支付,请检查");
return;
}
JSONObject item = new JSONObject();
item.put("trade_no", mOrderInfo.getString("out_trade_no"));
item.put("amount", mOrderInfo.getString("total_fee"));
String strpname = null;
try {
strpname = URLDecoder.decode(mOrderInfo.getString("subject"), "UTF-8").replaceAll(" ", "");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
SharedPreferences sp = getSharedPreferences("mgw_data", 0);
if (mOrderInfo.getInt("Notetype") == 0) {
item.put("notify_url", sp.getString("wz_tenpay", "http://pay.mgw.cc/WZ/tenpay_notify_url.aspx"));
// item.put("pname", "美顾问城市联盟订单");
item.put("pname", strpname);
} else if (mOrderInfo.getInt("Notetype") == 1) {
item.put("notify_url", sp.getString("xx_tenpay", "http://pay.mgw.cc/XX/tenpay_notify_url.aspx"));
// item.put("pname", "美顾问城市联盟店内消费");
item.put("pname", strpname);
} else if (mOrderInfo.getInt("Notetype") == 2) {
item.put("notify_url", sp.getString("mall_tenpay", "http://pay.mgw.cc/Mall/tenpay_notify_url.aspx"));
// item.put("pname", "美顾问品牌商城订单");
item.put("pname", strpname);
} else {
mHandler.sendEmptyMessage(MESSAGE_TYPE_PARAMERR);
return;
}
new WXPayRequest1(CopyOfSubWebviewActivity.this, item).WXPay();
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 支付订单
*
*/
void payOrder() {
try {
String info = getNewOrderInfo();
if (info.equals("")) {
return;
}
String sign = Rsa.sign(info, Keys.PRIVATE);
sign = URLEncoder.encode(sign);
info += "&sign=\"" + sign + "\"&" + getSignType();
final String orderInfo = info;
new Thread() {
@Override
public void run() {
AliPay alipay = new AliPay(CopyOfSubWebviewActivity.this, mHandler);
String result = alipay.pay(orderInfo);
Message msg = new Message();
msg.what = 0;
msg.obj = result;
mHandler.sendMessage(msg);
}
}.start();
} catch (Exception ex) {
}
}
private String getSignType() {
return "sign_type=\"RSA\"";
}
/**
* 获得新订单的信息
*
* @return
* @throws JSONException
*/
private String getNewOrderInfo() throws JSONException {
double fee = mOrderInfo.getDouble("total_fee");
String strFee = String.format("%.2f", fee);
StringBuilder sb = new StringBuilder();
sb.append("partner=\"");
sb.append(Keys.DEFAULT_PARTNER);
sb.append("\"&out_trade_no=\"");
sb.append(mOrderInfo.getString("out_trade_no"));
SharedPreferences sp = getSharedPreferences("mgw_data", 0);
if (mOrderInfo.getInt("Notetype") == 0) {
sb.append("\"&subject=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问城市联盟订单");
sb.append("\"&body=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问城市联盟订单");
sb.append("\"&total_fee=\"");
sb.append(strFee);
sb.append("\"¬ify_url=\"");
sb.append(URLEncoder.encode(sp.getString("wz_alipay", "http://pay.mgw.cc/WZ/alipay_notify_url.aspx")));
sb.append("\"&service=\"mobile.securitypay.pay");
sb.append("\"&_input_charset=\"UTF-8");
sb.append("\"&return_url=\"");
sb.append(URLEncoder.encode(sp.getString("wz_alipay_return_url", "http://pay.mgw.cc/WZ/alipay_return_url.aspx")));
} else if (mOrderInfo.getInt("Notetype") == 1) {
sb.append("\"&subject=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问城市联盟店内消费");
sb.append("\"&body=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问城市联盟店内消费");
sb.append("\"&total_fee=\"");
sb.append(strFee);
sb.append("\"¬ify_url=\"");
sb.append(URLEncoder.encode(sp.getString("xx_alipay", "http://pay.mgw.cc/XX/alipay_notify_url.aspx")));
sb.append("\"&service=\"mobile.securitypay.pay");
sb.append("\"&_input_charset=\"UTF-8");
sb.append("\"&return_url=\"");
sb.append(URLEncoder.encode(sp.getString("xx_alipay_return_url", "http://pay.mgw.cc/XX/alipay_return_url.aspx")));
} else if (mOrderInfo.getInt("Notetype") == 2) {
sb.append("\"&subject=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问品牌商城订单");
sb.append("\"&body=\"");
sb.append(mOrderInfo.getString("subject"));
// sb.append("美顾问品牌商城订单");
sb.append("\"&total_fee=\"");
sb.append(strFee);
sb.append("\"¬ify_url=\"");
sb.append(URLEncoder.encode(sp.getString("mall_alipay", "http://pay.mgw.cc/Mall/alipay_notify_url.aspx")));
sb.append("\"&service=\"mobile.securitypay.pay");
sb.append("\"&_input_charset=\"UTF-8");
sb.append("\"&return_url=\"");
sb.append(URLEncoder.encode(sp.getString("mall_alipay_return_url", "http://pay.mgw.cc/Mall/alipay_return_url.aspx")));
} else {
mHandler.sendEmptyMessage(MESSAGE_TYPE_PARAMERR);
return "";
}
// 网址需要做URL编码
sb.append("\"&payment_type=\"1");
sb.append("\"&seller_id=\"");
sb.append(Keys.DEFAULT_SELLER);
// 如果show_url值为空,可不传
// sb.append("\"&show_url=\"");
sb.append("\"&it_b_pay=\"1m");
sb.append("\"");
return new String(sb);
}
@Override
protected void onResume() {
super.onResume();
// findViewById(R.id.dialog).setVisibility(View.GONE);
showOrDismissLoadingDialog(false);
}
@Override
protected void onRestart() {
super.onRestart();
// mWebView.reload();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// LinearLayout layout = (LinearLayout)
// findViewById(R.id.share_layout);
// layout.setVisibility(View.INVISIBLE);
if (url.contains("bind")) {
UIUtils.showToastSafe("需要绑定店铺");
return true;
}
if (mWebType == 1 || mWebType == 6) {
if (mWebView.canGoBack()) {
// 返回键退回
mWebView.goBack();
return true;
} else {
finish();
return true;
}
}
if (m_back_url.length() > 0) {
mWebView.loadUrl(m_back_url);
return true;
}
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.refresh:
mWebView.loadUrl(m_back_url);
break;
case R.id.back:
if (mWebType == 1 || mWebType == 6) {
InputTools.TimerHideKeyboard(mWebView);
if (mWebView.canGoBack()) {
// 返回键退回
mWebView.goBack();
return;
} else {
finish();
return;
}
}
if (m_back_url.length() > 0) {
mWebView.loadUrl(m_back_url);
return;
}
finish();
break;
case R.id.mainpage:
InputTools.TimerHideKeyboard(mWebView);
finish();
break;
}
}
/**
* webview设置
*
* @param webview
* Created by huyan
*/
protected void webViewSetting(final WebView webview) {
WebSettings settings = webview.getSettings();
// 适应屏幕
// settings.setUseWideViewPort(true);
// settings.setSupportZoom(true);
// settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
settings.setJavaScriptEnabled(true);
settings.setLoadWithOverviewMode(true);
// TODO
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webview.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { // 表示按返回键
webview.goBack(); // 后退
return true; // 已处理
}
}
return false;
}
});
webview.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return true;
}
});
}
}