Hello. Right now I always got an error response 'HTTP/1.0 411 Length Required' when running my PHP code.
I know that my PHP code is incorrect. I cannot find any php sample code in the Cybersource/Visa Checkout documentation or a clear way how to do it correctly.
Here is my incorrect PHP code:
VisaCheckoutForCybersource(); function VisaCheckoutForCybersource(){ //Hash for x-pay-token $time = time(); $apikey = "myCybersourceAPIkey"; $secret = "myCybersourceShared Secret key"; $query_string = "apikey=".$apikey; $token = $secret.$time.$query_string; $hashtoken = "x:".$time.":".hash('sha256',$token); //$url = "https://sandbox.secure.checkout.visa.com/wallet-services-web/".$resource."?".$query_string; $url = "https://sandbox.api.visa.com/cybersource/v2/payments?".$query_string; $PaymentInformation = '{"paymentMethodType":"PAN","callid":"4722488432949012802","vInitRequest":{"apikey":"A86SKC2HI2WDUQ376LQQ21kxHydlE90VW8OmqxnEURq-7IZiE","referenceCallID":"Feb252019Feb262019SBRoom101","settings":{"locale":"en_US","review":{"message":"FP | Booking Dates: February 25, 2019 to February 26, 2019 Room Number: SBRoom101","buttonAction":"Pay"},"displayName":"HHootteeLL","dataLevel":"SUMMARY","widgetStyle":"OVERLAY","buttonPosition":"RELATIVE","shipping":{"collectShipping":"false"},"payment":{"billingCountries":["AU","GB","US"]}},"paymentRequest":{"description":"HHootteeLL VisaCheckoutPayment","currencyCode":"USD","subtotal":"70.83","tax":"14.17","total":"85.00"},"parentUrl":"http://iammarvin261a.x10host.com/wphottel1a/single-bed-2/","enableUserDataPrefill":false,"displayName":"HHootteeLL","browserLocale":"en_US","clientId":"9134ffb7-7695-1a45-83c8-163bad443f02","allowEnrollment":true,"allowSRC":true,"allowCustomBranding":false,"guestCheckout":false,"currencyFormat":"currencyCode ###,###, ###.##","logoUrl":"http://iammarvin261a.x10host.com/wphottel1a/wp-content/uploads/2017/09/HHootteeLL_logo2a.png"}}'; $PaymentInformation = json_decode($PaymentInformation, true); $data->clientReferenceInformation->code = uniqid(); $data->paymentInformation->fluidData->value = $PaymentInformation; $data->paymentInformation->fluidData->key = 'Cybersource Visa Checkout API Key from cybersource website'; $data->processingInformation->visaCheckoutID ='4722488432949012802'; $data->processingInformation->paymentSolution = 'visacheckout'; //Header $header = (array("x-pay-token: ". $hashtoken, "Accept: application/json","Content-Type: application/json")); $options = array('http' => array('header' => $header, 'method' => 'POST', 'content' => $data )); //Update Visa Checkout Payment Data $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($http_response_header[0] != 'HTTP/1.1 200 OK'){ echo "Error in executing Visa Checkout payment charges." . $http_response_header[0] . $result; } else{ echo $result; } }
Please look at my code and help me give a correct php sample code as soon as possible. thank you.
Hi,
Thanks for the inquiry. We are looking into this issue. Will keep you posted shortly.
Thanks,
Jai
Ok. I can wait. Please do not make my wait longer. I only need javascript/jquery php code how to accept Visa Checkout payment using Cybersource as payment service provider.