You use a Capture transaction to transfer previously authorized funds from the customer to the merchant after order fulfillment. You can submit a Capture transaction for the full amount of the Authorization, or for a lesser amount by setting the partial attribute to true.
PHP
<?php
require __DIR__ . "/path/to/vendor/autoload.php";
use cnp\sdk\CnpOnlineRequest;
use cnp\sdk\XmlParser;
$hash_in = array('id' => 'id',
'cnpTxnId' => '1234567891234567891',
'amount' => '123');
$initialize = new CnpOnlineRequest();
$captureResponse = $initialize->captureRequest($hash_in);
$response = XmlParser::getDomDocumentAsString($captureResponse);
print_r($response);
?>
Java
package com.cnp.sdk;
import com.cnp.sdk.generate.*;
public class Example {
public static void main(String[] args){
CnpOnline cnp = new CnpOnline();
Capture capture = new Capture();
capture.setCnpTxnId(123456000L);
capture.setAmount(106L);
capture.setPayPalNotes("Notes");
capture.setId("id");
CaptureResponse response = cnp.capture(capture);
System.out.println("Response:"+response.getResponse());
System.out.println("Message:"+response.getMessage());
System.out.println("Transaction ID:"+response.getCnpTxnId());
}
}
.NET
using Cnp.Sdk;
using System;
namespace CNP_Examples
{
class Program
{
public static void SimpleCapture()
{
CnpOnline _cnp = new CnpOnline();
var capture = new capture
{
id = "1",
cnpTxnId = 123456000,
amount = 106,
payPalNotes = "Notes",
pin = "1234"
};
var response = _cnp.Capture(capture);
}
static void Main(string[] args)
{
SimpleCapture();
Console.ReadLine();
}
}
}
Ruby
require 'CnpOnline'
include CnpOnline
hash = {
'merchantId' => '101',
'version'=>'8.8',
'id'=>'test',
'reportGroup'=>'Planets',
'cnpTxnId'=>'123456000',
'amount'=>'106',
}
response= CnpOnlineRequest.new.capture(hash)
puts response.message
Python
from vantivsdk import fields, online, utils
conf = utils.Configuration()
transactions = fields.capture()
transactions.reportGroup = 'Planets'
transactions.cnpTxnId= '123456000'
transactions.amount = 106
transactions.payPalNotes='Notes'
transactions.orderSource = 'ecommerce'
transactions.pin = '1234'
transactions.id = 'ThisIsID'
response = online.request(transactions, conf)