Package org.openbankdata.bank.americanexpress.client

Source Code of org.openbankdata.bank.americanexpress.client.AmericanExpressBankClient

package org.openbankdata.bank.americanexpress.client;

import org.openbankdata.bank.americanexpress.service.AmericanExpressAccountService;
import org.openbankdata.core.client.AbstractBankClient;
import org.openbankdata.core.client.BankClient;
import org.openbankdata.core.client.BankRequest;
import org.openbankdata.core.client.BankResponse;

/**
* Client class to interact with AmericanExpress' web.
*/
public class AmericanExpressBankClient extends AbstractBankClient {

  private static final String BASE_URI = "https://www.americanexpress.com/home/se/home_c.shtml";
  private static final String LOGIN_URL =
      "https://global.americanexpress.com/myca/logon/emea/action";

  private String mUsername;
  private String mPassword;

  public AmericanExpressBankClient() {
    super();
  }

  @Override
  public BankClient setCredentials(String pUsername, String pPassword) {
    mUsername = pUsername;
    mPassword = pPassword;
    return this;
  }

  @Override
  protected boolean activateSession() {
    if (!get(new BankRequest(BASE_URI).skipAuthentication(true)).ok()) {
      return false;
    }

    BankRequest loginRequest = new BankRequest(LOGIN_URL).skipAuthentication(true)
        .addParam("request_type", "LogLogonHandler")
        .addParam("Face", "sv_SE")
        .addParam("DestPage", AmericanExpressAccountService.ACCOUNTS_URL)
        .addParam("Logon", "Continue...")
        .addParam("UserID", mUsername)
        .addParam("Password", mPassword);

    BankResponse loginResponse = post(loginRequest);
    if (isLoginSuccessful(loginResponse)) {
      this.setSessionActive(true);
      getCache()
          .put(new BankRequest(AmericanExpressAccountService.ACCOUNTS_URL),
              loginResponse);
      return true;
    }
    return false;
  }

  private boolean isLoginSuccessful(BankResponse pRequest) {
    boolean ok = pRequest.code() == 200;
    int index = pRequest.body().indexOf("Your Personal Cards");
    return ok && index != -1;
  }
}
TOP

Related Classes of org.openbankdata.bank.americanexpress.client.AmericanExpressBankClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.