Dart Requires Chilkat v11.0.0+
Dart
CardConnect Capture Level 3 Data
See more CardConnect Examples
Demonstrates how to send a CardConnect Capture request with Lavel 3 line item data.If available, Level 3 line item data can be sent with the capture request, particularly for any commercial or corporate payment cards. To qualify for Level 3 Interchange rates, Level 2 data must also be provided. ...
See https://developer.cardconnect.com/cardconnect-api#capture-level-3-data
Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final http = CkHttp();
http.basicAuth = true;
http.login = 'API_USERNAME';
http.password = 'API_PASSWORD';
// Build and send the following JSON:
// The "retref" is the value returned in the JSON response for the Authorization request.
// {
// "retref": "2880000333",
// "shiptozip": "11111-1111",
// "shipfromzip": "99999-9999",
// "amount": "596.00",
// "items": [
// {
// "discamnt": "0",
// "unitcost": "900",
// "uom": "CS",
// "lineno": "1",
// "description": "DESCRIPTION-1",
// "taxamnt": "117",
// "quantity": "1000",
// "upc": "UPC-1",
// "netamnt": "150",
// "material": "MATERIAL-1"
// },
// {
// "discamnt": "0",
// "unitcost": "450",
// "uom": "CS",
// "lineno": "2",
// "description": "DESCRIPTION-2",
// "taxamnt": "117",
// "quantity": "2000",
// "upc": "UPC-1",
// "netamnt": "300",
// "material": "MATERIAL-2"
// }
// ],
// "taxamount": "40.00",
// "merchid": "123456789012",
// "account": "4111111111111111",
// "ponumber": "PO-0736332"
// }
//
// Use this online tool to generate the code from sample JSON:
// Generate Code to Create JSON
final json = CkJsonObject();
json.updateString('retref', '112989260941');
json.updateString('shiptozip', '11111-1111');
json.updateString('shipfromzip', '99999-9999');
json.updateString('amount', '596.00');
json.updateString('items[0].discamnt', '0');
json.updateString('items[0].unitcost', '900');
json.updateString('items[0].uom', 'CS');
json.updateString('items[0].lineno', '1');
json.updateString('items[0].description', 'DESCRIPTION-1');
json.updateString('items[0].taxamnt', '117');
json.updateString('items[0].quantity', '1000');
json.updateString('items[0].upc', 'UPC-1');
json.updateString('items[0].netamnt', '150');
json.updateString('items[0].material', 'MATERIAL-1');
json.updateString('items[1].discamnt', '0');
json.updateString('items[1].unitcost', '450');
json.updateString('items[1].uom', 'CS');
json.updateString('items[1].lineno', '2');
json.updateString('items[1].description', 'DESCRIPTION-2');
json.updateString('items[1].taxamnt', '117');
json.updateString('items[1].quantity', '2000');
json.updateString('items[1].upc', 'UPC-1');
json.updateString('items[1].netamnt', '300');
json.updateString('items[1].material', 'MATERIAL-2');
json.updateString('taxamount', '40.00');
json.updateString('merchid', 'MERCHANT_ID');
json.updateString('account', '4111111111111111');
json.updateString('ponumber', 'PO-0736332');
final url = 'https://<site>.cardconnect.com:<port>/cardconnect/rest/capture';
final resp = CkHttpResponse();
try {
http.httpStr('PUT', url, json.emit(), 'utf-8', 'application/json', resp);
} on ChilkatException catch (e) {
print(e.lastErrorText);
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.
print('response status code = ${resp.statusCode}');
final jsonResp = CkJsonObject();
jsonResp.load(resp.bodyStr);
jsonResp.emitCompact = false;
print('response JSON:');
print(jsonResp.emit());
// A successful response looks like this:
// {
// "amount": "596.00",
// "resptext": "Approval",
// "setlstat": "Queued for Capture",
// "commcard": " C ",
// "respcode": "00",
// "batchid": "1900942291",
// "merchid": "MERCHANT_ID",
// "token": "9418594164541111",
// "authcode": "PPS158",
// "respproc": "FNOR",
// "retref": "112989260941",
// "respstat": "A",
// "account": "9418594164541111"
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
final amount = jsonResp.stringOf('amount');
final resptext = jsonResp.stringOf('resptext');
final setlstat = jsonResp.stringOf('setlstat');
final commcard = jsonResp.stringOf('commcard');
final respcode = jsonResp.stringOf('respcode');
final batchid = jsonResp.stringOf('batchid');
final merchid = jsonResp.stringOf('merchid');
final token = jsonResp.stringOf('token');
final authcode = jsonResp.stringOf('authcode');
final respproc = jsonResp.stringOf('respproc');
final retref = jsonResp.stringOf('retref');
final respstat = jsonResp.stringOf('respstat');
final account = jsonResp.stringOf('account');
}