周一,我讨厌周一。机器被带走了,也就诞生了这篇博客。我很轻松。
正题开始:
这几天,心里太心塞了,没做过关于Pos机下的开发,硬着头皮上。请教了很多在pos开发的大牛,包括http://blog.csdn.net/u010015108的博主,一开始去请教他,还挺好,到最后,完全暴露了,天天我俩基本就是水友,当然也谢谢他的指导。
言归正传:用的新国都的一款产品,关于Pos开发下的 整理了以下几个问题:
1. pos机的串口设置: 这个会在厂商的API中去出现(这个玩意挺简单),没什么难度。
2.关键在于:调用pos支付的时候,是一个H5的应用,必须要在人家的平台下才开发起支付。(这个一开始不知道原因,调试了一整天。才发现原因)
3.简单的报文:自己凑合的写了一个,能看就行:
/**
* 将带小数点的金额转换成报文第四域
*
* @param amount String类型金额
* @return 第四域报文格式字符串金额
*/
public static String amt2Str(String amount) {
// TODO
String strAmt = "";
if (amount == null)
return null;
int len = amount.length();
Boolean isResult = amount.contains(".");
if (isResult) {
strAmt = "000000000000";
int pointAdd = amount.indexOf(".");
String pointAmt = amount.substring(pointAdd, amount.length());
Log.d(TAG, "==" + pointAmt + ",==" + pointAmt.length());
if (pointAmt.length() == 1) {// 例如:1.
String tmpAmt1 = amount.replace(".", "");
strAmt = strAmt.substring(0, 11 - len) + tmpAmt1 + "00";
} else if (pointAmt.length() == 2) {// 例如:1.1
String tmpAmt2 = amount.replace(".", "");
strAmt = strAmt.substring(0, 12 - len) + tmpAmt2 + "0";
} else if (pointAmt.length() == 3) {// 例如:1.11
String tmpAmt3 = amount.replace(".", "");
strAmt = strAmt.substring(0, 13 - len) + tmpAmt3;
}
} else if (!isResult) {
strAmt = "000000000000";
strAmt = strAmt.substring(0, 10 - len) + amount + "00";
}
return strAmt;
}
4.这个还必须要在onActivityForResult中去调用人家的数据,太恶心了。。。虽然没什么难度,很多人都说简单,怎么说,回忆吧。 爬过的坑,让自己多成长一点。
5.Finally,谢谢这个水友吧。关于一些pos的问题可以去看看他的博客。
开发不易,多珍惜。