mfoland Posted January 13, 2019 Share Posted January 13, 2019 I am working with the license addon to handle auto license upgrades if needed. My issue I am running into is that my script throws an error and says Service ID Not Found. Here's my API call: <?php $srvid = (int) $results['serviceid']; $newprod = (int) $results['productid'] +1; /** * WHMCS Sample API Call * * @package WHMCS * @author WHMCS Limited <development@whmcs.com> * @copyright Copyright (c) WHMCS Limited 2005-2016 * @license http://www.whmcs.com/license/ WHMCS Eula * @version $Id$ * @link http://www.whmcs.com/ */ // API Connection Details $whmcsUrl = "https://clients.bestphpscripts.com/"; // For WHMCS 7.2 and later, we recommend using an API Authentication Credential pair. // Learn more at http://docs.whmcs.com/API_Authentication_Credentials // Prior to WHMCS 7.2, an admin username and md5 hash of the admin password may be used. $username = "API USER"; $password = "API PASSWORD"; // Set post values $postfields = array( 'username' => $username, 'password' => $password, 'action' => 'UpgradeProduct', 'serviceid' => '$_GET[srvid]', 'paymentmethod' => 'offlinecc', 'newproductbillingcycle' => 'free', 'type' => 'product', 'newproductid' => '$newprod', 'responsetype' => 'json', ); // Call the API $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $whmcsUrl . 'includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields)); $response = curl_exec($ch); if (curl_error($ch)) { die('Unable to connect: ' . curl_errno($ch) . ' - ' . curl_error($ch)); } curl_close($ch); // Decode response $jsonData = json_decode($response, true); What I did as WHMCS Support said that it must be an integer, which when I echo the service id it is an integer.. If I hard code the service id it works, but when I do the php variable it will not work. It says the ID is not found. With the licensing, each user has a different service ID, so it would not be possible to code the api to work with one service id. What can I do? Thanks 0 Quote Link to comment Share on other sites More sharing options...
mfoland Posted January 13, 2019 Author Share Posted January 13, 2019 It should be noted I've even done the $srvid without the $_GET so I'm not sure what's going on. That api file is apit.php in my script and is including via include('apit.php'); in my script.. so in theory it should be able to grab the id no problems. Even without the int before the service id via $results it does show the service id. I was pulling that DIRECTLY from the license call. 0 Quote Link to comment Share on other sites More sharing options...
mfoland Posted January 20, 2019 Author Share Posted January 20, 2019 Can I get some assistance? 0 Quote Link to comment Share on other sites More sharing options...
mfoland Posted January 20, 2019 Author Share Posted January 20, 2019 @WHMCS John can you pull ticket #WYU-301116 for me and refer to this? I'd love to figure this out. 0 Quote Link to comment Share on other sites More sharing options...
mfoland Posted January 20, 2019 Author Share Posted January 20, 2019 Issue fixed: 'serviceid' => $srvid, 'paymentmethod' => 'offlinecc', 'newproductbillingcycle' => 'free', 'type' => 'product', 'newproductid' => $newprod, 'responsetype' => 'json', The service id and the new product id could NOT have the quotes. 0 Quote Link to comment Share on other sites More sharing options...
mfoland Posted January 20, 2019 Author Share Posted January 20, 2019 I also had it do the AcceptOrder as well, except I'm not sure exactly how auto setup works. I want it to auto setup the product IF the payment has been received.. Although does this mean it generates the invoice IF there's a price for it? 0 Quote Link to comment 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.