USA Web Service

From Netsville Support
Revision as of 14:37, 20 January 2012 by Netsville Support (talk | contribs)
Jump to navigation Jump to search

Development Server

Requests are RESTful URL calls combined with XML sent as raw Standard Input (non-urlencoded POST Requests). To reach the Web Service, use this URL:

http://signals.thewhiteroom.com/cgi-bin/ws

The URL must be combined with a command such as login, shipping, tax, or checkout. So a full request will look like one of these:

User Login

Allow access to membership database so mobile app can authenticate existing accounts. Calls will be made directly to MySQL database to authenticate user login. Response will be name, address, phone, etc of customer table.

Here is an example of how to make this call:

  • RESTful Request
http://signals.thewhiteroom.com/cgi-bin/ws/login
  • Expected XML

<MemberRequest>
  <Email>johnsmith@example.com</Email>
  <Password>12345</Password>
</MemberRequest>

  • XML Response

<?xml version="1.0" encoding="utf-8" ?>
 <MemberResponse>
  <MemberID>5</MemberID>
   <Addresses>
    <Address type="billing">
     <Email>johnsmith@example.com</Email>
     <FirstName>John</FirstName>
     <LastName>Smith</LastName>
     <Street1>72 Cascade Dr</Street1>
     <Street2>Ste 2</Street2>
     <City>Rochester</City>
     <State>NY</State>
     <Zip>14614</Zip>
     <DayPhone>585-232-5670</DayPhone>
     <EveningPhone></EveningPhone>
    </Address>
   </Addresses>
</MemberResponse>

Shipping Info

Allow access to Hazel's shipping cost calculator (a custom Hazel template). Web service will allow for remotely calling Hazel with given products and address information with filtered response of shipping options and costs. This is specific to the customer. Currently, only the products themselves are used in the calculation (not the address).

  • RESTful Request
http://signals.thewhiteroom.com/cgi-bin/ws/shipping
  • Expected XML

<ShippingRequest>
   <Zip>80007</Zip>
   <ProductIDs>
     <ProductID qty="1">HK6614</ProductID>
     <ProductID qty="3">HJ2722</ProductID>
   </ProductIDs>
</ShippingRequest>

  • XML Response

<?xml version="1.0" encoding="utf-8" ?>
 <ShippingResponse>
  <ShippingCost>
   <Method type="Standard">11.99</Method>
   <Method type="Rush (Continental US Only)">20.98</Method>
   <Method type="2-Day (Continental US Only)">24.98</Method>
   <Method type="Canada">24.94</Method>
  </ShippingCost>
 </ShippingResponse>

Tax Calculator

Only the state is used to calculate tax (on the store used on the devel site). We may need to expand this in a later revision. Other options can be sent, but only <State> is read from the Tax Request.

  • RESTful Request
http://signals.thewhiteroom.com/cgi-bin/ws/tax
  • Expected XML

<TaxRequest>
 <State>OH</State>
 <Zip>45431</Zip>
 <ProductIDs>
  <ProductID qty="1">7326</ProductID>
  <ProductID qty="1">15283</ProductID>
 </ProductIDs>
 <PromotionCode>CODE123</PromotionCode>
</TaxRequest>

  • XML Response

<?xml version="1.0" encoding="utf-8" ?>
 <TaxResponse>
  <Tax>6.50</Tax>
 </TaxResponse>

Checkout

The order will travel the "normal" process once submitted to Hazel in this way. All emails will be sent, and order information added to the database. The only difference will be the custom response (in XML) back mobile client.

  • RESTful Request
http://signals.thewhiteroom.com/cgi-bin/ws/checkout
  • Expected XML

<OrderRequest>
 <Addresses>
  <Address type="billing">
   <Email>brandon@scooby.netsville.com</Email>
   <FirstName>James</FirstName>
   <LastName>Camire</LastName>
   <Street1>1111 Washington St</Street1>
   <Street2>Suite 200</Street2>
   <City>Golden</City>
   <State>CO</State>
   <Zip>80401</Zip>
   <DayPhone>720-260-4768</DayPhone>
   <EveningPhone></EveningPhone>
  </Address>
  <Address type="shipping">
   <Email>brandon@scooby.netsville.com</Email>
   <FirstName>Mary</FirstName>
   <LastName>Camire</LastName>
   <Street1>15602 West 79th Pl</Street1>
   <Street2> </Street2>
   <City>Arvada</City>
   <State>CO</State>
   <Zip>80007</Zip>
   <DayPhone>303-123-4567</DayPhone>
   <EveningPhone></EveningPhone>
  </Address>
 </Addresses>
 <Shipping type="Standard">5.22</Shipping>
 <PromotionCode>THX10</PromotionCode>
 <OrderSubtotal>99.37</OrderSubtotal>
 <OrderTax>99.37</OrderTax>
 <OrderDiscount>10.00</OrderDiscount>
 <MemberID>12345</MemberID>
 <CustomerIP>74.100.182.104</CustomerIP>
 <CreditCard>
  <Name>James Camire</Name>
  <Number>5105105105105100</Number>
  <ExpMonth>09</ExpMonth>
  <ExpYear>09</ExpYear>
  <CSC>123</CSC>
 </CreditCard>
 <ProductIDs>
  <ProductID qty="1">HK6614</ProductID>
  <ProductID qty="2">HJ2722</ProductID>
 </ProductIDs>
</OrderRequest>

  • XML Response

<?xml version="1.0" encoding="utf-8" ?>
 <OrderReponse>
  <ShippingTotal>9.09</ShippingTotal>
  <TaxTotal>11.82</TaxTotal>
  <ProductTotal>145.00</ProductTotal>
  <DiscountTotal>10.00</DiscountTotal>
  <GrandTotal>155.91</GrandTotal>
  <OrderNumber>1090386</OrderNumber>
  <ClientID>12345</ClientID>
  <MSG>Thank you for your order! You should be receiving an email shortly.</MSG>
 </OrderReponse>

Order Status