Jump to content


Level 2 Member
  • Content count

  • Joined

  • Last visited

  • Days Won


steven99 last won the day on December 12 2018

steven99 had the most liked content!

Community Reputation

12 Good

About steven99

  • Rank
    Level 2 Member
  1. steven99

    Replacing credit card form with own

    I think I will stick with the documented function for now but thanks.
  2. steven99

    Replacing credit card form with own

    I found that _remoteinput was on the credit card checkout page only and remoteupdate was on the manage card page and both only fire on the client side. However, remoteinput does not work for me as it includes the 3dsecure stuff even when _3dsecure() is not given. This causes the 3dsecure iframe to post to the stripe card enter form before any card information is done and thus causes an error that no card was given. Do you know of a switch to prevent that behavior or should I just presume such request is for the 3dauth without a flag?
  3. I am developing a module for Stripe that uses the Elements Stripe.js version that would require less PCI requirements and support of other Stripe payment features. The WHMCS stripe module uses Stripe.js v2 which requires more PCI requirements and it is deprecated. Stripe uses "off site tokenization" by using their own forms. There is a request to switch to Elements but has been there for a year and not ETAs as well as only supporting cards and not other stripe payment options (beyond apple pay) I need to replace the credit card form that WHMCS uses with my own form / Stripe's Elements form so that the information is saved at Stripe and the token saved in WHMCS. Using WHMCS's form for cards wont work here as it needs to use Stripe's. I found _remoteinput in WHMCS doc,, but that does not fire in 7.6 and support has said it is no longer available and sent me this direction for further help. However, WHMCS's own Stripe module replaces the form with the Stripe.js form so it must be using that function or another hidden one. _storeremote wont work because it uses WHMCS's form . Does anyone know of a way to replace the WHMCS credit card form in the admin area and orders pages? The remoteupdate function appears to still work for the manage credit card page, though waiting on a confirmation it wont be removed later on.
  4. The _capture function should be fired when the cron runs to process billing.
  5. steven99

    API GetTickets

    It is just signs of WHMCS tightening the API and security, which is good. The gettickets without assigned departments has been around for a while . It makes sense the way the API works now, but perhaps the API role should have which queues you want access to instead of or in addition to the per user setting. Or at least note it some where.
  6. steven99

    API GetTickets

    Make sure the user you're using has the department you want to get tickets for assigned to the user. It is a security feature to limit data you only want them to get access to. Also check API credentials and roles to ensure they have gettickets as allowed permission. A side note, this only applies to remote calls as localapi returns all results since the script could just use database connections to get it.
  7. You could try the enom pro module -- https://mycircletree.com/products/enom-pro-whmcs-addon/ -- which has a import option. However, it looks like it may not be 7.0 ready.
  8. Why not use the API function SendEmail ? http://developers.whmcs.com/api-reference/sendemail/ . Though if you are in a function without client vars given, you will need to search first using getclients - http://developers.whmcs.com/api-reference/getclients/ . Just set the the custommessage and customsubject to what you need and the ID to the client id found in getclients. As for parsing the file, you'll need to double check the parsed information is correct. Also, depending on the size of the file using a while might be better such as : $filename = "test.txt"; $source_file = fopen( $filename, "r" ) or die("Couldn't open $filename"); while (!feof($source_file)) { $buffer = fread($source_file, 4096); // use a buffer of 4KB $buffer = str_replace($old,$new,$buffer); /// } as grabbed from http://stackoverflow.com/questions/13246597/how-to-read-a-file-line-by-line-in-php .
  9. steven99

    Getting next due date for product

    http://developers.whmcs.com/api-reference/getclientsproducts/ would have that info .
  10. steven99

    API : Send Custom Email to Customer

    https://developers.whmcs.com/api-reference/sendemail/ Set "customtype" to the type of email template that you created. Set "messagename" to the email template name. Set the "id" to the customer id or if it is a service template set it to the service id. Then in the template just use the usual variables as shown on the template page. That would work for any customer you feed in. If you really need it for just "specific customer" ( one customer ), you could just do the same and name it special for that customer. Or use the template if/else statements to customize it for the specific customer: {if $client_id eq 11111 }Hey Joe, this is your specific message{/if}
  11. steven99

    Snail Mail

    Create a custom field checkbox for clients to check that want paper invoice. Make a module that connects to Postal Methods http://www.postalmethods.com/, or similar services. Postal Method's API looks easy enough. http://www.postalmethods.com/resources/samples/php/441 . The issue would be getting the PDF of the invoice, but http://thewanderingsysadmin.net/?p=35 appears to do that without much fuss. (don't know which version that works on) Another option is to save the PDF on creation as mentioned in http://stackoverflow.com/questions/19994866/getting-the-pdf-invoice-from-whmcs and use that in the module to send out.
  12. steven99

    Take data "record date"

    Are you trying to get that in a hook or a standard module function? If a standard module function, it should be in the $vars variable (first variable in the function declaration). If in a hook, you'll need to use the GetClientProducts API https://developers.whmcs.com/api-reference/getclientsproducts/ and find the product in question in the products array. You can also try out the class based API . If those don't work for your situation, explain why using globals would be better?
  13. steven99

    Different Nameserver scenarios

    Hooks and API: For registrations, use https://developers.whmcs.com/hooks-reference/registrar-module/#afterregistrarregistration . For transfers, use https://developers.whmcs.com/hooks-reference/registrar-module/#afterregistrartransfer . In the hook, get client services and if none, use the set "B" that you'll need to hard code or otherwise have outside of WHMCS's defaults. Then you would call the updatenameservers API: https://developers.whmcs.com/api-reference/domainupdatenameservers/ within the hook. However, note that updating the nameservers for transfers could potentially cause downtime / issues for the customer if the DNS records are not pointed to their proper place and as such I would be recommend only doing this for registrations.
  14. steven99

    Automatic Ticket

    Very easy to do via the API: https://developers.whmcs.com/api-reference/openticket/ You can either use a plain php file outside of whmcs' directory (so it wont be mixed up / overwritten by updates) with the example code given for external API. Or if you're using a custom server module, add the button as a client area service button, and put the internal API for open ticket.
  15. They likely have different systems / steps for different supported countries. Check http://www.authorize.net/en-GB/ for help and you will probably need to contact their support.

Important Information

By using this site, you agree to our Terms of Use & Guidelines