private static Map<String,Object> makeCardParams(CreditCard creditCard, boolean update) { return makeCardParams( creditCard, update, creditCard.getCardNumber(), creditCard.getExpirationMonth(), creditCard.getExpirationYear(), creditCard.getCardCode() ); }
@Override public String storeCreditCard(CreditCard creditCard) throws IOException { // Create the Customer Map<String,Object> customerParams = new HashMap<String,Object>(); addParam(false, customerParams, "card", makeCardParams(creditCard, false)); addCustomerParams(creditCard, false, customerParams); // Make API call try { Customer customer = Customer.create(customerParams, options); return customer.getId(); } catch(StripeException e) { ConvertedError converted = convertError(e); // TODO: Throw ErrorCodeException to provide more details throw new LocalizedIOException(e, accessor, "MerchantServicesProvider.storeCreditCard.notSuccessful"); } }
@Override public void updateCreditCardNumberAndExpiration( CreditCard creditCard, String cardNumber, byte expirationMonth, short expirationYear, String cardCode ) throws IOException { // Replace the default Card Map<String,Object> cardParams = makeCardParams( creditCard, true, cardNumber, expirationMonth, expirationYear, cardCode!=null ? CreditCard.numbersOnly(cardCode) : creditCard.getCardCode() ); Map<String,Object> updateParams = new HashMap<String,Object>(); addParam(true, updateParams, "card", cardParams); try { Customer customer = Customer.retrieve(creditCard.getProviderUniqueId(), options); customer.update(updateParams, options); } catch(StripeException e) { ConvertedError converted = convertError(e); // TODO: Throw ErrorCodeException to provide more details throw new LocalizedIOException(e, accessor, "MerchantServicesProvider.updateCreditCardNumberAndExpiration.notSuccessful"); } }
} else { addParam(false, chargeParams, "card", makeCardParams(creditCard, false));