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
}