Zig
Zig
CardConnect Settlement Status
See more CardConnect Examples
Demonstrates how to get the status of transactions which have been submitted to the processor for settlement.The settlement status service returns the status of transactions which have been submitted to the processor for settlement. The transaction’s setlstatus is updated appropriately when CardConnect’s receives a response from the processor. You can either specify a batchid to return a specific batch of transactions, or use a date to return all transactions settled for that date. ...
See https://developer.cardconnect.com/cardconnect-api#settlement-status
Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
http.setBasicAuth(true);
http.setLogin("API_USERNAME");
http.setPassword("API_PASSWORD");
const url = "https://<site>.cardconnect.com:<port>/cardconnect/rest/settlestat?merchid=<merchid>&batchid=<batchid>";
const response_str = http.quickGetStr(alloc, url) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
// A response status of 200 indicates potential success. The JSON response body
// must be examined to determine if it was truly successful or an error.
std.debug.print("response status code = {d}\n", .{http.getLastStatus()});
const json_resp = try chilkat.JsonObject.init();
defer json_resp.deinit();
json_resp.load(response_str) catch {};
json_resp.setEmitCompact(false);
std.debug.print("response JSON:\n", .{});
std.debug.print("{s}\n", .{try json_resp.emit(alloc)});
// A successful response looks like this:
// {
// "respproc": "FNOR",
// "hostbatch": "",
// "refundtotal": "0.00",
// "batchid": "1900942291",
// "chargetotal": "0.00",
// "hoststat": "",
// "merchid": "MERCHANT_ID",
// "txns": [
// {
// "setlamount": "13.28",
// "setlstat": "R",
// "salesdoc": "rosedale_1555412201_392",
// "retref": "106631225001"
// },
// {
// "setlamount": "13.28",
// "setlstat": "R",
// "salesdoc": "rosedale_1555412353_392",
// "retref": "106731125153"
// },
// {
// "setlamount": "7.64",
// "setlstat": "R",
// "salesdoc": "rosedale_1555414960_393",
// "retref": "106008227760"
// }
// ]
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
var setlamount: [:0]const u8 = "";
var setlstat: [:0]const u8 = "";
var salesdoc: [:0]const u8 = "";
var retref: [:0]const u8 = "";
_ = try json_resp.stringOf(alloc, "respproc");
_ = try json_resp.stringOf(alloc, "hostbatch");
_ = try json_resp.stringOf(alloc, "refundtotal");
_ = try json_resp.stringOf(alloc, "batchid");
_ = try json_resp.stringOf(alloc, "chargetotal");
_ = try json_resp.stringOf(alloc, "hoststat");
_ = try json_resp.stringOf(alloc, "merchid");
var i: i32 = 0;
const count_i = json_resp.sizeOfArray("txns");
while (i < count_i) {
json_resp.setI(i);
setlamount = try json_resp.stringOf(alloc, "txns[i].setlamount");
setlstat = try json_resp.stringOf(alloc, "txns[i].setlstat");
salesdoc = try json_resp.stringOf(alloc, "txns[i].salesdoc");
retref = try json_resp.stringOf(alloc, "txns[i].retref");
i = i + 1;
}
}