Jump to content

API Service ID Not Found


mfoland

Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated