terungwa Posted March 22, 2016 Share Posted March 22, 2016 I had successfully set up and integrated a third party payment integration system on WHMCS. Inorder to Validate callback authenticity, the gateway provides a method of verifying that a callback originated from them as shown in code below: $mertid ='secretmerchantID'; $amt = '10000'; $tranxid = 'gtPay130958397220820'; $hashkey ='secretclientkey'; $hash = hash('sha512', $mertid . $tranxid . $hashkey); $url = 'https://ibank.gtbank.com/GTPayService/gettransactionstatus.xml?mertid='.$mertid.'&amount='.$amt.'&tranxid='.$tranxid.'&hash='.$hash; $xmlString = file_get_contents($url); if($xmlString === false) { echo "Response Description: GTPAY Verification service failed to open. } else { $xml = simplexml_load_string($xmlString ); var_dump($xml); } I am using the file_get_contents function to read the API response into a string, then simplexml_load_string function to Interprets the string of XML into an object with properties containing the data held within the xml string. On each successful transaction run $xml=simplexml_load_string($jString), returns FALSE. However when I call this code in a file directly in a browser on WAMP using the same transaction values, then $xml=simplexml_load_string($jString), returns the string of XML into an object as expected. Also when I place the file on a different remote host and call it in browser, it also returns the string of XML into an object. Strangely, when I place this code in a file within the WHMCS root folder and I attempt to call directly in a browser using the same successful transaction values used above, then $xml=simplexml_load_string($jString), returns FALSE again. What may be restricting this call to the Third party API call within the WHMCS install? Thanks. Quote Link to comment https://forums.phpfreaks.com/topic/301063-external-api-call-is-failing-within-whmcs-payment-gateway-callback-file/ Share on other sites More sharing options...
mac_gyver Posted March 26, 2016 Share Posted March 26, 2016 for file_get_contents() to work with a url, the allow_url_fopen setting must be ON and since you are using the https protocol, the openssl extension must be present and enabled. you should be getting php errors associated with either of these things, if you have php's error_reporting set to E_ALL and either display_errors set to ON or log_errors set to ON. Quote Link to comment https://forums.phpfreaks.com/topic/301063-external-api-call-is-failing-within-whmcs-payment-gateway-callback-file/#findComment-1532456 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.