关于Pos下开发的一点心得

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35068744/article/details/77931305

周一,我讨厌周一。机器被带走了,也就诞生了这篇博客。我很轻松。

正题开始:

这几天,心里太心塞了,没做过关于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的问题可以去看看他的博客。

开发不易,多珍惜。


猜你喜欢

转载自blog.csdn.net/sinat_35068744/article/details/77931305