This is Splitit Web API SDK source code for PHP 5.5+ applications. For other languages, please visit Splitit.SDKs.
- API version: 1.0.0
- Package version: 1.6.9
PHP 5.5 and later
To install the bindings via Composer, add the following to composer.json
:
{
"require": {
"splitit/sdk": "^1.6.9"
}
}
Then run composer install
.
Replace YOUR_SANDBOX_API_KEY, YOUR_PRODUCTION_API_KEY, YOUR_USERNAME and YOUR_PASSWORD placeholders with your corresponding credentials. Please follow the installation procedure and then run the following:
<?php
require_once(__DIR__ . '/vendor/autoload.php');
use SplititSdkClient\Configuration;
use SplititSdkClient\ObjectSerializer;
use SplititSdkClient\Api\LoginApi;
use SplititSdkClient\Api\InstallmentPlanApi;
use SplititSdkClient\Model\LoginRequest;
use SplititSdkClient\Model\PlanData;
use SplititSdkClient\Model\ConsumerData;
use SplititSdkClient\Model\RequestHeader;
use SplititSdkClient\Model\AddressData;
use SplititSdkClient\Model\PlanApprovalEvidence;
use SplititSdkClient\Model\CardData;
use SplititSdkClient\Model\MoneyWithCurrencyCode;
use SplititSdkClient\Model\InitiateInstallmentPlanRequest;
use SplititSdkClient\Model\CreateInstallmentPlanRequest;
Configuration::sandbox()->setApiKey('_YOUR_SANDBOX_API_KEY_');
Configuration::production()->setApiKey('_YOUR_PRODUCTION_API_KEY_');
# Using the sandbox environment. Use Configuration::production() for production or omit the parameter.
$loginApi = new LoginApi(Configuration::sandbox());
try{
$request = new LoginRequest();
# Replace with your login information
$request->setUserName('_YOUR_USERNAME_');
$request->setPassword('_YOUR_PASSWORD_');
$loginResponse = $loginApi->loginPost($request);
$session_id = $loginResponse->getSessionId();
# Use Configuration::production() for production API
$installmentPlanApi = new InstallmentPlanApi(
Configuration::sandbox(),
$session_id
);
//$installmentPlanApi->setCulture('de-DE'); -> optionally set culture to be used in subsequent calls to this API.
$initiateRequest = new InitiateInstallmentPlanRequest();
$plan_data = new PlanData();
$plan_data->setNumberOfInstallments(3);
$plan_data->setAmount(new MoneyWithCurrencyCode(array("value" => 1000, "currency_code" => "USD")));
$billing_address = new AddressData(array(
"address_line" => "260 Madison avenue",
"address_line2" => "Apt. 1",
"city" => "New York",
"country" => "USA",
"zip" => "10016"
));
$consumer_data = new ConsumerData(array(
"full_name" => "John Smith",
"email" => "j.smith@fake-email.com",
"phone_number" => "4343-555-45",
"culture_name" => "en-us",
"is_locked" => false,
"is_data_restricted" => false,
));
$initiateRequest->setPlanData($plan_data);
$initiateRequest->setBillingAddress($billing_address);
$initiateRequest->setConsumerData($consumer_data);
$initResponse = $installmentPlanApi->installmentPlanInitiate($initiateRequest);
echo "Calling /Initiate...\r\n";
echo $initResponse->getResponseHeader();
$createRequest = new CreateInstallmentPlanRequest();
$createRequest->setCreditCardDetails(new CardData(array(
'card_number' => "411111111111111",
'card_cvv' => "123",
'card_holder_full_name' => "John Smith",
'card_exp_month' => "12",
'card_exp_year' => "2022"
)));
$createRequest->setInstallmentPlanNumber($initResponse->getInstallmentPlan()->getInstallmentPlanNumber());
$createRequest->setPlanApprovalEvidence(new PlanApprovalEvidence(array(
"are_terms_and_conditions_approved" => true
)));
$createResponse = $installmentPlanApi->installmentPlanCreate($createRequest);
echo "Calling /Create...\r\n";
echo $createResponse->getResponseHeader();
} catch(Exception $e){
echo "Exception has ocurred:\r\n";
echo $e;
echo "\r\n**********************\r\n";
}
?>
Common usage for Splitit PHP SDK is in making necessary server-side requests as part of FlexFields product integration. The code below is an example of how SDK wrappers can be used to simplify acquiring public token and verifying payment. For more information, please visit FlexFields documentation.
Server-side code consists of two parts: acquiring public token which needs to be passed to FlexFields JS library and verifying payment before order is finalized and shipped.
<?php
use SplititSdkClient\Configuration;
use SplititSdkClient\ObjectSerializer;
use SplititSdkClient\FlexFields;
Configuration::sandbox()->setApiKey('_YOUR_SANDBOX_API_KEY_');
Configuration::production()->setApiKey('_YOUR_PRODUCTION_API_KEY_');
try{
$ff = FlexFields::authenticate(Configuration::sandbox(), 'YOUR_USERNAME', 'YOUR_PASSWORD');
$publicToken = $ff->getPublicToken(1000, "USD");
echo $publicToken;
} catch(Exception $e){
...
}
?>
<?php
use SplititSdkClient\Configuration;
use SplititSdkClient\ObjectSerializer;
use SplititSdkClient\FlexFields;
Configuration::sandbox()->setApiKey('_YOUR_SANDBOX_API_KEY_');
Configuration::production()->setApiKey('_YOUR_PRODUCTION_API_KEY_');
try{
$ff = FlexFields::authenticate(Configuration::sandbox(), 'YOUR_USERNAME', 'YOUR_PASSWORD');
$verifyPaymentResponse = $ff->verifyPayment($installmentPlanNumber, 1000);
if ($verifyPaymentResponse)
{
# all good
}
else
{
# error
}
} catch(Exception $e){
...
}
?>
For detailed information on request and response procedures, please visit Splitit Web API documentation
All URIs are relative to https://webapi.production.splitit.com
Class | Method | HTTP request | Description |
---|---|---|---|
InfoApi | infoGetLearnMoreDetails | POST /api/Merchant/GetLearnMoreDetails | |
InfrastructureApi | infrastructureGetResources | POST /api/Infrastructure/GetResources | |
InfrastructureApi | infrastructureGetResources2 | GET /api/Infrastructure/GetResources | |
InstallmentPlanApi | installmentPlanApprove | POST /api/InstallmentPlan/Approve | |
InstallmentPlanApi | installmentPlanCancel | POST /api/InstallmentPlan/Cancel | |
InstallmentPlanApi | installmentPlanChargeBack | POST /api/InstallmentPlan/ChargeBack | |
InstallmentPlanApi | installmentPlanCreate | POST /api/InstallmentPlan/Create | |
InstallmentPlanApi | installmentPlanGet | POST /api/InstallmentPlan/Get | |
InstallmentPlanApi | installmentPlanGet3DSecureParameters | POST /api/InstallmentPlan/Get3DSecureParameters | |
InstallmentPlanApi | installmentPlanGetExtended | POST /api/InstallmentPlan/GetExtended | |
InstallmentPlanApi | installmentPlanGetFraudStatusDisplay | POST /api/InstallmentPlan/GetFraudStatusDisplay | |
InstallmentPlanApi | installmentPlanGetInitiatedInstallmentPlanRequest | POST /api/InstallmentPlan/GetInitiatedInstallmentPlanRequest | |
InstallmentPlanApi | installmentPlanGetInitiatedUpdatePaymentData | GET /api/InstallmentPlan/GetInitiatedUpdatePaymentData | |
InstallmentPlanApi | installmentPlanGetLearnMoreDetails | POST /api/InstallmentPlan/GetLearnMoreDetails | |
InstallmentPlanApi | installmentPlanGetPGTL | POST /api/InstallmentPlan/GetPGTL | |
InstallmentPlanApi | installmentPlanGetSchedules | POST /api/InstallmentPlan/GetSchedules | |
InstallmentPlanApi | installmentPlanInitiate | POST /api/InstallmentPlan/Initiate | |
InstallmentPlanApi | installmentPlanRefund | POST /api/InstallmentPlan/Refund | |
InstallmentPlanApi | installmentPlanRequestPayment | POST /api/InstallmentPlan/RequestPayment | |
InstallmentPlanApi | installmentPlanStartInstallments | POST /api/InstallmentPlan/StartInstallments | |
InstallmentPlanApi | installmentPlanTermsAndConditions | POST /api/InstallmentPlan/TermsAndConditions | |
InstallmentPlanApi | installmentPlanTestCard | POST /api/InstallmentPlan/TestCard | |
InstallmentPlanApi | installmentPlanUpdate | POST /api/InstallmentPlan/Update | |
InstallmentPlanApi | installmentPlanVerifyPayment | POST /api/InstallmentPlan/Get/VerifyPayment | |
LoginApi | loginPost | POST /api/Login |
- AddressData2
- AmountDetails2
- ApproveInstallmentPlanRequest
- AuthenticationType
- CancelInstallmentPlanRequest
- CardBrand
- CardData
- CardResult
- CardType
- CartData
- ChargebackRequest
- CreateInstallmentPlanLegacyResponse
- CreateInstallmentPlanRequest
- DelayResolution
- Error
- EventsEndpoints
- ExternalAuth
- FraudCheck
- FraudCheckResult
- Get3DSecureParametersRequest
- Get3DSecureParametersResponse
- GetFraudStatusDisplayRequest
- GetFraudStatusDisplayResponse
- GetInitiatedInstallmentPlanRequest
- GetInitiatedInstallmentPlanResponse
- GetInitiatedUpdatePaymentDataResponse
- GetInstallmentSchedulesRequest
- GetInstallmentsPlanResponse
- GetInstallmentsPlanSearchCriteriaRequest
- GetInstallmentsScheduleResponse
- GetPGTLRequest
- GetPGTLResponse
- GetResourcesRequest
- GetResourcesRequestContext
- GetResourcesResponse
- InitiateInstallmentPlanRequest
- Installment
- Installment2
- InstallmentPlan
- InstallmentPlanActivityStatus
- InstallmentPlanCancelationReason
- InstallmentPlanDateInfo
- InstallmentPlanInitiatedStatuses
- InstallmentPlanQueryCriteria
- InstallmentPlanResponse
- InstallmentPlanStatus
- InstallmentsPlanDateType
- ItemData
- LearnMoreDetailsRequest
- LearnMoreDetailsResponse
- LoginRequest
- LoginResponse
- Money
- MoneyFlows
- MoneyWithCurrencyCode
- OperationType
- PagingRequestHeader
- PagingResponseHeader
- PaymentFormMessage
- PaymentFormMessageType
- PaymentToken
- PaymentWizardData
- PgtlDto
- PlanApprovalEvidence
- PlanData
- PlanStrategy
- PurchaseMethod
- ReAuthorization
- RedirectUrls
- ReferenceEntityBase
- RefundPlanRequest
- RefundStrategy
- RefundUnderCancelation
- RelationsLoad
- RequestHeader
- RequestPaymentRequest
- RequestPaymentResponse
- ResponseHeader
- Schedule
- ScheduleElements
- StartInstallmentsRequest
- SystemTextCategory
- TermsAndConditions
- TermsAndConditionsGetRequest
- TermsAndConditionsGetResponse
- TestCardRequest
- TestModes
- TouchPoint
- TransactionInfo
- TransactionResult
- TransactionStatus
- TransactionType
- User
- VerifyPaymentRequest
- VerifyPaymentResponse
- AddressData
- AmountDetails
- ConsumerData
- CreateInstallmentsPlanResponse
- Currency
- GetInstallmentsPlanExtendedResponse
- InitiateInstallmentsPlanResponse
- MerchantRef
- PaymentWizardDataResponse
- RefundInstallmentPlanResponse
- UpdateInstallmentPlanRequest
- UpdateInstallmentsPlanResponse
- ExtendedCurrency