""']", "", "ALL"), 22) /> var status = response.getStatusCode(); var res = response.getParsedResult(); switch(status) { case "200": // OK - Everything worked as expected. response.setStatus(getService().getStatusSuccessful()); break; case "401": // Unauthorized - No valid API key provided. response.setMessage("There is a configuration error preventing the transaction from completing successfully. (Original issue: Invalid API key)"); response.setStatus(getService().getStatusFailure()); break; case "402": // Request Failed - Parameters were valid but request failed. e.g. invalid card, cvc failed, etc. response.setStatus(getService().getStatusDeclined()); break; case "400": // Bad Request - Often missing a required parameter, includes parameter not allowed or params not lowercase case "404": // Not Found - The requested item doesn't exist. i.e. no charge for that id response.setStatus(getService().getStatusFailure()); break; case "500": // Server errors - something went wrong on Stripe's end. case "502": case "503": case "504": response.setStatus(getService().getStatusFailure()); break; } if (response.hasError() AND isStruct(res) AND structKeyExists(res, "error")) { if (structKeyExists(res.error, "message")) response.setMessage(res.error.message); if (structKeyExists(res.error, "param")) response.setMessage(response.getMessage() & " (#res.error.param#)"); if (structKeyExists(res.error, "code")) { switch (res.error.code) { case "incorrect_number": case "invalid_number": case "invalid_expiry_month": case "invalid_expiry_year": case "invalid_cvc": case "expired_card": case "incorrect_cvc": case "card_declined": case "missing": case "processing_error": // can do more involved translation to human-speak here response.setMessage(response.getMessage() & " [#res.error.code#]"); break; default: response.setMessage(response.getMessage() & " [#res.error.code#]"); } } else if (NOT structKeyExists(res.error, "message")) { response.setMessage("Gateway returned unknown response: #status#"); } } post["card[number]"] = arguments.account.getAccount(); post["card[exp_month]"] = arguments.account.getMonth(); post["card[exp_year]"] = arguments.account.getYear(); post["card[cvc]"] = arguments.account.getVerificationValue(); post["card[name]"] = arguments.account.getName(); post["card[address_line1]"] = arguments.account.getAddress(); post["card[address_line2]"] = arguments.account.getAddress2(); post["card[address_zip]"] = arguments.account.getPostalCode(); post["card[address_state]"] = arguments.account.getRegion(); post["card[address_country]"] = arguments.account.getCountry(); post["bank_account[country]"] = arguments.account.getCountry(); post["bank_account[routing_number]"] = arguments.account.getRoutingNumber(); post["bank_account[account_number]"] = arguments.account.getAccount();