C
C
Adyen Create Payment Session
See more Adyen Examples
Creates an Adyen payment session.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkHttpResponse.h>
#include <C_CkStringBuilder.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
HCkJsonObject json;
HCkHttpResponse resp;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int respStatusCode;
const char *paymentSession;
success = FALSE;
http = CkHttp_Create();
// Use this online tool to generate the code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body, and is constructed by the code that follows.
// {
// "merchantAccount": "YourMerchantAccount",
// "sdkVersion": "1.9.7",
// "channel": "Web",
// "amount": {
// "currency": "EUR",
// "value": 17408
// },
// "reference": "Your order number",
// "countryCode": "NL",
// "shopperLocale": "nl_NL",
// "origin": "https://www.yourshop.com",
// "returnUrl": "https://www.yourshop.com/checkout/completed"
// }
json = CkJsonObject_Create();
CkJsonObject_UpdateString(json,"merchantAccount","YourMerchantAccount");
CkJsonObject_UpdateString(json,"sdkVersion","1.9.7");
CkJsonObject_UpdateString(json,"channel","Web");
CkJsonObject_UpdateString(json,"amount.currency","EUR");
CkJsonObject_UpdateInt(json,"amount.value",17408);
CkJsonObject_UpdateString(json,"reference","Your order number");
CkJsonObject_UpdateString(json,"countryCode","NL");
CkJsonObject_UpdateString(json,"shopperLocale","nl_NL");
CkJsonObject_UpdateString(json,"origin","https://www.yourshop.com");
CkJsonObject_UpdateString(json,"returnUrl","https://www.yourshop.com/checkout/completed");
CkHttp_SetRequestHeader(http,"X-API-Key","YourAPIkey");
resp = CkHttpResponse_Create();
success = CkHttp_HttpJson(http,"POST","https://checkout-test.adyen.com/v41/paymentSession",json,"application/json",resp);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
return;
}
sbResponseBody = CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
respStatusCode = CkHttpResponse_getStatusCode(resp);
printf("Status Code = %d\n",respStatusCode);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
if (respStatusCode >= 400) {
printf("Response Header:\n");
printf("%s\n",CkHttpResponse_header(resp));
printf("Failed.\n");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
return;
}
// Sample JSON response:
// {
// "paymentSession": "eyJjaGVja291 ... iMS45LjcifQ=="
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
paymentSession = CkJsonObject_stringOf(jResp,"paymentSession");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
}