该问题已被锁定!
2
关注
2405
浏览

用户注册时出错

AI智能回复搜索中,请稍后...

查看全部 3 个回答

技术-安辰 超级管理员 用户来自于: 北京市
2023-03-02 14:20

case 3004://传过来十六给进制的
//将hex字符串转化为byte数组
byte bytes[] = hexStringToBytes(respone.trim());
//用户流水号
String userSerialNumber = bytesToHexString(bytes, 1, 4).trim();
orderInfo.setUserSerialNumber(userSerialNumber);
//token
String token = bytesToHexString(bytes, 5, 32).trim();
orderInfo.setToken(token);
break;

case 3006://用户登录时出错
//用户流水号
userSerialNumber = bytesToHexString(hexStringToBytes(respone.trim()), 1, 4).trim();
orderInfo.setUserSerialNumber(userSerialNumber);
break;

case 3007://持卡来源注册
case 3008://校验持卡来源是否存在
userSerialNumber = bytesToHexString(hexStringToBytes(respone.trim()), 1, 4).trim();
orderInfo.setUserSerialNumber(userSerialNumber);
//token
token = bytesToHexString(hexStringToBytes(respone.trim()), 5, 32).trim();
orderInfo.setToken(token);
break;

/*case 3010://鉴权
RegisterInfo rinfo = (RegisterInfo) orderInfo.getAttach();
if (isOperateSuccess(respone.substring(2, 4))) {
String userIdStr = respone.substring(4, 20);

if (orderInfo.getMobileNo() != null
&& !"".equals(orderInfo.getMobileNo().trim())) {
userIdStr = orderInfo.getMobileNo();
}
rinfo.setUserid(userIdStr);
orderInfo.setAttach(rinfo);
}
break;*/

case 4001://查询手机应用
case 4002://校验用户应用
case 5001:
case 5002:
case 5003:
case 5004:
case 5005:
case 5006:
case 5007:
case 5008:
case 5011:
case 5012:
case 5013:// 已弃用
case 5014:// 更改用户号+手机号码
case 6001:
case 6002:
case 6003:

case 7001:
case 7002:
case 7003:
userSerialNumber = IOUtils.subStringByteToString(respone.trim(), 4);
orderInfo.setUserSerialNumber(userSerialNumber);
break;

default:
break;
}
// 更新用户流水号到持久化表中
UserTradeInfoDao.getInstance().updateUserTradeSerialNo(orderInfo);
}







/**
* 反编译确认码
*/
public String revertCodeStr(String code) throws Exception{

String sourceCode = new String(Base64.decode(code),"UTF-8");

String userIcNo = IOUtils.subStringByteToString(sourceCode, 6);
String usrMob = IOUtils.subStringByteToString(sourceCode, 10);
String mediaType = IOUtils.subStringByteToString(sourceCode, 13);
String recvBankNo = IOUtils.subStringByteToString(sourceCode, 16);
String recvCardNo4end = IOUtils.subStringByteToString(sourceCode,82);
String rsvFld1 = IOUtils.subStringByteToString(sourceCode, 86);

String resultString = userIcNo+usrMob+mediaType+recvBankNo+recvCardNo4end+rsvFld1;

return resultString;
}








/**
* hex字符串转byte数组
*
* @param hexString
* hex字符串
* @return
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || "".equals(hexString)) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}
/**
* 将 Hex 字节字符串转为字符串
* @param source 字节
* @param begin 起始位置,位置从 0 开始
* @param end 结束位置,位置从 0 开始
* @return
*/
public static String bytesToHexString(byte[] source, int begin, int end){
StringBuffer buf = new StringBuffer();
try {
for (int i = begin; i <= end; i++) {
if (source[i] < 0) {
// 修复负数
int x = 256 + source[i];
String str = Integer.toHexString(x);
if (str.equals("0")) {
buf.append("00");
} else {
buf.append(str);
}
} else {
// 正数
String str = Integer.toHexString(source[i]);
if (str.length() <= 1) {
buf.append("0");
}
buf.append(str);
}
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return buf.toString().toUpperCase();
}

private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}

}

关于作者

知食 初级会员

这家伙很懒,还没有设置简介

问题动态

发布时间
2014-08-14 17:27
更新时间
2023-03-02 14:20
关注人数
2 人关注