3. Who we are Winpulsa Not Developer – Not Selling Software to customer Distributor Service Company We are User, Partnering with Developer Winpulsa: IT Company: Content Provider, Application Service Provider Partnering: Operator Cellular, Banking All System developed by In-house developer
4. What we needs Protocol: Plug & Play Secure Reliable Performance Trustable
5. What is Standard ? Acceptable Adoptable Scalable Agreeable Trustable
6. What to be standardized ? Process Method Format Field & Parameter Status Security
7. Requirement Multi Transports HTTP/S YM – Yahoo Messenger Protocol XMPP/Jabber/G-Talk JMS/AMQP Any Language PHP .NET Java Python Ruby Delphi / Pascal
9. Process Request - Response Synchronous / Active Client Report – Asynchronous / Passive Client Inquiry – Result Synchronous / Active Client HTTP - Dynamic IP
10. Process – Synchronous Client Server Request Phase 1 Report Process Phase 2 Inquiry Phase 3 Result
11. Process – Sync/Asynchronous Client Server Request Phase 1 Response Process Phase 2 Report Phase 3 Confirm Inquiry Phase 4 Result
12. Process – Phase 1 Phase 1 (Internal) Authentication – User id, password, PIN Admin: has enough Balance, etc Validation: Product Code, etc
13. Process – Phase 2 Phase 2 (External) On Progress Failed Transaction Success Transaction
14. Process – Phase 2 - External On Progress Client Server Success Failed
15. Process – Phase3 - Report Phase 3 Report result from the Transaction process Phase 3 – client must confirm Authentication By Client On Progress Failed Success
16. Process – Phase 3 - Report On Progress Server Client Success Failed
17. Process – Phase 4 - Inquiry Inquiry just like Report but more on Client side that active Can be used for checking & validating last transaction Inquiry Process Authentication By Server On Progress Failed Success
18. Process – Phase 4 - Inquiry On Progress Client Server Success Failed
20. Method Message Passing Asynchronous YM,JMS One - Many Node More Flexible Can be Transformed, Filtered & Controlled etc RPC – Remote Procedure Call Synchronous XMLRPC,SOAP One – One Node Rigid
22. Format Binary/Bitmap based – More Machine language ISO 8583 - Financial transaction card originated messages Binary XML Faster Text based – More Human readable JSON,XML,YAML Slower but easy to maintain
24. Request Reference ID – Integer Transaction Time – Integer User ID – String MD5 Password – String MD5/SH1 Generated – MD5(Time + Password) Product ID – String MSISDN – String
25. Response Request ID – Integer Reference ID – Integer Response Time – Numeric 14 Digits - YYYYMMDDhhiiss Status – Integer
26. Report Report ID - Integer Request ID - Integer Reference ID – Integer Report Time - Numeric Transaction Time – Numeric User ID – String MD5 Password - String Status – Integer Serial Number - Integer Message - String
27. Confirm Confirm ID – Integer Report ID – Integer Confirm Time – Numeric Status – Integer Message - String
28. Inquiry Reference ID – Integer Inquiry Time – Integer User ID – String MD5 Password – String MD5/SH1 Generated – MD5(Time + Password)
29. Result Result ID - Integer Request ID - Integer Reference ID - Integer Transaction Time – Numeric Status – Integer Serial Number - Integer Message - String Optional: Price - Float
32. Process – Accounting Info For checking status client’s accounting information Result Fields: Transaction Time – DateTime Numeric Last Deposit – Datetime Numeric Amount Last Deposit - Float Last Transaction – Datetime numeric Amount last Transaction - Float Current Balance - Float Status - Integer Message - String
33. Process – Product Info For automated product price & quota checking Result Fields: Transaction Time – DateTime Numeric Product Code - String Price – Float Quota - Integer Status - Integer Message - String
35. Status Type Status – Must Be Clear and Detail – Cannot be General Success Cannot be retried Method Automatic Manual Failed Caused By Client: Invalid: password, MSISDN etc Caused By Server: Out of Stock, Internal Error Retry able Don’t-Retry able Method Automatic Manual
36. Status - Categorical Digit 8 Digit Status Code in Unsigned Integer MEDIUMINT for MYSQL Field Type 1 Digit – Process Code = 1 Transaction 1 Digit – Phase = 1,3,5,6 1 Digit – By Client=1, By Server=2 1 Digit – Retry=1, Don’t Retry=2 1 Digit – State = On Progress=1, Failed=2, Success=3 3 Digit – Detail
37. Status User/Pass Failed: 1-1-1-2-001 => 11112001 Out of Stock: 3-2-1-2-101 => 13212101 Success Transaction: 3-2-1-3-500 => 13213500 Inquiry Failed – Internal Error: 6-2-1-2-201 => 16212201
39. Security Data is Valuable ==== Money ! Message Must be Secure Only 2 Machine can be read/write Data must be Encrypted !! Encrypted with Exchanged Trusted Key