Aria is
a system founded by five Billing Experts,
who have worked for LaserLink.net an
internet service provider. Aria is basically a billing
system which
generates bill based upon the usage and the charges. For instance,
mobile service providers may use Aria for generating bills of their
subscribers based upon the usage of the services. Service Provider
registers each subscriber of a service into Aria system with some
information like Name, Address, Plans,
Bill payment type, etc. Also the information like cost
per unit of usage, required for generating the bill
has to be provided at the time of user registration.
Aria
information can be accessed through the website() or we can access it
making http connections or REST calls. Some companies use Aria as a
third party bill generating system use it by making REST calls.
For
making these calls we have to provide some authentication information
like Auth Key and Client
No. in
the url itself. Also with this information, we have to embed
parameters, corresponding to the function that is called. Aria system
provided some useful rest calls to access its information. There is
proper documentation of these rest calls
here .
For
example,
URL
Formation:
https://secure.future.stage.ariasystems.net/api/AriaQuery/objects.php?rest_call=get_acct_details_all&client_no=Client_No&auth_key=Auth_key&acct_no=Account_No&output_format=json
Here,
https://secure.future.stage.ariasystems.net/api/AriaQuery/objects.php?
Is the Base
Url
and we are making use of the function get_acct_details_all which
requires three parameters:
- client_no
- auth_key
- acct_no
Out
of these parameters first two are necessary for making any Aria call.
Each key-value pair in the url is separated by the delimiter '&'. Aria
returns output in the form of Xml or
as json.
ARIA
Functions:
There
are no. of various API functions provided by Aria. These functions
are divided into some categories depending upon the functionality
they perform. The important thing here is to notice that all
functions except the functions with query as a parameter require,
same base url.
Functions
without query as a parameter:
Base
Url:
https://secure.future.stage.ariasystems.net/api/ws/api_ws_class_dispatcher.php?
Functions
with Query as a parameter:
The
above functions take query string as a parameter-
- get_account_details( username, password, limit, offset, query_string)
- get_account_status_history(username, password, limit,offset, query_string)
- get_account_plan _history( username, password, limit, offset, query_string)
- get_payment_details( username, password, limit, offset, query_string)
- get_order_details( username, password, limit, offset, query_string)
- get_invoice_information( username, password, limit, offset, query_string)
- get_transaction_information( username, password, limit, offset, query_string)
- get_transaction_information( username, password, limit, offset, query_string)
- get_coupon_history (client_no, auth_key, limit, offset, query_string)
where,
limit
- The maximum number of objects that should be returned by this call.
offset
- The number of records to skip. Note that both "0"
and NULL will cause the interface not to skip any records.
query_string
- The criteria which all returned objects must match. Different
objects have a different .
Base
Url: https://secure.future.stage.ariasystems.net/api/AriaQuery/objects.php?
Some
information cannot be directly accessed by these calls, instead we
have to write a query along
with the function calls. Suppose we have to get information about all
the accounts present under a client. For doing this no function is
provided by Aria. So, we have to write a query “acct_no != 0”
in encoded format like
acct_no%20!%3D%200%3E.
For
example,
https://secure.future.stage.ariasystems.net/api/AriaQuery/objects.php?rest_call=get_account_details_all&client_no=Client_No&auth_key=Auth_key&acct_no=Account_No&output_format=json&query_string=acct_no%20!%3D%200%3E
Here
we have used acct_no as a
condition parameter. Aria API Documentation has apparently given
which parameters we can specify in the query for a particular
function.
Instead
of writing the code for accessing information, we can use Postman
– Rest Client from the google
chrome store which can
provide the data in Xml or in Json format.
Based
on the previous discussion, we have written the code to get data from
Aria. Where we are getting data in the form Json string and then
converting it into Json Object as shown.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public JsonObject getAriaResponse(String ariaUri,String ariaFuncString,String queryString) { String responseStr; String clientNo = "Enter Client No"; String authKey = "Enter Auth Key"; JsonParser jParser = new JsonParser(); JsonObject obj = new JsonObject(); String UrlStr; try { if(queryString != null) UrlStr = ariaUri + "rest_call=" + ariaFuncString+"&client_no="+clientNo+"&auth_key="+authKey+"&query_string="+queryString+"&output_format=json"; else UrlStr = ariaUri + "rest_call=" + ariaFuncString+"&client_no="+clientNo+"&auth_key="+authKey+"&output_format=json"; System.out.println("URI: "+UrlStr); URL url = new URL(UrlStr); URLConnection urlc = url.openConnection(); urlc.setDoOutput(true); urlc.setAllowUserInteraction(false); PrintStream ps = new PrintStream(urlc.getOutputStream()); ps.close(); BufferedReader br = new BufferedReader(new InputStreamReader(urlc.getInputStream())); responseStr = br.readLine(); obj = jParser.parse(responseStr).getAsJsonObject(); } catch(Exception e) { e.printStackTrace(); } return obj; }
Hi there! I'm at work browsing your blog from my new apple iphone! Just wanted to say I love reading through your blog and look forward to all your posts! Keep up the outstanding work!
ReplyDeleteHere is my blog post ... greitas kreditas nedirbantiems
Thanks a lot....
DeleteI and my colleague Srijan have done detailed work on Aria System and would be happy to help you out for your issues..
I am really impressed with your writing skills as well as with the layout on your blog.
ReplyDeleteIs this a paid theme or did you modify it yourself? Either way keep
up the nice quality writing, it's rare to see a great blog like this one nowadays.
Also visit my webpage: vaticano
Thanks a ton...
DeleteBut the theme is not paid, you can modify the layout with some suitable backgrounds provided by blogger.
Hi
ReplyDeleteThanks for this post, we are tying to make rest call to get account details but always getting 500 internal server error, we are using same format, any idea??
It is difficult to get the problem from your explanation. There are different Base URLs for different kind of calls. The problem may be because of the improper Base URL. I hope this could solve your problem.
DeleteThanks.