Avatar

sdg.marinusvz
2018-02-13 21:09

XMLVend is a SOAP Web Service standard whereby shops/card machines can interface to STS encoding servers, to encode 20 digit STS tokens to load a specific amount of money onto an STS prepaid meter (usually electricity, but can also be water).

Plug and Play Scada can typically use XMLVend to interface to a traditional STS encoding server to request a 20 digit token with a certain meter serial number, SGC and amount of money (an STS Vending System entity called XMLVend).
(This Vending System interface is currently disabled until we get a customer that specifically needs this, at which time we will enable it and test it with a real world traditional STS vending system. Currently we integrate - and have successfully tested integration - to the PRISM vending server TSMWeb, and the online Netvendor vending system.)

or

Plug and Play Scada can expose the XMLVend interface to traditional STS card machines to 'sell' electricity. How it works, is that the buyer pays a specific amount of money on a specific meter serial number. This gets sent to PNPSCADA via XMLVend, and it gets credited to a Ledger. If this ledger is part of an STS Prepaid Facility setup in PNPSCADA, it then spends all the money in the ledger to buy a prepaid token from the Vending System configured on the associated STS meter, and write the token into the Ledger (this happens after e.g. a Garnish order has already taken its money, if applicable). From the Ledger, it is then picked up by the XMLVend service, and returned to the buyer card machine in the shop, where it gets printed and given to the customer.





Avatar

sdg.marinusvz
2018-02-13 21:06

You can see an example of the SOAP service here:

https://sdg.pnpscada.com/soap/XMLVendServiceSoap?wsdl

The specific port to call would be http://XMLVend.pnpscada.com/CreditVendRequest

   CreditVendReq. authCred.password is the pnpscada password
the operator must be the user login
it will be set up when the XMLVend entity is added on pnpscada
and the originating IP is also then set up (we don't use the operator parameter in the XMLVend request itself, but we do use the originating IP and the password)
then the CreditVendReq.meteridentifier must be the serial number of the meter
and the CreditVendReq.purchaseValue is the amount of cents to pay
then the reply is a  CreditVendResp
the  CreditVendResp.ClientId is the same as with the request it sent
as is the  CreditVendResp.terminal id
and the  CreditVendResp.msgid
the  CreditVendResp.respdatetime is the time of the transaction
            CreditVendResp.hasFault is true if there was an error
            CreditVendResp.Fault.faultnumber would be 99
and  CreditVendResp.fault.desc would be the error description in a string
otherwise, if  CreditVendResp.hasFault is set to false
            CreditVendResp.creditvendreceipt.transactions[0].credittokenissue.token.stscipher is the sts token
CreditVendResp.creditvendreceipt.transactions[0].credittokenissue.meterdetail.msno is the meter serial number
We do sometime have another kind of fault with a faultnumber of 98 also
OK
so that is essentially the XMLVend interface to use, and the meaning of the parameters and the returns

Please log in to post a comment