whmcs-api 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +37 -0
- data/Rakefile +17 -0
- data/lib/whmcs.rb +33 -0
- data/lib/whmcs/announcement.rb +69 -0
- data/lib/whmcs/base.rb +75 -0
- data/lib/whmcs/client.rb +607 -0
- data/lib/whmcs/config.rb +24 -0
- data/lib/whmcs/domain.rb +214 -0
- data/lib/whmcs/invoice.rb +253 -0
- data/lib/whmcs/misc.rb +266 -0
- data/lib/whmcs/module.rb +99 -0
- data/lib/whmcs/order.rb +195 -0
- data/lib/whmcs/quote.rb +127 -0
- data/lib/whmcs/ticket.rb +227 -0
- data/lib/whmcs/version.rb +3 -0
- data/test/test_helper.rb +27 -0
- data/test/whmcs_announcement_test.rb +29 -0
- data/test/whmcs_test.rb +16 -0
- metadata +90 -0
data/lib/whmcs/misc.rb
ADDED
@@ -0,0 +1,266 @@
|
|
1
|
+
module WHMCS
|
2
|
+
# The WHMCS::Misc class contains miscelaneous WHMCS API functions
|
3
|
+
class Misc < Base
|
4
|
+
|
5
|
+
# Get activity log
|
6
|
+
#
|
7
|
+
# Optional attributes:
|
8
|
+
#
|
9
|
+
# * <tt>:limitstart</tt> - Which User ID to start at (default = 0)
|
10
|
+
# * <tt>:limitnum</tt> - Limit by number (default = 25)
|
11
|
+
#
|
12
|
+
# See:
|
13
|
+
#
|
14
|
+
# http://docs.whmcs.com/API:Get_Activity_Log
|
15
|
+
def self.get_activity_log(params = {})
|
16
|
+
params.merge!(:action => 'getactivitylog')
|
17
|
+
send_request(params)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Get administrator details
|
21
|
+
#
|
22
|
+
# See:
|
23
|
+
#
|
24
|
+
# http://docs.whmcs.com/API:Get_Admin_Details
|
25
|
+
def self.get_admin_details
|
26
|
+
send_request(:action => 'getadmindetails')
|
27
|
+
end
|
28
|
+
|
29
|
+
# Update administrator notes
|
30
|
+
#
|
31
|
+
# Parameters:
|
32
|
+
#
|
33
|
+
# * <tt>:notes</tt> - notes to enter
|
34
|
+
#
|
35
|
+
# See:
|
36
|
+
#
|
37
|
+
# http://docs.whmcs.com/API:Update_Admin_Notes
|
38
|
+
def self.update_admin_notes(params = {})
|
39
|
+
params.merge!(:action => 'updateadminnotes')
|
40
|
+
send_request(params)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Up To-Do Item
|
44
|
+
#
|
45
|
+
# Parameter:
|
46
|
+
# * <tt>:itemid</tt> - ID of the ToDo in WHMCS to update
|
47
|
+
# * <tt>:adminid</tt> - Admin ID to update the To Do item to
|
48
|
+
#
|
49
|
+
# Optional attributes:
|
50
|
+
# * <tt>:date</tt> - open date of the To Do YYYYMMDD
|
51
|
+
# * <tt>:title</tt> - Title of the to do
|
52
|
+
# * <tt>:description</tt> - Text of the To Do
|
53
|
+
# * <tt>:status</tt> - Status - New, Pending, In Progress, Completed, Postponed
|
54
|
+
# * <tt>:duedate</tt> - due date of the To Do YYYYMMDD
|
55
|
+
#
|
56
|
+
# See:
|
57
|
+
#
|
58
|
+
# http://docs.whmcs.com/API:Update_To-Do_Item
|
59
|
+
def self.update_todo_item(params = {})
|
60
|
+
params.merge!(:action => 'updatetodoitem')
|
61
|
+
send_request(params)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Get allowed currencies
|
65
|
+
#
|
66
|
+
# See:
|
67
|
+
#
|
68
|
+
# http://docs.whmcs.com/API:Get_Currencies
|
69
|
+
def self.get_currencies
|
70
|
+
params.merge!(:action => 'getcurrencies')
|
71
|
+
send_request(params)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Get promotions
|
75
|
+
#
|
76
|
+
# Note: WHMCS has this listed under Misc as well as invoices. It's
|
77
|
+
# aliased here for consistancy with their API docs
|
78
|
+
#
|
79
|
+
# Parameters:
|
80
|
+
#
|
81
|
+
# * <tt>:code</tt> - the specific promotion code to return information for (optional)
|
82
|
+
#
|
83
|
+
# See:
|
84
|
+
#
|
85
|
+
# http://docs.whmcs.com/API:Get_Promotions
|
86
|
+
def self.get_promotions(params = {})
|
87
|
+
params.merge!(:action => 'getpromotions')
|
88
|
+
send_request(params)
|
89
|
+
end
|
90
|
+
|
91
|
+
# Get email templates
|
92
|
+
#
|
93
|
+
# Optional attributes:
|
94
|
+
#
|
95
|
+
# * <tt>:type</tt> - optional - from product,domain,support,general,invoice,affiliate
|
96
|
+
# * <tt>:language</tt> - optional - only required for additional languages
|
97
|
+
#
|
98
|
+
# See:
|
99
|
+
#
|
100
|
+
# http://docs.whmcs.com/API:Get_Email_Templates
|
101
|
+
def self.get_email_templates(params = {})
|
102
|
+
params.merge!(:action => 'getemailtemplates')
|
103
|
+
send_request(params)
|
104
|
+
end
|
105
|
+
|
106
|
+
# Get todo items
|
107
|
+
#
|
108
|
+
# Optional attributes:
|
109
|
+
# * <tt>:status</tt> - optional - from New,Pending,In Progress,Completed,Postponed
|
110
|
+
# * <tt>:limitstart</tt> - where to start the output. Used for pagination. (default = 0)
|
111
|
+
# * <tt>:limitnum</tt> - limit the number of records returned (default = 25)
|
112
|
+
#
|
113
|
+
# See:
|
114
|
+
#
|
115
|
+
# http://docs.whmcs.com/API:Get_To-Do_Items
|
116
|
+
def self.get_todo_items(params = {})
|
117
|
+
params.merge!(:action => 'gettodoitems')
|
118
|
+
send_request(params)
|
119
|
+
end
|
120
|
+
|
121
|
+
# Get configured todo item statuses
|
122
|
+
#
|
123
|
+
# See:
|
124
|
+
#
|
125
|
+
# http://docs.whmcs.com/API:Get_To-Do_Items_Statuses
|
126
|
+
def self.get_todo_item_statuses
|
127
|
+
send_request(:action => 'gettodoitemstatuses')
|
128
|
+
end
|
129
|
+
|
130
|
+
# Get staff online
|
131
|
+
#
|
132
|
+
# See:
|
133
|
+
#
|
134
|
+
# http://docs.whmcs.com/API:Get_Staff_Online
|
135
|
+
def self.get_staff_online
|
136
|
+
send_request(:action => 'getstaffonline')
|
137
|
+
end
|
138
|
+
|
139
|
+
# Get stats
|
140
|
+
#
|
141
|
+
# See:
|
142
|
+
#
|
143
|
+
# http://docs.whmcs.com/API:Get_Stats
|
144
|
+
def self.get_stats
|
145
|
+
send_request(:action => 'getstats')
|
146
|
+
end
|
147
|
+
|
148
|
+
# Encrypt a password with the WHMCS algorithm
|
149
|
+
#
|
150
|
+
# Parameters:
|
151
|
+
#
|
152
|
+
# * <tt>:password2</tt> - should contain the string you want encrypting
|
153
|
+
#
|
154
|
+
# See:
|
155
|
+
#
|
156
|
+
# http://docs.whmcs.com/API:Encrypt_Password
|
157
|
+
def self.encrypt_password(params = {})
|
158
|
+
params.merge!(:action => 'encryptpassword')
|
159
|
+
send_request(params)
|
160
|
+
end
|
161
|
+
|
162
|
+
# Decrypt a string with the WHMCS algorithm
|
163
|
+
#
|
164
|
+
# This command is used to decrypt a string using the WHMCS encryption algorithm.
|
165
|
+
# This cannot be used to decrypt the clients password when using the MD5 Client passwords.
|
166
|
+
#
|
167
|
+
# Parameters:
|
168
|
+
#
|
169
|
+
# * <tt>:password2</tt> - should contain the string you want decrypting
|
170
|
+
#
|
171
|
+
# See:
|
172
|
+
#
|
173
|
+
# http://docs.whmcs.com/API:Decrypt_Password
|
174
|
+
def self.decrypt_password(params = {})
|
175
|
+
params.merge!(:action => 'decryptpassword')
|
176
|
+
send_request(params)
|
177
|
+
end
|
178
|
+
|
179
|
+
# Add Product
|
180
|
+
#
|
181
|
+
# Parameters:
|
182
|
+
# * <tt>:type</tt> one of hostingaccount, reselleraccount, server or other
|
183
|
+
# * <tt>:gid</tt> - the product group ID to add it to
|
184
|
+
# * <tt>:name</tt> - the product name
|
185
|
+
# * <tt>:paytype</tt> - free, onetime or recurring
|
186
|
+
#
|
187
|
+
# Optional attributes:
|
188
|
+
# * <tt>:description</tt> - the product description
|
189
|
+
# * <tt>:hidden</tt> - set true to hide
|
190
|
+
# * <tt>:showdomainoptions</tt> - set true to show
|
191
|
+
# * <tt>:welcomeemail</tt> - the email template ID for a welcome email
|
192
|
+
# * <tt>:qty</tt> - set quantity to enable stock control
|
193
|
+
# * <tt>:proratadate</tt>
|
194
|
+
# * <tt>:proratachargenextmonth</tt>
|
195
|
+
# * <tt>:autosetup</tt> - on, payment, order or blank for none
|
196
|
+
# * <tt>:module</tt> - module name
|
197
|
+
# * <tt>:servergroupid</tt> - server group ID
|
198
|
+
# * <tt>:subdomain</tt> - subdomain to offer with product
|
199
|
+
# * <tt>:tax</tt> - set true to apply tax
|
200
|
+
# * <tt>:order</tt> - display sort order to override default
|
201
|
+
# * <tt>:configoption1</tt>
|
202
|
+
# * <tt>:configoption2</tt>
|
203
|
+
# * <tt>:pricing</tt>
|
204
|
+
#
|
205
|
+
# See:
|
206
|
+
#
|
207
|
+
# http://docs.whmcs.com/API:Add_Product
|
208
|
+
def self.add_product(params = {})
|
209
|
+
params.merge!(:action => 'addproduct')
|
210
|
+
send_request(params)
|
211
|
+
end
|
212
|
+
|
213
|
+
# Log Activity
|
214
|
+
#
|
215
|
+
# Parameters:
|
216
|
+
# * <tt>:description</tt> - Text to add to the log
|
217
|
+
# Optional attributes:
|
218
|
+
# * <tt>:userid</tt> - UserID to assign the log to in order to appear in Client Log
|
219
|
+
#
|
220
|
+
# See:
|
221
|
+
#
|
222
|
+
# http://docs.whmcs.com/API:Log_Activity
|
223
|
+
def self.log_activity(params = {})
|
224
|
+
params.merge!(:action => 'logactivity')
|
225
|
+
send_request(params)
|
226
|
+
end
|
227
|
+
|
228
|
+
# Add Banned IP
|
229
|
+
#
|
230
|
+
# Parameters:
|
231
|
+
# * <tt>:ip</tt> - IP address to ban
|
232
|
+
# Optional attributes:
|
233
|
+
# * <tt>:reason</tt> - reason for ban
|
234
|
+
# * <tt>:days</tt> - number of days to ban for. If not submitted defaults to 7 (not required)
|
235
|
+
# * <tt>:expires</tt> - in YYYY-MM-DD HH:II:SS format eg: 2011-06-06 01:12:34 (optional in place of "days")
|
236
|
+
#
|
237
|
+
# See:
|
238
|
+
#
|
239
|
+
# http://docs.whmcs.com/API:Add_Banned_IP
|
240
|
+
def self.add_banned_ip(params = {})
|
241
|
+
params.merge!(:action => 'addbannedip')
|
242
|
+
send_request(params)
|
243
|
+
end
|
244
|
+
|
245
|
+
# Send Admin Email
|
246
|
+
# This command is used to send an email to Admin users
|
247
|
+
#
|
248
|
+
# Parameters:
|
249
|
+
# * <tt>:messagename</tt> - Name of the Admin email template to send
|
250
|
+
# * <tt>:mergefields</tt> - array of merge fields to populate the template being sent
|
251
|
+
# * <tt>:type</tt> - Who to send the email to. One of system, account or support. Default: system
|
252
|
+
#
|
253
|
+
# Optional attributes:
|
254
|
+
# * <tt>:customsubject</tt> - Subject for a custommessage being sent
|
255
|
+
# * <tt>:custommessage</tt> - Send a custom email to admin users, this will override 'messagename'
|
256
|
+
# * <tt>:deptid</tt> - If type = support, the users of a department to send email to
|
257
|
+
#
|
258
|
+
# See:
|
259
|
+
#
|
260
|
+
# http://docs.whmcs.com/API:Send_Admin_Email
|
261
|
+
def self.send_admin_email(params = {})
|
262
|
+
params.merge!(:action => 'sendadminemail')
|
263
|
+
send_request(params)
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|
data/lib/whmcs/module.rb
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
module WHMCS
|
2
|
+
# WHMCS::Module is the class for working with hosting account modules
|
3
|
+
class Module < Base
|
4
|
+
|
5
|
+
# Run the module create command
|
6
|
+
#
|
7
|
+
# Parameters:
|
8
|
+
#
|
9
|
+
# * <tt>:accountid</tt> - the unique id number of the account in the tblhosting table
|
10
|
+
#
|
11
|
+
# See:
|
12
|
+
#
|
13
|
+
# http://docs.whmcs.com/API:Module_Create
|
14
|
+
def self.module_create(params = {})
|
15
|
+
params.merge!(:action => 'modulecreate')
|
16
|
+
send_request(params)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Run the module suspend command
|
20
|
+
#
|
21
|
+
# Parameters:
|
22
|
+
#
|
23
|
+
# * <tt>:accountid</tt> - the unique id number of the account in the tblhosting table
|
24
|
+
#
|
25
|
+
# Optional attributes:
|
26
|
+
# * <tt>:suspendreason</tt> - an explanation of why the suspension has been made shown to clients & staff
|
27
|
+
#
|
28
|
+
# See:
|
29
|
+
#
|
30
|
+
# http://docs.whmcs.com/API:Module_Suspend
|
31
|
+
def self.module_suspend(params = {})
|
32
|
+
params.merge!(:action => 'modulesuspend')
|
33
|
+
send_request(params)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Run the module unsuspend command
|
37
|
+
#
|
38
|
+
# Parameters:
|
39
|
+
#
|
40
|
+
# * <tt>:accountid</tt> - the unique id number of the account in the tblhosting table
|
41
|
+
#
|
42
|
+
# See:
|
43
|
+
#
|
44
|
+
# http://docs.whmcs.com/API:Module_Unsuspend
|
45
|
+
def self.module_unsuspend(params = {})
|
46
|
+
params.merge!(:action => 'moduleunsuspend')
|
47
|
+
send_request(params)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Run the module terminate command
|
51
|
+
#
|
52
|
+
# Parameters:
|
53
|
+
#
|
54
|
+
# * <tt>:accountid</tt> - the unique id number of the account in the tblhosting table
|
55
|
+
#
|
56
|
+
# See:
|
57
|
+
#
|
58
|
+
# http://docs.whmcs.com/API:Module_Terminate
|
59
|
+
def self.module_terminate(params = {})
|
60
|
+
params.merge!(:action => 'moduleterminate')
|
61
|
+
send_request(params)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Module Change Package
|
65
|
+
#
|
66
|
+
# This command is used to run the change package module command
|
67
|
+
#
|
68
|
+
# Parameters:
|
69
|
+
#
|
70
|
+
# *<tt>:serviceid</tt> - ID of the service in WHMCS to run the module command
|
71
|
+
#
|
72
|
+
# See:
|
73
|
+
#
|
74
|
+
# http://docs.whmcs.com/API:Module_Change_Package
|
75
|
+
def self.module_change_package(params = {})
|
76
|
+
params.merge!(:action => 'modulechangepackage')
|
77
|
+
send_request(params)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Module Change Password
|
81
|
+
#
|
82
|
+
# This command is used to issue the change password command to the module for a service.
|
83
|
+
#
|
84
|
+
# Params:
|
85
|
+
# * <tt>:serviceid</tt> - the unique id of the service to perform the action on (aka tblhosting.id)
|
86
|
+
#
|
87
|
+
# Optional attributes:
|
88
|
+
#
|
89
|
+
# * <tt>:servicepassword</tt> - Specify to update the password on the service before calling
|
90
|
+
#
|
91
|
+
# See:
|
92
|
+
#
|
93
|
+
# http://docs.whmcs.com/API:Module_Change_Password
|
94
|
+
def self.module_change_password(params = {})
|
95
|
+
params.merge!(:action => 'modulechangepw')
|
96
|
+
send_request(params)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/lib/whmcs/order.rb
ADDED
@@ -0,0 +1,195 @@
|
|
1
|
+
module WHMCS
|
2
|
+
# WHMCS::Order is the class for managing orders
|
3
|
+
class Order < Base
|
4
|
+
|
5
|
+
# Create a new order
|
6
|
+
#
|
7
|
+
# Parameters:
|
8
|
+
#
|
9
|
+
# * <tt>:clientid</tt> - client id for order
|
10
|
+
# * <tt>:pid</tt> - product id
|
11
|
+
# * <tt>:domain</tt> - domain name
|
12
|
+
# * <tt>:billingcycle</tt> - onetime, monthly, quarterly, semiannually, etc..
|
13
|
+
# * <tt>:domaintype</tt> - set for domain registration - register or transfer
|
14
|
+
# * <tt>:regperiod</tt> - 1,2,3,etc...
|
15
|
+
# * <tt>:eppcode</tt> - if transfer
|
16
|
+
# * <tt>:nameserver1</tt> - first nameserver (req for domain reg only)
|
17
|
+
# * <tt>:paymentmethod</tt> - paypal, authorize, etc...
|
18
|
+
#
|
19
|
+
# Optional attributes:
|
20
|
+
# * <tt>:customfields</tt> - a base64 encoded serialized array of custom field values
|
21
|
+
# * <tt>:configoptions</tt> - a base64 encoded serialized array of configurable product options
|
22
|
+
# * <tt>:priceoverride</tt> - allows you to pass in a custom price override for the product
|
23
|
+
# * <tt>:promocode</tt> - pass coupon code to apply to the order (optional)
|
24
|
+
# * <tt>:promooverride</tt> - pass this to override the products a coupon applies to (like through the admin area)
|
25
|
+
# * <tt>:affid</tt> - affiliate ID if you want to assign the order to an affiliate (optional)
|
26
|
+
# * <tt>:noinvoice</tt> - set true to not generate an invoice for this order
|
27
|
+
# * <tt>:noinvoiceemail</tt> - set true to generate but not send the invoice notification email
|
28
|
+
# * <tt>:noemail</tt> - set true to surpress the order confirmation email
|
29
|
+
# * <tt>:clientip</tt> - can be used to pass the customers IP (optional)
|
30
|
+
# * <tt>:addons</tt> - comma seperated list of addon ids
|
31
|
+
#
|
32
|
+
# For VPS/Dedicated Server Orders only:
|
33
|
+
# * <tt>:hostname</tt> - The hostname of the server. This will be added to domain automatically
|
34
|
+
# * <tt>:ns1prefix</tt> - the prefix to be used for the NS1 nameserver
|
35
|
+
# * <tt>:ns2prefix</tt> - the prefix to be used for the NS2 nameserver
|
36
|
+
# * <tt>:rootpw</tt> - The root password for the server
|
37
|
+
#
|
38
|
+
# For Domain registration only:
|
39
|
+
# * <tt>:contactid</tt> - the ID of a contact to use for the domain registrant details
|
40
|
+
# * <tt>:dnsmanagement</tt> - true to enable
|
41
|
+
# * <tt>:domainfields</tt> - a base64 encoded serialized array of the TLD specific field values
|
42
|
+
# * <tt>:emailforwarding</tt> - true to enable
|
43
|
+
# * <tt>:idprotection</tt> - true to enable
|
44
|
+
# * <tt>:nameserver2</tt> - second nameserver
|
45
|
+
# * <tt>:nameserver3</tt> - third nameserver
|
46
|
+
# * <tt>:nameserver4</tt> - fourth nameserver
|
47
|
+
#
|
48
|
+
# For domain renewals:
|
49
|
+
# * <tt>:domainrenewals</tt> - This is a name -> value array of domain -> regperiod
|
50
|
+
#
|
51
|
+
# See:
|
52
|
+
#
|
53
|
+
# http://docs.whmcs.com/API:Add_Order
|
54
|
+
def self.add_order(params = {})
|
55
|
+
params.merge!(:action => 'addorder')
|
56
|
+
send_request(params)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Get orders
|
60
|
+
#
|
61
|
+
# Optional attributes:
|
62
|
+
# * <tt>:id</tt> - to get a specific order ID only
|
63
|
+
# * <tt>:userid</tt> - to get all orders for a specific client ID
|
64
|
+
# * <tt>:status</tt> - to get all orders in a specific status: Pending, Active, Fraud, Cancelled
|
65
|
+
# * <tt>:limitstart</tt> - The record number to start at (default = 0)
|
66
|
+
# * <tt>:limitnum</tt> - The number of order records to return (default = 25)
|
67
|
+
#
|
68
|
+
# See:
|
69
|
+
#
|
70
|
+
# http://docs.whmcs.com/API:Get_Orders
|
71
|
+
def self.get_orders(params = {})
|
72
|
+
params.merge!(:action => 'getorders')
|
73
|
+
send_request(params)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Get products
|
77
|
+
#
|
78
|
+
# Parameters:
|
79
|
+
#
|
80
|
+
# * <tt>:pid</tt> - can be used to just retrieve the details of a specific product ID
|
81
|
+
# * <tt>:gid</tt> - can be passed to just retrieve products in a specific group
|
82
|
+
# * <tt>:module</tt> - can be passed to just retrieve products assigned to a specific module
|
83
|
+
#
|
84
|
+
# See:
|
85
|
+
#
|
86
|
+
# http://docs.whmcs.com/API:Get_Products
|
87
|
+
def self.get_products(params = {})
|
88
|
+
params.merge!(:action => 'getproducts')
|
89
|
+
send_request(params)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Get promotions
|
93
|
+
#
|
94
|
+
# Optional attributes:
|
95
|
+
#
|
96
|
+
# * <tt>:code</tt> - the specific promotion code to return information for (optional)
|
97
|
+
#
|
98
|
+
# See:
|
99
|
+
#
|
100
|
+
# http://docs.whmcs.com/API:Get_Promotions
|
101
|
+
def self.get_promotions(params = {})
|
102
|
+
params.merge!(:action => 'getpromotions')
|
103
|
+
send_request(params)
|
104
|
+
end
|
105
|
+
|
106
|
+
# Get order statuses
|
107
|
+
#
|
108
|
+
# See:
|
109
|
+
#
|
110
|
+
# http://docs.whmcs.com/API:Get_Order_Statuses
|
111
|
+
def self.get_order_statuses
|
112
|
+
params.merge!(:action => 'getorderstatuses')
|
113
|
+
send_request(params)
|
114
|
+
end
|
115
|
+
|
116
|
+
# Accept an order
|
117
|
+
#
|
118
|
+
# Parameters:
|
119
|
+
#
|
120
|
+
# * <tt>:orderid</tt> - the Order ID
|
121
|
+
#
|
122
|
+
# Optional attributes:
|
123
|
+
# * <tt>:serverid</tt> - the Server ID to provision any hosting products in the order to, overrides default
|
124
|
+
# * <tt>:serviceusername</tt> - the Username to assign for provisioning, overrides default
|
125
|
+
# * <tt>:servicepassword</tt> - the Password to assign for products being provisioned, overrides auto generation
|
126
|
+
# * <tt>:registrar</tt> - the domain registrar module to assign any domains to
|
127
|
+
# * <tt>:autosetup</tt> - true/false - determines whether product provisioning is performed
|
128
|
+
# * <tt>:sendregistrar</tt> - true/false determines whether domain automation is performed
|
129
|
+
# * <tt>:sendemail</tt> - true/false - sets if welcome emails for products and registration confirmation emails for domains should be sent
|
130
|
+
#
|
131
|
+
# See:
|
132
|
+
#
|
133
|
+
# http://docs.whmcs.com/API:Accept_Order
|
134
|
+
def self.accept_order(params = {})
|
135
|
+
params.merge!(:action => 'acceptorder')
|
136
|
+
send_request(params)
|
137
|
+
end
|
138
|
+
|
139
|
+
# Place an order in pending
|
140
|
+
#
|
141
|
+
# Parameters:
|
142
|
+
#
|
143
|
+
# * <tt>:orderid</tt> - the Order ID
|
144
|
+
#
|
145
|
+
# See:
|
146
|
+
#
|
147
|
+
# http://docs.whmcs.com/API:Pending_Order
|
148
|
+
def self.pending_order(params = {})
|
149
|
+
params.merge!(:action => 'pendingorder')
|
150
|
+
send_request(params)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Cancel an order
|
154
|
+
#
|
155
|
+
# Parameters:
|
156
|
+
#
|
157
|
+
# * <tt>:orderid</tt> - the Order ID
|
158
|
+
#
|
159
|
+
# See:
|
160
|
+
#
|
161
|
+
# http://docs.whmcs.com/API:Cancel_Order
|
162
|
+
def self.cancel_order(params = {})
|
163
|
+
params.merge!(:action => 'cancelorder')
|
164
|
+
send_request(params)
|
165
|
+
end
|
166
|
+
|
167
|
+
# Mark an order as fraud
|
168
|
+
#
|
169
|
+
# Parameters:
|
170
|
+
#
|
171
|
+
# * <tt>:orderid</tt> - the Order ID
|
172
|
+
#
|
173
|
+
# See:
|
174
|
+
#
|
175
|
+
# http://docs.whmcs.com/API:Fraud_Order
|
176
|
+
def self.fraud_order(params = {})
|
177
|
+
params.merge!(:action => 'fraudorder')
|
178
|
+
send_request(params)
|
179
|
+
end
|
180
|
+
|
181
|
+
# Delete an order
|
182
|
+
#
|
183
|
+
# Parameters:
|
184
|
+
#
|
185
|
+
# * <tt>:orderid</tt> - the Order ID
|
186
|
+
#
|
187
|
+
# See:
|
188
|
+
#
|
189
|
+
# http://docs.whmcs.com/API:Delete_Order
|
190
|
+
def self.delete_order(params = {})
|
191
|
+
params.merge!(:action => 'deleteorder')
|
192
|
+
send_request(params)
|
193
|
+
end
|
194
|
+
end
|
195
|
+
end
|