@Override public void unpack(Map<String, Object> fieldValues, ControlMessage cm, BusinessMessage bm) throws PacketOperationException { // 备付金密码 String prePayPwd = (String) fieldValues.get("D_PREPAY_PWD"); if (prePayPwd == null) throw new PacketOperationException(); bm.setPrePayPwd(prePayPwd); // 交易金额 String amount = (String) fieldValues.get("D_AMOUNT"); if (amount == null) throw new PacketOperationException(); bm.setAmount(Double.valueOf(amount)); // 用户号 String userCode = (String) fieldValues.get("D_USER_CODE"); if (userCode == null) throw new PacketOperationException(); bm.setUserCode(userCode); // 附加响应数据 String data = (String) fieldValues.get("D_ADDITIONAL_TIP"); if (data == null) throw new PacketOperationException(); bm.setCurrencyCode(data); // 货币代码 String currencyCode = (String) fieldValues.get("D_CURRENCY_CODE"); if (currencyCode == null) throw new PacketOperationException(); bm.setCurrencyCode(currencyCode); // 自定义域 String customField = (String) fieldValues.get("D_CUSTOM_FIELD"); if (customField == null) throw new PacketOperationException(); bm.setCustomField(customField); // 原系统流水号 String origSysJournalSeqno = (String) fieldValues.get("D_SYS_ORIGSEQNO"); if (origSysJournalSeqno == null) throw new PacketOperationException(); bm.setOrigSysJournalSeqno(origSysJournalSeqno); }