SmartXchange

The SmartXchange Proxy is a service used the same way as the SmartIntegrator XmlEngine servlet, but is a single connection point able to reach multiple SmartOffice servers. SmartXchange also provides Ebix administrative control to provide partners with authenticated access to SmartOffice servers for their services. Requests are made through XML requests, and a response is returned.

Depending on your decision to access SmartIntegrator directly or communicate through SmartXchange, the processing and formatting of your Requests will change slightly.

The primary testing method for SmartXchange Proxy is the TestBed, which support both SmartIntegrator and SmartXchange.

SmartXchange.png

SmartXchange Proxy Requests/Reponses

To send SmartXchange proxy requests, you must first understand how to send requests to the XmlEngine API. SmartXchange requests are essentially XmlEngine requests enclosed in special proxy tags.

For example:
<dxoproxy-request version='1.0.1'>
  <transaction action='adapter.xmlEngine'>
    <data>
      <DXOUserName>DXO_UserName</DXOUserName>
      <siData>
        <!-- XML Engine request begins here -->
        <request version='1.0'>
          <header>
            <office/>
            <user/>
            <password/>
          </header>
        <!-- Remainder of XML Engine request goes here -->
      </siData>
    </data>
  </transaction>
</dxoproxy-request>

After submitting the request, you receive a response just as in XmlEngine. In the example, note the following:
  • SmartXchange tags: The XmlEngine request is located within the siData tags.
  • Request header information: In the XMLEngine request, the <header> element contains empty <office>, <user> and <password> elements. In SmartXchange requests, it is typical to leave these elements empty (the DXOUserName element passes information about the user instead). However, these elements are required.
  • DXOUsername: The <DXOUserName> element is required. It passes the user information to the proxy server.
When sending requests to the SmartXchange proxy service, you must also send the partner ID information (adapter name, user name and password) provided to you by Ebix. Include this information as hidden fields in your HTML form using the following format, inserting your partner ID information in the value attributes:
<input type="hidden" id="dxoAdapterName" NAME="adpName" value=""/>
<input type="hidden" id="dxoUserName" NAME="user" value=""/>
<input type="hidden" id="dxoPassword" NAME="password" value=""/>

Click the link below to see an example of an HTML form containing these hidden fields and showing how to post a request to SmartXchange:

SampleSmartXchangePostHTML

SmartXchange Adapter Service

There is a second "Adapter" web service running on SmartXchange used for administering services and user subscriptions running over the SmartXchange platform (Examples include https://dxo20qa.ez-data.com/dxoapp/adapter or https://dxo20.ezdata.com/dxoapp/adapter). All requests to this service need to have the Partner adpName, user, and password inputs passed in the header, just like a Proxy request.

GetAdptSiteService

This action allows partners to retrieve the name of each service and find out which SmartOffice sites have their service enabled. To make this request, the partner credentials are the only input needed.

Request XML
<dxo-request version="1.0.1">
    <transaction action="adapter.getadptsiteservice">
        <data>
            <AdapterName>SmartTicket</AdapterName>
            <UserName>smartticket</UserName>
            <Password>abc123</Password>
        </data>
    </transaction>
</dxo-request>

Reponse XML
<dxo-response version='1.0.1' time='1359418700777' id=''>
    <transaction id='' action='adapter.getadptsiteservice' requestId='6393247'>
        <UI/>
        <data>
            <response>
                <Service name="SmartTicket">
                    <Site name="EVAL6"/>
                </Service>
                <Service name="eSignature">
                    <Site name="EVAL6"/>
                </Service>
            </response>
        </data>
    </transaction>
</dxo-response>

GetAdptUser

This action allows partners to retrieve the DXOUserName value of every user that has subscribed to their service. This request can only be done for a single site and service per transaction.

Request XML
<dxo-request version="1.0.1">
    <transaction action="adapter.getadptuser">
        <data>
            <AdapterName>SmartTicket</AdapterName>
            <UserName>smartticket</UserName>
            <Password>abc123</Password>
            <Service>SmartTicket</Service>
            <Site>EVAL6</Site>
        </data>
    </transaction>
</dxo-request>

Response XML
<dxo-response version='1.0.1' time='1359418915518' id=''>
    <transaction id='' action='adapter.getadptuser' requestId='6393248'>
        <UI/>
        <data>
            <response>
                <Service name="SmartTicket">
                    <Site name="EVAL6">
                        <UserName>EVAL6_Ebixdemo_pdicicco</UserName>
                        <UserName>EVAL6_Ebixdemo_Phil</UserName>
                        <UserName>EVAL6_eval60_california_carolyn</UserName>
                        <UserName>EVAL6_CulverCity_Phil</UserName>
                        <UserName>EVAL6_Dublin_Daniel</UserName>
                        <UserName>EVAL6_Ebixdemo_aschitea</UserName>
                        <UserName>EVAL6_Ebixdemo_mnevins</UserName>
                        <UserName>EVAL6_CulverCity_Daniel</UserName>
                        <UserName>EVAL6_Hermosa_Daniel</UserName>
                        <UserName>EVAL6_Ebixdemo_vtroffer</UserName>
                        <UserName>EVAL6_Ebixdemo_Admin</UserName>
                        <UserName>EVAL6_Ebixdemo_eburgess</UserName>
                    </Site>
                </Service>
            </response>
        </data>
    </transaction>
</dxo-response>

GetSODetails

This action allows partners to retrieve the UserID and UserName properties for a SmartOffice user account using the DXOUserName value.

Request XML
<dxo-request version='1.0.1'>
    <transaction action='user.getSODetails'>
        <data>
            <DXOUserName>PREPRODNEW_OFFICE_jdoe</DXOUserName>
        </data>
    </transaction>
</dxo-request>

Response XML
<dxo-response version="1.0.1" time="1506621834687" id="">
    <transaction DXOUserName="dxoadmin" id="" action="user.getSODetails" requestId="11718653">
        <data>
            <response>
                <ExtLink>PREPRODNEW_OFFICE_User</ExtLink> 
                <SiteName>PREPRODNEW</SiteName> 
                <UserId>User.1.1</UserId> 
                <OfficeName>OFFICE</OfficeName> 
                <UserName>jdoe</UserName> 
            </response>
        </data>
    </transaction>
</dxo-response>

Validate

This action allows partners to determine whether a specific user has their license enabled.

Request XML
<dxo-request version="1.0.1">
  <transaction action="subscription.validate">
    <data>
      <DXOUserName>EVAL6_SDC_Bryan_Eshelbrenner</DXOUserName>
      <ServiceName>iPhone</ServiceName>
    </data>
  </transaction>
</dxo-request>



-- Main.dustin - 24 Oct 2012
Topic revision: 29 Sep 2017, DinosLambropoulos
 

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback