<?php # Setup your unique authentication data define('MW_MERCHANT_UUID', 'xxxxxxxxxxxxx'); define('MW_API_KEY', 'xxxxxxxx'); define('MW_API_PASS_PHRASE', 'xxxxxxxx');
# Setup the POST url $url = 'https://base.merchantwarrior.com/token/addCard'; # Setup POST data for add card method $postData['merchantUUID'] = MW_MERCHANT_UUID; $postData['apiKey'] = MW_API_KEY; $postData['cardName'] = 'Test Example'; $postData['cardNumber'] = '0000000000000'; $postData['cardExpiryMonth'] = '00'; $postData['cardExpiryYear'] = '00'; $postData['cardGlobal'] = '1'; $postData['cardEmail'] = 'yourEamil@gmail.com'; $postData['cardContact'] = '1234567890'; $res = GetRespnces($postData,$url); if($res['status'] == 1) { //add card sucessfully - Operation successful $responseMessage = $res['responseData']['responseMessage']; $cardID = $res['responseData']['cardID']; $cardKey = $res['responseData']['cardKey']; $ivrCardID = $res['responseData']['ivrCardID']; $res_Pcard = ProcessCard($cardID); if($res_Pcard['status'] == 1){ echo "Satus:- " . $res_Pcard['status']." "; echo "transactionID:- " . $res_Pcard['transactionID']." "; echo "responseMessage:- " . $res_Pcard['responseData']['responseMessage']." "; echo "transactionID:- " . $res_Pcard['responseData']['transactionID']." "; echo "authCode:- " . $res_Pcard['responseData']['authCode']." "; echo "receiptNo:- " . $res_Pcard['responseData']['receiptNo']." "; echo "customHash:- " . $res_Pcard['responseData']['customHash']." "; } } else{ echo $res['responseData']['responseMessage']; exit; }
# Process card method function ProcessCard($cardID ){ // Setup the POST url $url = 'https://base.merchantwarrior.com/token/processCard'; // Setup POST data $postData['merchantUUID'] = MW_MERCHANT_UUID; $postData['apiKey'] = MW_API_KEY; $postData['transactionAmount'] = '10.00'; $postData['transactionCurrency'] = 'AUD'; $postData['transactionProduct'] = 'Test Product'; $postData['customerName'] = 'Bhavesh Khanpara'; $postData['customerCountry'] = 'AU'; $postData['customerState'] = 'Queensland'; $postData['customerCity'] = 'Brisbane'; $postData['customerAddress'] = '123 Fake St'; $postData['customerPostCode'] = '4000'; $postData['customerPhone'] = '07 3123 4567'; $postData['customerEmail'] = 'youremail@gmail.com'; $postData['customerIP'] = '127.0.0.1'; $postData['cardID'] = $cardID; $postData['hash'] = calculateHash($postData); // Post param to server and get responces from mw APi server $res = GetRespnces($postData,$url); return $res; }
#get responces from mwh server function GetRespnces($postData,$url){ // Setup CURL defaults $curl = curl_init(); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curl, CURLOPT_FRESH_CONNECT, true); curl_setopt($curl, CURLOPT_FORBID_REUSE, true); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // Setup CURL params for this request curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&')); // Run CURL $response = curl_exec($curl); $error = curl_error($curl); // Check for CURL errors if (isset($error) && strlen($error)) { throw new Exception("CURL Error: {$error}"); } // Make sure the API returned something if (!isset($response) || strlen($response) < 1) { throw new Exception("API response was empty"); } // Parse the XML $xml = simplexml_load_string($response); // Convert the result from a SimpleXMLObject into an array $xml = (array)$xml; // Check for a valid response code if (!isset($xml['responseCode']) || strlen($xml['responseCode']) $status, 'transactionID' => (isset($xml['transactionID']) ? $xml['transactionID'] : null), 'responseData' => $xml); return $result; }
/** * Generates and returns the request hash after being * provided with the postData array. * * @param array $postData */ function calculateHash(array $postData = array()) { // Check the amount param if (!isset($postData['transactionAmount']) || !strlen($postData['transactionAmount'])) { exit("Missing or blank amount field in postData array."); } // Check the currency param if (!isset($postData['transactionCurrency']) || !strlen($postData['transactionCurrency'])) { exit("Missing or blank currency field in postData array."); } // Generate & return the hash return md5(strtolower(MW_API_PASS_PHRASE. MW_MERCHANT_UUID. $postData['transactionAmount'] . $postData['transactionCurrency'])); }
//Testing card details:-
MasterCard
5163200000000008
08/20
070
Visa
4564710000000004
02/19
847
Amex
376000000000006
06/20
2349
Diners Club
36430000000007
06/22
348
Please refer to Westpac Test Data @ http://dox.merchantwarrior.com for further test data
Thanking You,
Reblogged this on phpguidance.