aquiss
Member-
Posts
129 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Hotfixes
Everything posted by aquiss
-
WHMCS price increase, what counts as a client?
aquiss replied to zomex's topic in Installation, Upgrade, and Import Support
And yet you can reply without being rude. As we have an owned with unlimited licence, unbranded, we have NEVER been subjected to or needed to know about this in the past. The email we got literally said our owned licence was expired from now, with little or no links to the asset information you have linked to. -
WHMCS price increase, what counts as a client?
aquiss replied to zomex's topic in Installation, Upgrade, and Import Support
Indeed. The email that was sent out, was honestly just so vauge and confusing. We have thousands of closed clients, but are kept in the system for tax/vat/copies of invoice purposes. Is costs based on Active clients or total clients, regardless of status? -
It already does https://docs.whmcs.com/System_Requirements
-
How to test Gocardless
aquiss replied to Manchester Web Hosting's topic in Admin & Configuration Questions
I think the biggest issue is they have changed how a few things work, both on Admin, but also on API calls, that they have not warned before hand would be changing. You can't have businesses using a system for years to suddenly find scripts and systems suddenly don't work. WHMCS is a great product, when it works, but heck, talking to it's community and engaging with us all, leaves a lot to be desired. -
How to test Gocardless
aquiss replied to Manchester Web Hosting's topic in Admin & Configuration Questions
At present version 8 has too many concerning showstoppers for us to consider upgrading too. -
How to test Gocardless
aquiss replied to Manchester Web Hosting's topic in Admin & Configuration Questions
The nifty one, I'm told by speaking to them, works with 8.0.3 (so I suspect 8.0.4 will be fine). We have used nifty for about 2 years, perfect product and wonderful support. At present we have decided not to move over to the 8* series of releases as too much I read is concerning us at present. -
I've had a good hunt of the community forums for any examples, but don't seem to be able to find anything. Does anyone have any code, hook etc to display a message on the client homepage when there are no active payment methods setup?
-
Thanks Brian. I was looking at that for ages....after changing it, it made no difference. Bleeding cache caused the issue.
-
You could always look at SupportPal, which allows you separate out things already with WHMCS Intergration.
-
A simple question, can anyone tell me what the CSS Style is that sets the Page Title colour, as shown in the attached picture, so that I can apply an override. I've been hunting for over an hour without any success.
-
Can anyone else confirm a bug with the OrderFraudCheck API as seen https://developers.whmcs.com/api-reference/orderfraudcheck/ If we pass over the order id, as shown in the code below, then the details, such as address details are not actually sent over for fraud checking, instead it appears to be using our local server details rather than the ones stored against the client/order? http_build_query( array( 'action' => 'OrderFraudCheck', // See https://developers.whmcs.com/api/authentication 'username' => 'IDENTIFIER_OR_ADMIN_USERNAME', 'password' => 'SECRET_OR_HASHED_PASSWORD', 'orderid' => '1', 'responsetype' => 'json', ) ) If an order comes in via an order form, everything appears fine and checks take place. We are adding customers in fine via AddClient and AddOrder just fine, full details are stored and the order id given in the AddOrder response is the one we are passing over for fraud checks. From what I can see, via API the following data we get no response to Arrays [postal] => Array [city] => Array [subdivisions] => Array There certainly seems to be some inconsistences between the order form and api methods. Emails to WHMCS support, whilst responsive, seem to be drawing blank and not really taking too much of an interest in what I think might be an issue.
-
Just had a new order and nothing showing. A support ticket to WHMCS time.
-
And if I see nothing below Order Items? Should anything appear below current orders in the system or just only for new orders since the module was activated?
-
I've enabled Maxmind from within WHMCS and created an account with them which is live, however, can someone explain exactly where from within WHMCS Admin can we see fraud results or perform checks? The WHMCS Support document tell you how to enable it, but it don't tell you anywhere from what I can see how you actually use Maxmind
-
Good Morning, The past 2-3 days we have been getting calls and emails from customers saying they can't log into our website via the Integration button that has worked for years (code below). Baffled by this, I've spent this morning trying to work out what's going on. On testing, it appears that Google Chrome and Edge (based on Chrome engine) literally just refresh the page and don't login. However, other browsers, such as older Internet Explorer, work just fine. I can only presume Chrome has pushed out an update very recently? <form method="post" action="URLSNIPPED/dologin.php"> <input type="hidden" name="username" size="50" value="<?php echo "$email";?>"> <input type="hidden" name="password" size="20" value="<?php echo "$custpassword";?>"> <input type="submit" class="button button4" value="Setup Your Payment - Pay Now"> Is there a solution to solve this or is there a better way that I can provide a login means for someone to login to the client portal via an alternative integration method?
-
I've come across a handful of client accounts, purely by luck, that were on a promo with reduced monthly rates at the start of their membership, that has since ended. However, it would appear in some cases where the promo had ended, the recurring fee has NOT increased and remains still at the promo reduced rate, even though no active promo is now live on the customer. For the most part, it has worked and changed the recurring price, but in a few odd cases, it has not. As I can't see a report from within WHMCS to allow me to find client in this state, does anyone have a MySQL statement that could create a list to of services that the "firstpaymentamount" and "amount" equal the same value? In theory that will then allow me to check customers.
-
@WHMCS ChrisD You know you replied to a old post from 2016?
-
It turned out to be my error. I was thinking it was the internal ID, when actually you just need to pass the promocode that has been set in admin. eg: If promocode in admin was 3MONTHSFREE, then in the AddOrder API, the code would be 'promocode' => "3MONTHSFREE",
-
Can anyone else confirm that 'promocode' is being ignored in the AddOrder API? Regardless if a pass a variable or hard set to an exact known promotion, it's being ignored upon the order being built. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'url'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'AddOrder', 'username' => '', 'password' => '', 'clientid' => "$clientid", 'pid' => "$package_billing_id", 'domain' => "$username", 'billingcycle' => 'monthly', 'promocode' => "$package_offer_billing_promocode", 'paymentmethod' => "$set_payment", 'noinvoice' => 'true', 'noinvoiceemail' => 'true', 'noemail' => 'true', 'noinvoice' => 'true', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch);
-
So I have resolved this myself. I was almost there, but for anyone reading and needing some basic code to get them going (because WHMCS own docs seem to lack the final bit), the following will perform the action and then you can get the variables out. You will see in the finished code the likes of clientid and pid have " " (double quotes) around them, rather than ' (single quotes). This is so you can pass a variable into your array from elsewhere. 'clientid' => "$clientid", 'pid' => "$pid", Full basic code example <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'your url to api'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'AddOrder', 'username' => 'your api username', 'password' => 'your api password', 'clientid' => "1", 'pid' => "97", 'billingcycle' => 'monthly', 'paymentmethod' => 'stripe', 'noinvoice' => 'true', 'noinvoiceemail' => 'true', 'noemail' => 'true', 'noinvoice' => 'true', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); // Decode response $jsonData = json_decode($response, true); ?> <?php $serviceids = $jsonData['serviceids']; ?>
-
I'm trying to get the JSON array result for serviceids and turn it into a useable variable, but my limited coding ability I seem to be missing something. How do I do this? <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'snipped'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'AddOrder', 'username' => 'snipped', 'password' => 'snipped', 'clientid' => "1", 'pid' => "97", 'billingcycle' => 'monthly', 'paymentmethod' => 'stripe', 'noinvoice' => 'true', 'noinvoiceemail' => 'true', 'noemail' => 'true', 'noinvoice' => 'true', 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); // Decode response $jsonData = json_decode($response, true); $serviceid = $jsonData[0]["serviceids"]; ?>
-
WHMCS Support have confirmed the docs are incorrect and are getting them updated. In the meantime, this is correct: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://yourwhmcs.com/whmcs/includes/api.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'CreateQuote', // See https://developers.whmcs.com/api/authentication 'username' => 'USERNAME', 'password' => 'PASSWORD', 'subject' => 'Test Quote Subject', 'stage' => 'Draft', 'userid' => '1', 'validuntil' => '01/01/2016', 'lineitems' => base64_encode(serialize(array(array("desc"=>"Test Description 1","qty"=>1,"up"=>"10.00","discount"=>"10.00", "taxable"=>true),array("desc"=>"Test Description 2","qty"=>4,"up"=>"15.00","discount"=>"0.00","taxable"=>false)))), 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch);
-
Thanks Kian, I'll raise a ticket with support as the docs need correcting.
-
I'm trying to use the CreateQuote (Curl Method) as shown https://developers.whmcs.com/api-reference/createquote/ I'm using the following test code <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'url snipped'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( 'action' => 'CreateQuote', 'username' => '', 'password' => '', 'subject' => 'Test Quote Subject', 'stage' => 'Draft', 'validuntil' => '30/01/2020', 'lineitems' => base64_encode(serialize(array(array("desc"=>"Test Description 1","qty"=>1,"up"=>"10.00","discount"=>"10.00", "taxable"=>true),array("desc"=>"Test Description 2","qty"=>4,"up"=>"15.00","discount"=>"0.00", "taxable"=>false))));, 'responsetype' => 'json', ) ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); ?> However, I just can't get it working at all. Just seems to return an error. Docs don't mention any other Required elements, however, I'm getting an error saying it must be an array. However, the example code is being used exactly as given from the docs page. Error appearing in logs is: Error: TypeError: Argument 20 passed to saveQuote() must be of the type array, null given, called in /var/www/vhosts/snippedurl/httpdocs/includes/api/createquote.php on line 0 and defined in /var/www/vhosts/snippedurl/httpdocs/includes/quotefunctions.php:0 Stack trace: #0 /var/www/vhosts/snippedurl/httpdocs/includes/api/createquote.php(0): saveQuote('', 'Test Quote Subj...', 'Draft', '2019-12-31', '30/01/2020', 'new', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, '') #1 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Api/V1/Api.php(0): unknown() #2 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Api/V1/Api.php(0): WHMCS\Api\V1\Api->executeApiCall() #3 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Api/ApplicationSupport/Route/Middleware/HandleProcessor.php(0): WHMCS\Api\V1\Api->call() #4 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Api/ApplicationSupport/Route/Middleware/HandleProcessor.php(0): WHMCS\Api\ApplicationSupport\Route\Middleware\HandleProcessor->processV1Request(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #5 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Route/Middleware/Strategy/DelegatingMiddlewareTrait.php(0): WHMCS\Api\ApplicationSupport\Route\Middleware\HandleProcessor->_process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) #6 /var/www/vhosts/snippedurl/httpdocs/vendor/middlewares/utils/src/Dispatcher.php(76): WHMCS\Api\ApplicationSupport\Route\Middleware\HandleProcessor->process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) #7 [internal function]: Middlewares\Utils\Dispatcher->Middlewares\Utils\{closure}(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #8 /var/www/vhosts/snippedurl/httpdocs/vendor/middlewares/utils/src/Delegate.php(31): call_user_func(Object(Closure), Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #9 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Api/ApplicationSupport/Route/Middleware/ActionResponseFormat.php(0): Middlewares\Utils\Delegate->process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #10 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Route/Middleware/Strategy/AssumingMiddlewareTrait.php(0): WHMCS\Api\ApplicationSupport\Route\Middleware\ActionResponseFormat->_process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) #11 /var/www/vhosts/snippedurl/httpdocs/vendor/middlewares/utils/src/Dispatcher.php(76): WHMCS\Api\ApplicationSupport\Route\Middleware\ActionResponseFormat->process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) #12 [internal function]: Middlewares\Utils\Dispatcher->Middlewares\Utils\{closure}(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #13 /var/www/vhosts/snippedurl/httpdocs/vendor/middlewares/utils/src/Delegate.php(31): call_user_func(Object(Closure), Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #14 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Route/Middleware/Strategy/DelegatingMiddlewareTrait.php(0): Middlewares\Utils\Delegate->process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest)) #15 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Security/Middleware/Authorization.php(0): WHMCS\Security\Middleware\Authorization->delegateProcess(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) #16 /var/www/vhosts/snippedurl/httpdocs/vendor/whmcs/whmcs-foundation/lib/Route/Middleware/AbstractProxyMiddleware.php(0): WHMCS\Security\Middleware\Authorization->process(Object(WHMCS\Api\ApplicationSupport\Http\ServerRequest), Object(Middlewares\Utils\Delegate)) snip ........ Any ideas, because all I can find online is someone having similar but admin side, but claimed to be fixed in 7.7.1?
-
Affiliation/Commissions - Looking for feedback, ideas, suggestions
aquiss replied to Kian's topic in Third Party Add-ons
@Kian Does your system support signups via a 3rd party signup form? We don't use WHMCS own signup pages because they can't adapt to our business, but instead we use our own signup pages and then put everything into WHMCS via APIs. However, the one thing we would like to be able to do, is allow customers to signup to be affiliates via the client area, which gives them their unique ID, but then being able to grab this ID via our 3rd party forms, allowing us to allocate who referred who (manually if need be).
