package com.hupu.games.pay; import java.util.HashMap; import java.util.Map; import org.json.JSONObject; import android.app.Activity; import android.util.Log; public class Result extends Activity { private static final Map<String, String> sError; public static String sResult; static { sError = new HashMap<String, String>(); sError.put("9000", "操作成功"); sError.put("4000", "系统异常"); sError.put("4001", "数据格式不正确?"); sError.put("4003", "该用户绑定的支付宝账户被冻结或不允许支付"); sError.put("4004", "该用户已解除绑定"); sError.put("4005", "绑定失败或没有绑定?"); sError.put("4006", "订单支付失败"); sError.put("4010", "重新绑定账户"); sError.put("6000", "支付服务正在进行升级操作"); sError.put("6001", "用户中途取消支付操作"); sError.put("7001", "网页支付失败"); } public static String getResult() { if (sResult !=null) { String src = sResult.replace("{", ""); src = src.replace("}", ""); return getContent(src, "resultStatus=", ";memo"); }else { //其他不成功的时候返回 return "hupu_pay_error"; } } // public static void parseResult() { // String resultStatus = null; // String memo = null; // String result = null; // boolean isSignOk = false; // try { // String src = sResult.replace("{", ""); // src = src.replace("}", ""); // String rs = getContent(src, "resultStatus=", ";memo"); // if (sError.containsKey(rs)) { // resultStatus = sError.get(rs); // } else { // resultStatus = "其他错误"; // } // resultStatus += "(" + rs + ")"; // // memo = getContent(src, "memo=", ";result"); // result = getContent(src, "result=", null); // isSignOk = checkSign(result); // } catch (Exception e) { // e.printStackTrace(); // } // } // // private static boolean checkSign(String result) { // boolean retVal = false; // try { // JSONObject json = string2JSON(result, "&"); // // int pos = result.indexOf("&sign_type="); // String signContent = result.substring(0, pos); // // String signType = json.getString("sign_type"); // signType = signType.replace("\"", ""); // // String sign = json.getString("sign"); // sign = sign.replace("\"", ""); // // if (signType.equalsIgnoreCase("RSA")) { // retVal = Rsa.doCheck(signContent, sign, Keys.PUBLIC); // } // } catch (Exception e) { // e.printStackTrace(); // Log.i("Result", "Exception =" + e); // } // Log.i("Result", "checkSign =" + retVal); // return retVal; // } public static JSONObject string2JSON(String src, String split) { JSONObject json = new JSONObject(); try { String[] arr = src.split(split); for (int i = 0; i < arr.length; i++) { String[] arrKey = arr[i].split("="); json.put(arrKey[0], arr[i].substring(arrKey[0].length() + 1)); } } catch (Exception e) { e.printStackTrace(); } return json; } private static String getContent(String src, String startTag, String endTag) { String content = src; int start = src.indexOf(startTag); start += startTag.length(); try { if (endTag != null) { int end = src.indexOf(endTag); content = src.substring(start, end); } else { content = src.substring(start); } } catch (Exception e) { e.printStackTrace(); } return content; } }