Bitliker пре 8 година
родитељ
комит
1fcde617ba

+ 1 - 2
app_modular/apputils/build.gradle

@@ -24,6 +24,5 @@ dependencies {
     compile deps.appcompatV7
     compile project(':common')
     compile project(':network')
-    //接入微信支付
-//    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
+
 }

BIN
app_modular/apputils/libs/alipaySdk-20170922.jar


+ 5 - 13
app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java

@@ -187,8 +187,8 @@ public class SelectNetAcitivty extends OABaseActivity {
         String fieldKeyLike = null;
         for (int i = 0; i < dbfinds.size(); i++) {
             config = dbfinds.getJSONObject(i);
-            String dbGridField = JSONUtil.getText(config, "dbGridField", "ds_dbfindfield");
-            String field = JSONUtil.getText(config, "field", "ds_gridfield");
+            String dbGridField = JSONUtil.getText(config, "dbGridField","ds_dbfindfield");
+            String field = JSONUtil.getText(config, "field","ds_gridfield");
             if (!StringUtil.isEmpty(dbGridField) && !StringUtil.isEmpty(field)) {
                 if (field.equals(fieldKey)) {
                     fieldKeyLike = dbGridField;
@@ -200,25 +200,17 @@ public class SelectNetAcitivty extends OABaseActivity {
         Bean b = null;
         List<Bean> models = new ArrayList<>();
         Map<String, String> jsonMap = null;
-//        StringBuilder builder = new StringBuilder();
         for (int i = 0; i < data.size(); i++) {
             o = data.getJSONObject(i);
             b = new Bean();
-
-//            builder.append(JSONUtil.getText(o, fieldKeyLike) + ",");
+            b.name = JSONUtil.getText(o, fieldKeyLike);
             jsonMap = new HashMap<>();
             for (Map.Entry<String, String> e : configMap.entrySet()) {
-                String value = JSONUtil.getText(o, e.getKey());
-                jsonMap.put(e.getValue(), value);
-//                builder.append(JSONUtil.getText(o, value + ","));
+                jsonMap.put(e.getValue(), JSONUtil.getText(o, e.getKey()));
             }
-//            StringUtil.removieLast(builder);
-            b.name = JSONUtil.getText(o, fieldKeyLike) ;
             b.json = JSONUtil.map2JSON(jsonMap);
-            if (!StringUtil.isEmpty(b.name)) {
+            if (!StringUtil.isEmpty(b.name))
                 models.add(b);
-            }
-//            builder.delete(0, builder.length() - 1);
         }
         if (mAdapter == null) {
             mAdapter = new ListAdapter(models);

+ 0 - 106
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/AliLoadPlayApi.java

@@ -1,106 +0,0 @@
-package com.modular.apputils.utils.playsdk;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.text.TextUtils;
-
-
-import com.alipay.sdk.app.EnvUtils;
-import com.alipay.sdk.app.PayTask;
-import com.common.LogUtil;
-import com.core.utils.ToastUtil;
-import com.modular.apputils.listener.OnPlayListener;
-
-import java.util.Map;
-
-/**
- * 阿里支付封装,本地获取订单号
- * Created by Bitlike on 2017/11/13.
- */
-
-public class AliLoadPlayApi {
-
-	//TODO 申请到的应用对应appid
-	public final String APPID = "2016081900289790";
-
-	/** 商户私钥,pkcs8格式 */
-	/** 如下私钥,RSA2_PRIVATE 或者 RSA_PRIVATE 只需要填入一个 */
-	/** 如果商户两个都设置了,优先使用 RSA2_PRIVATE */
-	/** RSA2_PRIVATE 可以保证商户交易在更加安全的环境下进行,建议使用 RSA2_PRIVATE */
-	/** 获取 RSA2_PRIVATE,建议使用支付宝提供的公私钥生成工具生成, */
-	/**
-	 * 工具地址:https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1
-	 */
-
-	/**
-	 * TODO 支付宝需要的私钥,这个需要服务来处理
-	 * 商户私钥,pkcs8格式
-	 * 如下私钥,RSA2_PRIVATE 或者 RSA_PRIVATE 只需要填入一个
-	 * 如果商户两个都设置了,优先使用 RSA2_PRIVATE
-	 * SA2_PRIVATE 可以保证商户交易在更加安全的环境下进行,建议使用 RSA2_PRIVATE
-	 * 获取 RSA2_PRIVATE,建议使用支付宝提供的公私钥生成工具生成:
-	 *
-	 * @link(https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1)
-	 */
-	public static final String RSA2_PRIVATE = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCAFuBe4C2UlLUFrllXmtxMF2MvCdfhatXsEYUQRsYV2nrj3XKcceDd44H1mQt0TzkmjfoeIe/ec7MNVrKUmGrAft8lFbxSH0aUXm+3QURQtsaCjd8yxkuUkbQ9eRqyix4/ayGZD3Sn7gHmqL576aslfNNo7XhH+GT/7kYWXE3aqkgnm0m5CWxVpcXyRysi0ToTGlszTO0nnhUduQVra6bAh7uGU80O1a+1JIDJKVg2Z2DcSx0pJ9CDjiar4u98Pwhdp+e+oohCTCIygv8PRbTZocOz2N843wTe3ZlNqKvdzKXu1t/w56bidgZ8TI6SI6FHVSyzwvUl5WypIyMQpyrdAgMBAAECggEAKud+wEjW+63T9NMxmeaFY/dxgZAKf7cJcMltiMYsE6XbA/hpK335lFlgbqOU8qCWxBNKdE1py1l14EHqD1v+ZfwZQpLFQby4J3p6cSerel2+oHxlBtzk9B7aAL1P8/4lY5i+6EYFDTrr6BcdtuPOMABf0AW7BGBvdEqbr2G7skJbLbFytLP5Wp7mSMFy/zq5+nVVHXUkbHYepLq2oXUyZVRF75ldG/TVx0fTn6F+nObOe1yTRiAjst8b02xhnNPV0d0Ia5IzXkM2Cy3P2Mr6pGMi/0h0xl7ouk5gDiXKp0wgoCGQe84TSBgbTiRAOxlbj+nynLozgHGUUZEgr0RpAQKBgQDhaZPA3Lq3D3WqRSkQDCscJj/N0Ex88XAOhpZO4xaPHMuYp3cdrSJCbAdchoLCG/QY2N3zSu5NRz7U+LFx6WKkHGJhvoPLnNn9uvhGwHOqbWVwdKPubwbf1H4wQcm1mZiqDQ/WPKDWby75NcAb98SIwLZUdPEZ0y+jLYNZQxZ38wKBgQCReHiaVAUHM/4Xe2UPI4zR7E1POFb+X6qJosgVvNACbqp3KeED2CmEd8n7fzuBOVxie9V7kAEMV+RrO65CgRJI8k+qeLggF7+G0W7KJLYy64Pjo3VENRcJIZ0M6XhsCbi+KiYBJtvo0k4aQ5GBKh6lGxS9THpYBuVPyk0aZ6DV7wKBgQCXpkr0Vsv7Ophj7FGa7UTXlFgapEfBS0GjVCKtghP8RlgnJIt72K4S19EAC7LO2rWXPdfcxY2bShJYf9QJmgV1+W6q6dyLUMRL8szz9KgcgarcRGzBjcqnLbOTzb7hwSs3RMBh1royaezFVscfScrcYiKIoYBPaohDFOyoUf08xwKBgGQYBrP59/O63Kz/pMvD5FNVSuSlmYYyAT/vF8mNP3tM9lJEKKXiiL6zRfGc3C7Qbzb8iioZLf92Qp9eU0tDUHeM8zATHG5IqOp1FMxWcl+bGgb6I+got4765/tIcim0jr+adMf6GvqaKk98CpRbjPaCKcUO6GfFZud+BYuTnmFVAoGBAMTjA6Lds8ORSNvYOR7G56jlxilLwsiNrc/zLacXV44BKICvavmUaSGelwkgBotcSBQyE5ER83tNkTyYcKOm2cbmGuNb5fA91xzgyAOqmVxPO2qGt8MGVcYJtTICcD43hSTfNUdZArXok59tBHyyDF3NJg9qKbOqB0Pe6oU3l60M";
-	public static final String RSA_PRIVATE = "";
-
-
-	/**
-	 * 这里只是为了方便直接向商户展示支付宝的整个支付流程;所以Demo中加签过程直接放在客户端完成;
-	 * 真实App里,privateKey等数据严禁放在客户端,加签过程务必要放在服务端完成
-	 * 防止商户私密数据泄露,造成不必要的资金损失,及面临各种安全风险
-	 * orderInfo的获取必须来自服务端
-	 *
-	 * @param ct             上下文
-	 * @param onPlayListener 回调
-	 */
-	private void alipay(final Activity ct, final OnPlayListener onPlayListener) {
-		EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
-		if (TextUtils.isEmpty(APPID) || (TextUtils.isEmpty(RSA2_PRIVATE) && TextUtils.isEmpty(RSA_PRIVATE))) {
-			ToastUtil.showToast(ct, "需要配置APPID | RSA_PRIVATE");
-			return;
-		}
-		boolean rsa2 = (RSA2_PRIVATE.length() > 0);
-		Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, rsa2);
-		String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
-		String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE;
-		String sign = OrderInfoUtil2_0.getSign(params, privateKey, rsa2);
-		final String orderInfo = orderParam + "&" + sign;
-		Runnable payRunnable = new Runnable() {
-			@Override
-			public void run() {
-				PayTask alipay = new PayTask(ct);
-				LogUtil.i("orderInfo=" + orderInfo);
-				Map<String, String> result = alipay.payV2(orderInfo, true);
-				LogUtil.i(result.toString());
-				Message msg = new Message();
-				msg.what = 11;
-				msg.obj = result;
-
-			}
-		};
-		Thread payThread = new Thread(payRunnable);
-		payThread.start();
-	}
-
-
-	//TODO 本地获取OrderInfo ,发布时候需要通过接口获取
-	public String getLoadOrderInfo() {
-		EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
-		boolean rsa2 = (RSA2_PRIVATE.length() > 0);
-		Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, rsa2);
-		String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
-		String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE;
-		String sign = OrderInfoUtil2_0.getSign(params, privateKey, rsa2);
-		String orderInfo = orderParam + "&" + sign;
-		return orderInfo;
-	}
-
-
-
-
-}

+ 11 - 12
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/AliPlay.java

@@ -7,7 +7,6 @@ import android.os.Looper;
 import android.os.Message;
 import android.text.TextUtils;
 
-import com.alipay.sdk.app.PayTask;
 import com.common.LogUtil;
 import com.common.thread.ThreadPool;
 import com.modular.apputils.listener.OnPlayListener;
@@ -81,17 +80,17 @@ public class AliPlay extends Handler {
 		ThreadPool.getThreadPool().addTask(new Runnable() {
 			@Override
 			public void run() {
-				PayTask alipay = new PayTask(ct);
-				LogUtil.i("orderInfo=" + orderInfo);
-				Map<String, String> result = alipay.payV2(orderInfo, true);
-				LogUtil.i(result.toString());
-				Message msg = new Message();
-				Bundle bundle = new Bundle();
-				bundle.putSerializable("onPlayListener", onPlayListener);
-				msg.setData(bundle);
-				msg.what = SDK_PAY_FLAG;
-				msg.obj = result;
-				sendMessage(msg);
+//				PayTask alipay = new PayTask(ct);
+//				LogUtil.i("orderInfo=" + orderInfo);
+//				Map<String, String> result = alipay.payV2(orderInfo, true);
+//				LogUtil.i(result.toString());
+//				Message msg = new Message();
+//				Bundle bundle = new Bundle();
+//				bundle.putSerializable("onPlayListener", onPlayListener);
+//				msg.setData(bundle);
+//				msg.what = SDK_PAY_FLAG;
+//				msg.obj = result;
+//				sendMessage(msg);
 			}
 		});
 	}

+ 0 - 268
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/Base64.java

@@ -1,268 +0,0 @@
-package com.modular.apputils.utils.playsdk;
-
-public final class Base64 {
-
-	private static final int BASELENGTH = 128;
-	private static final int LOOKUPLENGTH = 64;
-	private static final int TWENTYFOURBITGROUP = 24;
-	private static final int EIGHTBIT = 8;
-	private static final int SIXTEENBIT = 16;
-	private static final int FOURBYTE = 4;
-	private static final int SIGN = -128;
-	private static char PAD = '=';
-	private static byte[] base64Alphabet = new byte[BASELENGTH];
-	private static char[] lookUpBase64Alphabet = new char[LOOKUPLENGTH];
-
-	static {
-		for (int i = 0; i < BASELENGTH; ++i) {
-			base64Alphabet[i] = -1;
-		}
-		for (int i = 'Z'; i >= 'A'; i--) {
-			base64Alphabet[i] = (byte) (i - 'A');
-		}
-		for (int i = 'z'; i >= 'a'; i--) {
-			base64Alphabet[i] = (byte) (i - 'a' + 26);
-		}
-
-		for (int i = '9'; i >= '0'; i--) {
-			base64Alphabet[i] = (byte) (i - '0' + 52);
-		}
-
-		base64Alphabet['+'] = 62;
-		base64Alphabet['/'] = 63;
-
-		for (int i = 0; i <= 25; i++) {
-			lookUpBase64Alphabet[i] = (char) ('A' + i);
-		}
-
-		for (int i = 26, j = 0; i <= 51; i++, j++) {
-			lookUpBase64Alphabet[i] = (char) ('a' + j);
-		}
-
-		for (int i = 52, j = 0; i <= 61; i++, j++) {
-			lookUpBase64Alphabet[i] = (char) ('0' + j);
-		}
-		lookUpBase64Alphabet[62] = (char) '+';
-		lookUpBase64Alphabet[63] = (char) '/';
-
-	}
-
-	private static boolean isWhiteSpace(char octect) {
-		return (octect == 0x20 || octect == 0xd || octect == 0xa || octect == 0x9);
-	}
-
-	private static boolean isPad(char octect) {
-		return (octect == PAD);
-	}
-
-	private static boolean isData(char octect) {
-		return (octect < BASELENGTH && base64Alphabet[octect] != -1);
-	}
-
-	/**
-	 * Encodes hex octects into Base64
-	 * 
-	 * @param binaryData
-	 *            Array containing binaryData
-	 * @return Encoded Base64 array
-	 */
-	public static String encode(byte[] binaryData) {
-
-		if (binaryData == null) {
-			return null;
-		}
-
-		int lengthDataBits = binaryData.length * EIGHTBIT;
-		if (lengthDataBits == 0) {
-			return "";
-		}
-
-		int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
-		int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
-		int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1
-				: numberTriplets;
-		char encodedData[] = null;
-
-		encodedData = new char[numberQuartet * 4];
-
-		byte k = 0, l = 0, b1 = 0, b2 = 0, b3 = 0;
-
-		int encodedIndex = 0;
-		int dataIndex = 0;
-
-		for (int i = 0; i < numberTriplets; i++) {
-			b1 = binaryData[dataIndex++];
-			b2 = binaryData[dataIndex++];
-			b3 = binaryData[dataIndex++];
-
-			l = (byte) (b2 & 0x0f);
-			k = (byte) (b1 & 0x03);
-
-			byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-					: (byte) ((b1) >> 2 ^ 0xc0);
-			byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-					: (byte) ((b2) >> 4 ^ 0xf0);
-			byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6)
-					: (byte) ((b3) >> 6 ^ 0xfc);
-
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[(l << 2) | val3];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[b3 & 0x3f];
-		}
-
-		// form integral number of 6-bit groups
-		if (fewerThan24bits == EIGHTBIT) {
-			b1 = binaryData[dataIndex];
-			k = (byte) (b1 & 0x03);
-			
-			byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-					: (byte) ((b1) >> 2 ^ 0xc0);
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[k << 4];
-			encodedData[encodedIndex++] = PAD;
-			encodedData[encodedIndex++] = PAD;
-		} else if (fewerThan24bits == SIXTEENBIT) {
-			b1 = binaryData[dataIndex];
-			b2 = binaryData[dataIndex + 1];
-			l = (byte) (b2 & 0x0f);
-			k = (byte) (b1 & 0x03);
-
-			byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2)
-					: (byte) ((b1) >> 2 ^ 0xc0);
-			byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4)
-					: (byte) ((b2) >> 4 ^ 0xf0);
-
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[val1];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[val2 | (k << 4)];
-			encodedData[encodedIndex++] = lookUpBase64Alphabet[l << 2];
-			encodedData[encodedIndex++] = PAD;
-		}
-
-		return new String(encodedData);
-	}
-
-	/**
-	 * Decodes Base64 data into octects
-	 * 
-	 * @param encoded
-	 *            string containing Base64 data
-	 * @return Array containind decoded data.
-	 */
-	public static byte[] decode(String encoded) {
-
-		if (encoded == null) {
-			return null;
-		}
-
-		char[] base64Data = encoded.toCharArray();
-		// remove white spaces
-		int len = removeWhiteSpace(base64Data);
-
-		if (len % FOURBYTE != 0) {
-			return null;// should be divisible by four
-		}
-
-		int numberQuadruple = (len / FOURBYTE);
-
-		if (numberQuadruple == 0) {
-			return new byte[0];
-		}
-
-		byte decodedData[] = null;
-		byte b1 = 0, b2 = 0, b3 = 0, b4 = 0;
-		char d1 = 0, d2 = 0, d3 = 0, d4 = 0;
-
-		int i = 0;
-		int encodedIndex = 0;
-		int dataIndex = 0;
-		decodedData = new byte[(numberQuadruple) * 3];
-
-		for (; i < numberQuadruple - 1; i++) {
-
-			if (!isData((d1 = base64Data[dataIndex++]))
-					|| !isData((d2 = base64Data[dataIndex++]))
-					|| !isData((d3 = base64Data[dataIndex++]))
-					|| !isData((d4 = base64Data[dataIndex++]))) {
-				return null;
-			}// if found "no data" just return null
-
-			b1 = base64Alphabet[d1];
-			b2 = base64Alphabet[d2];
-			b3 = base64Alphabet[d3];
-			b4 = base64Alphabet[d4];
-
-			decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-			decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-			decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-		}
-
-		if (!isData((d1 = base64Data[dataIndex++]))
-				|| !isData((d2 = base64Data[dataIndex++]))) {
-			return null;// if found "no data" just return null
-		}
-
-		b1 = base64Alphabet[d1];
-		b2 = base64Alphabet[d2];
-
-		d3 = base64Data[dataIndex++];
-		d4 = base64Data[dataIndex++];
-		if (!isData((d3)) || !isData((d4))) {// Check if they are PAD characters
-			if (isPad(d3) && isPad(d4)) {
-				if ((b2 & 0xf) != 0)// last 4 bits should be zero
-				{
-					return null;
-				}
-				byte[] tmp = new byte[i * 3 + 1];
-				System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-				tmp[encodedIndex] = (byte) (b1 << 2 | b2 >> 4);
-				return tmp;
-			} else if (!isPad(d3) && isPad(d4)) {
-				b3 = base64Alphabet[d3];
-				if ((b3 & 0x3) != 0)// last 2 bits should be zero
-				{
-					return null;
-				}
-				byte[] tmp = new byte[i * 3 + 2];
-				System.arraycopy(decodedData, 0, tmp, 0, i * 3);
-				tmp[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-				tmp[encodedIndex] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-				return tmp;
-			} else {
-				return null;
-			}
-		} else { // No PAD e.g 3cQl
-			b3 = base64Alphabet[d3];
-			b4 = base64Alphabet[d4];
-			decodedData[encodedIndex++] = (byte) (b1 << 2 | b2 >> 4);
-			decodedData[encodedIndex++] = (byte) (((b2 & 0xf) << 4) | ((b3 >> 2) & 0xf));
-			decodedData[encodedIndex++] = (byte) (b3 << 6 | b4);
-
-		}
-
-		return decodedData;
-	}
-
-	/**
-	 * remove WhiteSpace from MIME containing encoded Base64 data.
-	 * 
-	 * @param data
-	 *            the byte array of base64 data (with WS)
-	 * @return the new length
-	 */
-	private static int removeWhiteSpace(char[] data) {
-		if (data == null) {
-			return 0;
-		}
-
-		// count characters that's not whitespace
-		int newSize = 0;
-		int len = data.length;
-		for (int i = 0; i < len; i++) {
-			if (!isWhiteSpace(data[i])) {
-				data[newSize++] = data[i];
-			}
-		}
-		return newSize;
-	}
-}

+ 0 - 222
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/OrderInfoUtil2_0.java

@@ -1,222 +0,0 @@
-package com.modular.apputils.utils.playsdk;
-
-import com.alipay.sdk.app.EnvUtils;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Random;
-
-
-public class OrderInfoUtil2_0 {
-	//TODO 申请到的应用对应appid
-	public final String APPID = "2016081900289790";
-
-	/** 商户私钥,pkcs8格式 */
-	/** 如下私钥,RSA2_PRIVATE 或者 RSA_PRIVATE 只需要填入一个 */
-	/** 如果商户两个都设置了,优先使用 RSA2_PRIVATE */
-	/** RSA2_PRIVATE 可以保证商户交易在更加安全的环境下进行,建议使用 RSA2_PRIVATE */
-	/** 获取 RSA2_PRIVATE,建议使用支付宝提供的公私钥生成工具生成, */
-	/**
-	 * 工具地址:https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1
-	 */
-
-	/**
-	 * TODO 支付宝需要的私钥,这个需要服务来处理
-	 * 商户私钥,pkcs8格式
-	 * 如下私钥,RSA2_PRIVATE 或者 RSA_PRIVATE 只需要填入一个
-	 * 如果商户两个都设置了,优先使用 RSA2_PRIVATE
-	 * SA2_PRIVATE 可以保证商户交易在更加安全的环境下进行,建议使用 RSA2_PRIVATE
-	 * 获取 RSA2_PRIVATE,建议使用支付宝提供的公私钥生成工具生成:
-	 *
-	 * @link(https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1)
-	 */
-	public static final String RSA2_PRIVATE = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCAFuBe4C2UlLUFrllXmtxMF2MvCdfhatXsEYUQRsYV2nrj3XKcceDd44H1mQt0TzkmjfoeIe/ec7MNVrKUmGrAft8lFbxSH0aUXm+3QURQtsaCjd8yxkuUkbQ9eRqyix4/ayGZD3Sn7gHmqL576aslfNNo7XhH+GT/7kYWXE3aqkgnm0m5CWxVpcXyRysi0ToTGlszTO0nnhUduQVra6bAh7uGU80O1a+1JIDJKVg2Z2DcSx0pJ9CDjiar4u98Pwhdp+e+oohCTCIygv8PRbTZocOz2N843wTe3ZlNqKvdzKXu1t/w56bidgZ8TI6SI6FHVSyzwvUl5WypIyMQpyrdAgMBAAECggEAKud+wEjW+63T9NMxmeaFY/dxgZAKf7cJcMltiMYsE6XbA/hpK335lFlgbqOU8qCWxBNKdE1py1l14EHqD1v+ZfwZQpLFQby4J3p6cSerel2+oHxlBtzk9B7aAL1P8/4lY5i+6EYFDTrr6BcdtuPOMABf0AW7BGBvdEqbr2G7skJbLbFytLP5Wp7mSMFy/zq5+nVVHXUkbHYepLq2oXUyZVRF75ldG/TVx0fTn6F+nObOe1yTRiAjst8b02xhnNPV0d0Ia5IzXkM2Cy3P2Mr6pGMi/0h0xl7ouk5gDiXKp0wgoCGQe84TSBgbTiRAOxlbj+nynLozgHGUUZEgr0RpAQKBgQDhaZPA3Lq3D3WqRSkQDCscJj/N0Ex88XAOhpZO4xaPHMuYp3cdrSJCbAdchoLCG/QY2N3zSu5NRz7U+LFx6WKkHGJhvoPLnNn9uvhGwHOqbWVwdKPubwbf1H4wQcm1mZiqDQ/WPKDWby75NcAb98SIwLZUdPEZ0y+jLYNZQxZ38wKBgQCReHiaVAUHM/4Xe2UPI4zR7E1POFb+X6qJosgVvNACbqp3KeED2CmEd8n7fzuBOVxie9V7kAEMV+RrO65CgRJI8k+qeLggF7+G0W7KJLYy64Pjo3VENRcJIZ0M6XhsCbi+KiYBJtvo0k4aQ5GBKh6lGxS9THpYBuVPyk0aZ6DV7wKBgQCXpkr0Vsv7Ophj7FGa7UTXlFgapEfBS0GjVCKtghP8RlgnJIt72K4S19EAC7LO2rWXPdfcxY2bShJYf9QJmgV1+W6q6dyLUMRL8szz9KgcgarcRGzBjcqnLbOTzb7hwSs3RMBh1royaezFVscfScrcYiKIoYBPaohDFOyoUf08xwKBgGQYBrP59/O63Kz/pMvD5FNVSuSlmYYyAT/vF8mNP3tM9lJEKKXiiL6zRfGc3C7Qbzb8iioZLf92Qp9eU0tDUHeM8zATHG5IqOp1FMxWcl+bGgb6I+got4765/tIcim0jr+adMf6GvqaKk98CpRbjPaCKcUO6GfFZud+BYuTnmFVAoGBAMTjA6Lds8ORSNvYOR7G56jlxilLwsiNrc/zLacXV44BKICvavmUaSGelwkgBotcSBQyE5ER83tNkTyYcKOm2cbmGuNb5fA91xzgyAOqmVxPO2qGt8MGVcYJtTICcD43hSTfNUdZArXok59tBHyyDF3NJg9qKbOqB0Pe6oU3l60M";
-	public static final String RSA_PRIVATE = "";
-
-	public String getLoadOrderInfo() {
-		boolean rsa2 = (RSA2_PRIVATE.length() > 0);
-		Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, rsa2);
-		String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
-		String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE;
-		String sign = OrderInfoUtil2_0.getSign(params, privateKey, rsa2);
-		String orderInfo = orderParam + "&" + sign;
-		return orderInfo;
-	}
-
-	/**
-	 * 构造授权参数列表
-	 *
-	 * @param pid
-	 * @param app_id
-	 * @param target_id
-	 * @return
-	 */
-	public static Map<String, String> buildAuthInfoMap(String pid, String app_id, String target_id, boolean rsa2) {
-		Map<String, String> keyValues = new HashMap<String, String>();
-
-		// 商户签约拿到的app_id,如:2013081700024223
-		keyValues.put("app_id", app_id);
-
-		// 商户签约拿到的pid,如:2088102123816631
-		keyValues.put("pid", pid);
-
-		// 服务接口名称, 固定值
-		keyValues.put("apiname", "com.alipay.account.auth");
-
-		// 商户类型标识, 固定值
-		keyValues.put("app_name", "mc");
-
-		// 业务类型, 固定值
-		keyValues.put("biz_type", "openservice");
-
-		// 产品码, 固定值
-		keyValues.put("product_id", "APP_FAST_LOGIN");
-
-		// 授权范围, 固定值
-		keyValues.put("scope", "kuaijie");
-
-		// 商户唯一标识,如:kkkkk091125
-		keyValues.put("target_id", target_id);
-
-		// 授权类型, 固定值
-		keyValues.put("auth_type", "AUTHACCOUNT");
-
-		// 签名类型
-		keyValues.put("sign_type", rsa2 ? "RSA2" : "RSA");
-
-		return keyValues;
-	}
-
-	/**
-	 * 构造支付订单参数列表
-	 *
-	 * @param app_id
-	 * @return
-	 */
-	public static Map<String, String> buildOrderParamMap(String app_id, boolean rsa2) {
-		Map<String, String> keyValues = new HashMap<String, String>();
-
-		keyValues.put("app_id", app_id);
-
-		keyValues.put("biz_content", "{\"timeout_express\":\"30m\",\"product_code\":\"QUICK_MSECURITY_PAY\",\"total_amount\":\"0.01\",\"subject\":\"1\",\"body\":\"我是测试数据\",\"out_trade_no\":\"" + getOutTradeNo() + "\"}");
-
-		keyValues.put("charset", "utf-8");
-
-		keyValues.put("method", "alipay.trade.app.pay");
-
-		keyValues.put("sign_type", rsa2 ? "RSA2" : "RSA");
-
-		keyValues.put("timestamp", "2016-07-29 16:55:53");
-
-		keyValues.put("version", "1.0");
-
-		return keyValues;
-	}
-
-	/**
-	 * 构造支付订单参数信息
-	 *
-	 * @param map 支付订单参数
-	 * @return
-	 */
-	public static String buildOrderParam(Map<String, String> map) {
-		List<String> keys = new ArrayList<String>(map.keySet());
-
-		StringBuilder sb = new StringBuilder();
-		for (int i = 0; i < keys.size() - 1; i++) {
-			String key = keys.get(i);
-			String value = map.get(key);
-			sb.append(buildKeyValue(key, value, true));
-			sb.append("&");
-		}
-
-		String tailKey = keys.get(keys.size() - 1);
-		String tailValue = map.get(tailKey);
-		sb.append(buildKeyValue(tailKey, tailValue, true));
-
-		return sb.toString();
-	}
-
-	/**
-	 * 拼接键值对
-	 *
-	 * @param key
-	 * @param value
-	 * @param isEncode
-	 * @return
-	 */
-	private static String buildKeyValue(String key, String value, boolean isEncode) {
-		StringBuilder sb = new StringBuilder();
-		sb.append(key);
-		sb.append("=");
-		if (isEncode) {
-			try {
-				sb.append(URLEncoder.encode(value, "UTF-8"));
-			} catch (UnsupportedEncodingException e) {
-				sb.append(value);
-			}
-		} else {
-			sb.append(value);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * 对支付参数信息进行签名
-	 *
-	 * @param map 待签名授权信息
-	 * @return
-	 */
-	public static String getSign(Map<String, String> map, String rsaKey, boolean rsa2) {
-		List<String> keys = new ArrayList<String>(map.keySet());
-		// key排序
-		Collections.sort(keys);
-
-		StringBuilder authInfo = new StringBuilder();
-		for (int i = 0; i < keys.size() - 1; i++) {
-			String key = keys.get(i);
-			String value = map.get(key);
-			authInfo.append(buildKeyValue(key, value, false));
-			authInfo.append("&");
-		}
-
-		String tailKey = keys.get(keys.size() - 1);
-		String tailValue = map.get(tailKey);
-		authInfo.append(buildKeyValue(tailKey, tailValue, false));
-
-		String oriSign = SignUtils.sign(authInfo.toString(), rsaKey, rsa2);
-		String encodedSign = "";
-
-		try {
-			encodedSign = URLEncoder.encode(oriSign, "UTF-8");
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-		}
-		return "sign=" + encodedSign;
-	}
-
-	/**
-	 * 要求外部订单号必须唯一。
-	 *
-	 * @return
-	 */
-	public static String getOutTradeNo() {
-		SimpleDateFormat format = new SimpleDateFormat("MMddHHmmss", Locale.getDefault());
-		Date date = new Date();
-		String key = format.format(date);
-
-		Random r = new Random();
-		key = key + r.nextInt();
-		key = key.substring(0, 15);
-		return key;
-	}
-
-}

+ 0 - 44
app_modular/apputils/src/main/java/com/modular/apputils/utils/playsdk/SignUtils.java

@@ -1,44 +0,0 @@
-package com.modular.apputils.utils.playsdk;
-
-import java.security.KeyFactory;
-import java.security.PrivateKey;
-import java.security.spec.PKCS8EncodedKeySpec;
-
-public class SignUtils {
-
-	private static final String ALGORITHM = "RSA";
-
-	private static final String SIGN_ALGORITHMS = "SHA1WithRSA";
-
-	private static final String SIGN_SHA256RSA_ALGORITHMS = "SHA256WithRSA";
-
-	private static final String DEFAULT_CHARSET = "UTF-8";
-
-	private static String getAlgorithms(boolean rsa2) {
-		return rsa2 ? SIGN_SHA256RSA_ALGORITHMS : SIGN_ALGORITHMS;
-	}
-	
-	public static String sign(String content, String privateKey, boolean rsa2) {
-		try {
-			PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
-					Base64.decode(privateKey));
-			KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
-			PrivateKey priKey = keyf.generatePrivate(priPKCS8);
-
-			java.security.Signature signature = java.security.Signature
-					.getInstance(getAlgorithms(rsa2));
-
-			signature.initSign(priKey);
-			signature.update(content.getBytes(DEFAULT_CHARSET));
-
-			byte[] signed = signature.sign();
-
-			return Base64.encode(signed);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		return null;
-	}
-
-}