public void connect(String[] args) throws IOException {
   bank = new RemoteBank(this);
   String address = args[0];
   XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
   config.setServerURL(new URL(address));
   client = new XmlRpcClient();
   client.setConfig(config);
 }
Example #2
0
  /**
   * Obtains the XmlRpcClient used for communicating with the XML-RPC service.
   *
   * @return XmlRpcClient used for communicating with the XML-RPC service
   * @throws MalformedURLException If the XML-RPC service URL is malformed
   */
  private XmlRpcClient getXmlRpcClient() throws MalformedURLException {
    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(new URL(getUrl()));
    config.setConnectionTimeout(getTimeout() * 1000);
    config.setReplyTimeout(getReplyTimeout() * 1000);

    XmlRpcClient client = new XmlRpcClient();
    client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));
    client.setConfig(config);

    return client;
  }
Example #3
0
  private PaymentAuthorizationDTO makeCall(Map<String, Object> data, boolean isCharge)
      throws XmlRpcException, MalformedURLException, PluggableTaskException {

    URL callURL = null;
    if ("true".equals(getOptionalParameter(PARAMETER_TEST.getName(), "false"))) {
      callURL = new URL(TEST_URL);
      log.debug("Running Atlas task in test mode!");
    } else {
      callURL = new URL(URL);
    }
    String merchantAccountCode = ensureGetParameter(PARAMETER_MERCHANT_ACCOUNT_CODE.getName());

    int merchantCode = Integer.parseInt(merchantAccountCode);
    merchantCode = merchantCode - (merchantCode % 1000);

    XmlRpcClient paymentProcessor = new XmlRpcClient();
    paymentProcessor.setTransportFactory(new XmlRpcCommonsTransportFactory(paymentProcessor));

    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(callURL);
    config.setEnabledForExtensions(true);
    config.setConnectionTimeout(CONNECTION_TIME_OUT);
    config.setReplyTimeout(REPLY_TIME_OUT);

    paymentProcessor.setConfig(config);

    List<Map<String, Object>> transactionRequestList = new ArrayList<Map<String, Object>>(1);
    transactionRequestList.add(data);

    Map<String, Object> configParam = new HashMap<String, Object>();
    if (isCharge) {
      configParam.put("waitConfirmation", "ignore");
    } else {
      configParam.put("waitConfirmation", "terminate");
    }

    Object[] params =
        new Object[] {
          String.valueOf(merchantCode),
          ensureGetParameter(PARAMETER_PASSWORD.getName()),
          transactionRequestList,
          configParam
        };

    Object[] resresponse = (Object[]) paymentProcessor.execute("XMLRPCGates.processRetail", params);

    Map<String, Object> transactionResponseMap = (Map<String, Object>) resresponse[0];

    log.debug("Got response:" + transactionResponseMap);

    boolean isCredit = "credit-response".equals(transactionResponseMap.get("type"));

    PaymentAuthorizationDTO dbRow = new PaymentAuthorizationDTO();
    if (!isCredit && "A01".equals(transactionResponseMap.get("responseCode"))) {
      dbRow.setCode1("1"); // code if 1 it is ok
    } else if (isCredit && "A02".equals(transactionResponseMap.get("responseCode"))) {
      dbRow.setCode1("1");
    } else if ('A' != ((String) transactionResponseMap.get("responseCode")).charAt(0)) {
      dbRow.setCode1("2");
    } else {
      dbRow.setCode1("0");
    }
    dbRow.setCode3((String) transactionResponseMap.get("responseCode"));
    dbRow.setResponseMessage((String) transactionResponseMap.get("responseMessage"));
    dbRow.setApprovalCode((String) transactionResponseMap.get("processorCode"));
    dbRow.setAvs((String) transactionResponseMap.get("avsResultCode"));
    dbRow.setTransactionId((String) transactionResponseMap.get("referenceNumber"));
    dbRow.setProcessor("Intrannuity");
    return dbRow;
  }