@Action("payCallback") public void payCallback() { try { LehaihaiPayResult rsp = (LehaihaiPayResult) JsonUtils.decodeJson(data, LehaihaiPayResult.class); if (rsp == null) { Log.e("the data parse failed. data:" + data); return; } long orderID = Long.parseLong(rsp.getExtendsInfo()); UOrder order = orderManager.getOrder(orderID); if (order == null) { Log.d("The order is null"); this.renderState(false); return; } UChannel channel = order.getChannel(); if (channel == null) { Log.d("the channel is null."); this.renderState(false); return; } if (order.getState() > PayState.STATE_PAYING) { Log.d("The state of the order is complete. The state is " + order.getState()); this.renderState(true); return; } if (!isSignOK(channel, rsp)) { Log.d( "The sign verify failed.sign:%s;appKey:%s;orderID:%s", rsp.getSign(), channel.getCpPayKey(), rsp.getExtendsInfo()); this.renderState(false); return; } int moneyInt = (int) (Float.valueOf(rsp.getAmount()) * 100); // 以分为单位 order.setRealMoney(moneyInt); order.setSdkOrderTime(rsp.getTime()); order.setCompleteTime(new Date()); order.setChannelOrderID(rsp.getOrderid()); order.setState(PayState.STATE_SUC); orderManager.saveOrder(order); SendAgent.sendCallbackToServer(this.orderManager, order); renderState(true); } catch (Exception e) { try { renderState(false); } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } }
@Action("payCallback") public void payCallback() { try { WDJPayCallbackContent data = (WDJPayCallbackContent) JsonUtils.decodeJson(content, WDJPayCallbackContent.class); if (data == null) { Log.e("The content parse error..."); return; } long localOrderID = Long.parseLong(data.getOut_trade_no()); UOrder order = orderManager.getOrder(localOrderID); if (order == null || order.getChannel() == null) { Log.d("The order is null or the channel is null."); this.renderState(false, "notifyId 错误"); return; } if (order.getState() == PayState.STATE_COMPLETE) { Log.d("The state of the order is complete. The state is " + order.getState()); this.renderState(true, "该订单已经被处理,或者CP订单号重复"); return; } int orderMoney = Integer.valueOf(data.getMoney()); // 转换为分 if (order.getMoney() != orderMoney) { Log.e( "订单金额不一致! local orderID:" + localOrderID + "; money returned:" + data.getMoney() + "; order money:" + order.getMoney()); this.renderState(false, "订单金额不一致"); return; } if (isValid(order.getChannel())) { order.setChannelOrderID(data.getOrderId()); order.setState(PayState.STATE_SUC); orderManager.saveOrder(order); SendAgent.sendCallbackToServer(this.orderManager, order); this.renderState(true, ""); } else { order.setChannelOrderID(data.getOrderId()); order.setState(PayState.STATE_FAILED); orderManager.saveOrder(order); this.renderState(false, "sign 错误"); } } catch (Exception e) { e.printStackTrace(); try { this.renderState(false, "未知错误"); } catch (IOException e1) { e1.printStackTrace(); } } }