This sequence of calls can be executed on the following web services:
Catalog service
https://PLAY.demo-ws.secutix.com:443/tnseb/external-remoting/com.secutix.service.realtime.catalog.v1_26.CatalogService.webservice
External order facade
https://PLAY.demo-ws.secutix.com:443/tnseb/external-remoting/com.secutix.service.realtime.externalorder.v1_26.ExternalOrderFacade.webservice
External order service
https://PLAY.demo-ws.secutix.com:443/tnseb/external-remoting/com.secutix.service.realtime.externalorder.v1_26.ExternalOrderService.webservice
Availability service https://PLAY.demo-ws.secutix.com/tnseb/external-remoting/com.secutix.service.realtime.availability.v1_26.AvailabilityService.webservice?wsdl
Must be done once a day (see here)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://v1_26.CatalogService.service.secutix.com">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-B375FF7B6FAD83ECAF15795998117091">
<wsse:Username>PLAY_B2C</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">P@ssw0rd</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<v1:getCatalogDetailed/>
</soapenv:Body>
</soapenv:Envelope>
Here is a link with a zipped version of the response as the catalog is quite big.
Information extracted from response:
This can only be done once in a while. Important points to notice are posId (pointOfSalesId in subsequent calls) and payment methods (will be used to pay the order)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://v1_26.CatalogService.service.secutix.com">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-BCC4CF7DDCCDA67DF715859090203102">
<wsse:Username>PLAY_B2C</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">P@ssw0rd</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<v1:getPOSConfig/>
</soapenv:Body>
</soapenv:Envelope>
Information extracted from response:
All the fields are filled with the information above. eventId matches the productId.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://v1_26.RTAvailabilityService.service.secutix.com">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-BCC4CF7DDCCDA67DF715859090203102">
<wsse:Username>PLAY_B2C</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">P@ssw0rd</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<v1:getPerformanceAvailability>
<pointOfSalesId>101053522324</pointOfSalesId>
<eventId>101090010798</eventId>
<performanceIds>101090013225</performanceIds>
<seatCategoryIds>101053581510</seatCategoryIds>
</v1:getPerformanceAvailability>
</soapenv:Body>
</soapenv:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getPerformanceAvailabilityResponse xmlns:ns2="http://v1_26.RTAvailabilityService.service.secutix.com">
<PerformanceAvailabilityResult>
<requestId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<statusCode>success</statusCode>
<statusDetail xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<performanceAvailabilityData>
<performanceAvailabilities>
<availability>9487</availability>
<availabilityLevel>GOOD</availabilityLevel>
<quota>9488</quota>
<seatCategoryId>101053581510</seatCategoryId>
<eventId>101090010798</eventId>
<performanceId>101090013225</performanceId>
</performanceAvailabilities>
</performanceAvailabilityData>
</PerformanceAvailabilityResult>
</ns2:getPerformanceAvailabilityResponse>
</S:Body>
</S:Envelope>
We can see there is a GOOD
availability level. So we can proceed with the purchase.
pointOfSalesId comes from the getPosConfig response.
All the other ids are retrieved in the catalog.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://v1_26.ExternalOrderFacade.service.secutix.com"
xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<ns2:Security>
<ns2:UsernameToken>
<ns2:Username>PLAY_B2C</ns2:Username>
<ns2:Password>P@ssw0rd</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</soapenv:Header>
<soapenv:Body>
<v1:createOrUpdateOrder>
<pointOfSalesId>101053522324</pointOfSalesId>
<orderType>SALE</orderType>
<singleEntryAttributionOperations>
<operationAttributions>
<audienceSubCategoryId>101053580099</audienceSubCategoryId>
<quantity>1</quantity>
<performanceId>101090013225</performanceId>
<seatCategoryId>101053581510</seatCategoryId>
<unitAmount>60000</unitAmount>
</operationAttributions>
</singleEntryAttributionOperations>
</v1:createOrUpdateOrder>
</soapenv:Body>
</soapenv:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:createOrUpdateOrderResponse xmlns:ns2="http://v1_26.ExternalOrderFacade.service.secutix.com">
<OrderUpdateResult>
<requestId xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<statusCode>success</statusCode>
<statusDetail xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<expectedException>false</expectedException>
<orderUpdateData>
<catalogCurrency>
<currencyCode>EUR</currencyCode>
<fractionDigit>2</fractionDigit>
<minAmount>10</minAmount>
<symbol>€</symbol>
</catalogCurrency>
<generatedContactQualities/>
<generatedContiguities>
<contiguous>true</contiguous>
<performanceId>101090013225</performanceId>
<seatCategoryId>101053581510</seatCategoryId>
<segments>
<movementIds>10228263917610</movementIds>
</segments>
</generatedContiguities>
<mainOperationId>10228263917507</mainOperationId>
<movementDataUpdates>
<area>Tribune basse west (nord)</area>
<areaId>101053496266</areaId>
<areaKind>INDIFFERENT</areaKind>
<attributionMatch>NO_EXPECTATION</attributionMatch>
<block>W7 bas</block>
<blockId>101053496520</blockId>
<contingent>Accessible</contingent>
<contingentId>101053647160</contingentId>
<entrance>Porte A</entrance>
<entranceCode>A</entranceCode>
<entranceId>101053496176</entranceId>
<floor>Bas</floor>
<movementId>10228263917610</movementId>
<operationId>10228263917507</operationId>
<resumed>false</resumed>
<row>M</row>
<saleSeatId>10009372140</saleSeatId>
<scenePanoLink>pacifa://https://static.pacifa3d.com/StadeOceane/SECUTIX/V2-0/Pano/Pano.html?s=411</scenePanoLink>
<seatCategory>Cat 1</seatCategory>
<seatCategoryId>101053581510</seatCategoryId>
<seatId>101053497670</seatId>
<seatNumber>325</seatNumber>
<seatOrientation>180</seatOrientation>
<seatQuality>Armchair</seatQuality>
<seatQualityCode>Fauteuil</seatQualityCode>
<seatQualityId>2424</seatQualityId>
<stageVisibility>VISIBLE</stageVisibility>
<type>SEAT</type>
<xCoordinate>14586</xCoordinate>
<yCoordinate>2435</yCoordinate>
</movementDataUpdates>
<operationDataUpdates>
<activityType>SPORT</activityType>
<audienceCatId>15655</audienceCatId>
<audienceSubCategory>Full price</audienceSubCategory>
<audienceSubCategoryId>101053580099</audienceSubCategoryId>
<audienceSubCategoryRank>1</audienceSubCategoryRank>
<audienceSubCategoryRequireAttachment>false</audienceSubCategoryRequireAttachment>
<basePrice>60000</basePrice>
<comfortVariableValues>
<entry>
<key>PrioPts</key>
<value>
<translations>
<locale>en</locale>
<value>0</value>
</translations>
</value>
</entry>
</comfortVariableValues>
<contingent>Accessible</contingent>
<contingentId>101053647160</contingentId>
<eventId>101090010798</eventId>
<fileId>3985</fileId>
<isNominative>false</isNominative>
<itemDisplayExternalDesignation>Championship Home Games</itemDisplayExternalDesignation>
<itemId>101090010924</itemId>
<kind>SINGLE_ENTRY</kind>
<locations>
<siteAddress>
<countryCode>CH</countryCode>
<firstAddressLine>Route des Plaines-du-Loup 7</firstAddressLine>
<gpsLatitude>46.5333333</gpsLatitude>
<gpsLongitude>6.6241666999999325</gpsLongitude>
<locality>Lausanne</locality>
<phoneNumber>41-0213151414</phoneNumber>
<website>http://www.secutix.com</website>
<zipCode>1018</zipCode>
</siteAddress>
<siteCode>Arena</siteCode>
<siteExternalName>
<translations>
<locale>en</locale>
<value>SecuTix Arena</value>
</translations>
<translations>
<locale>fr</locale>
<value>Arène SecuTix</value>
</translations>
</siteExternalName>
<spaceCode>Arena</spaceCode>
<spaceExternalName>
<translations>
<locale>en</locale>
<value>Home arena</value>
</translations>
<translations>
<locale>fr</locale>
<value>Arène sport</value>
</translations>
</spaceExternalName>
</locations>
<match>
<finalDate>true</finalDate>
<hostTeam>Team Play</hostTeam>
<hostTeamId>101053521731</hostTeamId>
<opposingTeam>My Bed FC</opposingTeam>
<opposingTeamId>101053521730</opposingTeamId>
<round>Day 6</round>
<roundCode>J6</roundCode>
</match>
<numbered>true</numbered>
<operationId>10228263917507</operationId>
<operationNumber>1</operationNumber>
<performance>Championship Home Games</performance>
<performanceCode>Champ</performanceCode>
<performanceDate>2020-07-11T17:00:00+02:00</performanceDate>
<performanceDuration>7200</performanceDuration>
<performanceId>101090013225</performanceId>
<performanceKind>Default</performanceKind>
<physicalConfigurationId>101053496064</physicalConfigurationId>
<product>Championship Home Games</product>
<productCode>League</productCode>
<productFamilySubType>SPORTING_EVENT</productFamilySubType>
<productFamilyType>SINGLE_ENTRY</productFamilyType>
<productId>101090010798</productId>
<quantity>1</quantity>
<season>Current season</season>
<seatCategory>Cat 1</seatCategory>
<seatCategoryBgColor>D6006B</seatCategoryBgColor>
<seatCategoryId>101053581510</seatCategoryId>
<seatCategoryRank>1</seatCategoryRank>
<selfPaidVat>false</selfPaidVat>
<site>SecuTix Arena</site>
<siteAddress>
<countryCode>CH</countryCode>
<firstAddressLine>Route des Plaines-du-Loup 7</firstAddressLine>
<gpsLatitude>46.5333333</gpsLatitude>
<gpsLongitude>6.6241666999999325</gpsLongitude>
<locality>Lausanne</locality>
<phoneNumber>41-0213151414</phoneNumber>
<website>http://www.secutix.com</website>
<zipCode>1018</zipCode>
</siteAddress>
<siteId>101053494751</siteId>
<space>Home arena</space>
<totalAmount>60000</totalAmount>
<unitPrice>60000</unitPrice>
<vatCountryCode>CH</vatCountryCode>
<vatRate>8000</vatRate>
<waitingAccountBalance>0</waitingAccountBalance>
<withoutVatTotalAmount>55560</withoutVatTotalAmount>
</operationDataUpdates>
<orderId>11000309828</orderId>
<orderSecretId>731ad90d-0761-4516-a3e7-3aeaf5736539_11000309828</orderSecretId>
<origin>
<toCreateToken>false</toCreateToken>
</origin>
</orderUpdateData>
</OrderUpdateResult>
</ns2:createOrUpdateOrderResponse>
</S:Body>
</S:Envelope>
Information extracted from response:
orderId and movementId and amount all come from the response to the order creation.
Contact reference, here is a given contact able to handle waiting account payments. Contact reference can also be obtained by searching/creating contact through contact web services.
paymentMethodId comes from getPosConfig response.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:v1="http://v1_26.ExternalOrderFacade.service.secutix.com"
xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<ns2:Security>
<ns2:UsernameToken>
<ns2:Username>PLAY_B2C</ns2:Username>
<ns2:Password>P@ssw0rd</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</soapenv:Header>
<soapenv:Body>
<v1:createPaymentsAndCloseOrder>
<orderId>11000309828</orderId>
<payments>
<amount>60000</amount>
<paymentMethodId>16370</paymentMethodId>
</payments>
<paymentParams>
<contactNumber>8150</contactNumber>
<pointOfSalesId>101053522324</pointOfSalesId>
<totalAmount>64000</totalAmount>
</paymentParams>
<orderType>SALE</orderType>
<maxWaitingTime>0</maxWaitingTime>
<purchasersInfo>
<contactReference>8150</contactReference>
</purchasersInfo>
</v1:createPaymentsAndCloseOrder>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://v1_26.ExternalOrderService.service.secutix.com" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<soapenv:Header>
<ns2:Security>
<ns2:UsernameToken>
<ns2:Username>PLAY_B2C</ns2:Username>
<ns2:Password>P@ssw0rd</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</soapenv:Header>
<soapenv:Body>
<v1:getOrderDetails>
<orderId>11000309828</orderId>
</v1:getOrderDetails>
</soapenv:Body>
</soapenv:Envelope>