Plants
& More
   
Example product

Potted plant

Monstera

Price: $24.99

Checkout with address

Checkout makes it simple to add payment buttons to your website.

When you choose Checkout, we handle all the backend complexities. You can customize some Checkout elements (such as the logo image or title text), but if it's not enough, you can integrate using Custom Form.

Checkout with additional shipping and billing address fields is shown in this example.

Use these card details to test different scenarios

Success
4242 4242 4242 4242
Copied
Insufficient funds
4024 0071 1846 8684
Copied

		<form action="/examples/checkout-with-address/payment" method="post">
			<script src="https://dev.shift4.com/checkout.js"
				class="shift4-button"
				data-key="pu_test_WVMFC9GFuvm54b0uorifKkCh"
				data-checkout-request="MjVhMmJjYTRiNzUyNzQ0MWU2MTljNDFkYjcwMTE1ZmZmZjc3NDI3OTk4MDBhY2MxYTc0ZjFhMDExOWY2OWYxZnx7ImNoYXJnZSI6eyJhbW91bnQiOjI0OTksImN1cnJlbmN5IjoiVVNEIn0sInRocmVlRFNlY3VyZSI6eyJlbmFibGUiOmZhbHNlfX0="
				data-name="Shift4"
				data-description="Checkout example"
				data-checkout-button="Buy now"
				data-shipping-address="true"
				data-class="btn btn-primary btn-lg">
			</script>
		</form>
	

		@Controller
		@RequestMapping("/examples")
		public class ExamplesController {
		
			private static final String PRIVATE_KEY = "pr_test_tXHm9qV9qV9bjIRHcQr9PLPa";

			@RequestMapping(value = "/examples/checkout-with-address", method = GET)
			public String checkout(Model model) throws IOException {
				try (Shift4Gateway shift4Gateway = new Shift4Gateway(PRIVATE_KEY)) {
					CheckoutRequest checkoutRequest = new CheckoutRequest()
							.charge(2499, "USD");
					
					String signedCheckoutRequest = shift4Gateway.signCheckoutRequest(checkoutRequest);
					
					model.addAttribute("signedCheckoutRequest", signedCheckoutRequest);
				}

				return "examples/checkout";
			}
	
			@RequestMapping(value = "/examples/checkout-with-address/payment", method = POST)
			public String checkoutSubmit(Model model, @RequestParam String shift4ChargeId) {
				model.addAttribute("chargeId", shift4ChargeId);

				return "examples/checkout";
			}
		}