You need a Token (Saved credit card instance) to create a Payment which is known as Charge in Stripe API. Creating Charge in Stripe is equal to creating a Payment.
Payment API documentation:
https://stripe.com/docs/api#charges
And output would be for successful transaction line below:
Payment API documentation:
https://stripe.com/docs/api#charges
package com.pkm; import common.HttpJavaClient; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * @author PRITOM */ public class StripeCreatePayment { static final String API_KEY = "sk_test_eXF5nNyXat29WjWrqHK92rcj"; static final String TOKEN_URL = "https://api.stripe.com/v1/tokens"; static final String PAYMENT_URL = "https://api.stripe.com/v1/charges"; public static void main(String[] args) { Map params = new HashMap(); params.put("amount", "210"); params.put("currency", "aud"); params.put("source", createToken()); params.put("description", (new Date()).toString()); String paramString = HttpJavaClient.buildParameters(params); Map headers = new HashMap(); headers.put("Authorization", "Bearer " + API_KEY); headers.put("tls", "TLSv1.2"); HttpJavaClient.Response response = HttpJavaClient.doPost(PAYMENT_URL, paramString, HttpJavaClient.Type.URL_ENCODED, headers); HttpJavaClient.println(response); } static String createToken() { Map params = new HashMap(); params.put("card[name]", "Pritom Kumar"); params.put("card[number]", "4242424242424242"); params.put("card[exp_month]", "12"); params.put("card[exp_year]", "19"); params.put("card[cvc]", "123"); String paramString = HttpJavaClient.buildParameters(params); Map headers = new HashMap(); headers.put("Authorization", "Bearer " + API_KEY); headers.put("tls", "TLSv1.2"); HttpJavaClient.Response response = HttpJavaClient.doPost(TOKEN_URL, paramString, HttpJavaClient.Type.URL_ENCODED, headers); if (response.getCode() == 200) { String token = response.getBody().substring(response.getBody().indexOf("\"id\": \"") + 7); return token.substring(0, token.indexOf("\"")); } return null; } }
And output would be for successful transaction line below:
"id": "ch_1BACCFFIwfarG3vBdzS2A09q", "object": "charge", "amount": 210, "amount_refunded": 0, "application": null, "application_fee": null, "balance_transaction": "txn_1BACCFFIwfarG3vBWUtFsX4N", "captured": true, "created": 1507359243, "currency": "aud", "customer": null, "description": "Sat Oct 07 12:54:06 BDT 2017", "destination": null, "dispute": null, "failure_code": null, "failure_message": null, "fraud_details": {}, "invoice": null, "livemode": false, "metadata": {}, "on_behalf_of": null, "order": null, "outcome": { "network_status": "approved_by_network", "reason": null, "risk_level": "normal", "seller_message": "Payment complete.", "type": "authorized" }, "paid": true, "receipt_email": null, "receipt_number": null, "refunded": false, "refunds": { "object": "list", "data": [], "has_more": false, "total_count": 0, "url": "/v1/charges/ch_1BACCFFIwfarG3vBdzS2A09q/refunds" }, "review": null, "shipping": null, "source": { "id": "card_1BACCDFIwfarG3vBAnQYrCBR", "object": "card", "address_city": null, "address_country": null, "address_line1": null, "address_line1_check": null, "address_line2": null, "address_state": null, "address_zip": null, "address_zip_check": null, "brand": "Visa", "country": "US", "customer": null, "cvc_check": "pass", "dynamic_last4": null, "exp_month": 12, "exp_year": 2019, "fingerprint": "CjZNbbCtG5QSnuIS", "funding": "credit", "last4": "4242", "metadata": {}, "name": "Pritom Kumar", "tokenization_method": null }, "source_transfer": null, "statement_descriptor": null, "status": "succeeded", "transfer_group": null }