---Payment Protocol using Dual Connectivity (PPDC) Application--- *The installation information is towards the bottom of this document. Please read the descriptions first in order to understand what the program does and make installation easier. Purpose - This application was developed as a demo for the Discover, Interaction, and Payment Protocol (DIPP) [http://paul.rutgers.edu/~nravi/spsm03.pdf] technology developed at DiscoLab [http://disco-lab.rutgers.edu], Rutgers University [www.rutgers.edu]. Quick Description - Allows a consumer with a smartphone that has bluetooth, java midp, and internet connectivity to pay bills using his cell phone. Eg. The consumer goes to McDonald's, and rather than paying for his food with cash or credit, he can pay from his phone even if McDonald's doesn't have internet access. How it Works - The central piece of the model is a variation of the Millicent scrip. Scrip is a form of electronic cash that can be carried by a cell phone or other device. Even if the scrip isn't kept on record by the vendor or other source, it is possible to validate it. The scrip consists of several pieces: The customer's ID, vendor's ID, scrips's ID, monetary value, expiration date, and certificate. The certificate is the key to the scrip's validation. A secret code is appended to the end of the scrip which is then put through a hash function. The resulting value is the certificate. In order to change any of the values of the scrip, one would have to figure out both this secret code and the hash function. Scrip is issued separately for each vendor, meaning that Scrip issued for use at Walmart cannot be used at Wendy's. The architecture to dispense and use scrips requires three parts: broker, vendor, and consumer. The broker is a central server maintained by a large corporation such as Visa or MasterCard. It maintains accounts with vendors and consumers, and issues scrip to consumers for the vendors who have accounts. If a consumer asks for scrip from a vendor that does not have an account with the broker, the broker cannot issue new scrip for that vendor. However, given the address of the vendor's broker, it can buy the scrip from the proper broker and send it to the consumer. The vendor can be anything from a small mom-and-pop store to a conglomerate such as Walmart. As long as there is a computer with a bluetooth radio, a store can act as a vendor in this model. It's the vendor's responsibility to contact the broker to open an account and inform it of the vendor's secret code through any means (eg. telephone). When a consumer contacts the vendor to pay for a service, the vendor sends the bill amount and its broker's URL. If the consumer does not already have scrip for this store, it can acquire some from its broker. When the vendor receives the scrip in payment, it calculates the change and returns it in the form of a new scrip which can be used for the next transaction. This has been a short non-comprehensive explanation of the system. For more in-depth information, please read our DIPP paper [http://paul.rutgers.edu/~nravi/spsm03.pdf] and the Millicent paper [http://www.w3.org/Conferences/WWW4/Papers/246]. The Millicent model differs slightly from this one, but the principles are very similar. Installation- I apologize beforehand. This is a very early version of the application, so there will be bugs, and the program's not particularly user friendly when it comes to installation. Sorry. System we KNOW it works on- -Windows XP -Sony Ericsson P900 smart phone -Belkin USB Bluetooth Dongle Software- to run- -PC Connectivity Suite (comes with Sony Ericsson P900) -Java JRE (get the SDK if you plan to compile) -Apache Tomcat (any servlet container will work) to compile- -Java SDK -J2EE -J2ME Wireless toolkit -Sony Ericsson P900 J2ME SDK (available from Sony Ericsson's developer website) From source- 1. To compile the Vendor and brokerServer, simply go into their respective directories and type 'make'. -If you don't have make,compile the files in this order: brokerServer: Vendor.java Scrip.java ScripWriter.java ScripIDTracker.java ScripReader.java Transaction.java Account.java Broker.java Connection.java Vendor: InvalidScripException.java OrderWindow.java Vendor.java Scrip.java com/swtdesigner/SwingResourceManager.java RequestUI.java ScripWriter.java ScripReader.java ScripIDTracker.java Transaction.java Request.java VendorServer.java -If you're having trouble compiling the brokerServer, you probably don't have J2EE set up properly. 2. To compile the Customer, -Copy the BillPay folder (src/Consumer/BillPay) into the apps folder of the J2ME wireless toolkit -open the 'BillPay' project in the toolkit -in the toolkit, click on Projects - Package - Create Package 3. Continue with the "From binary" instructions. From binary- 1. Unfortunately, due to difficulties in development with bluetooth on PC, in order for the consumer to recognize your PC as a vendor, you must rename your PC's bluetooth name to fit this format exactly: BillPaymentService:TheVendorName:IPaddress:Port(8736 by default):http://165.230.44.83/BillPay.jad eg. BillPaymentService:Walmart:172.0.0.1:8736:http://165.230.44.83/BillPay.jad 2. Set up all the brokerServer binary files in a servlet container (eg. Apache Tomcat) and start the servlet container. -The broker MUST be started before the vendor. -It's possible to have more than one broker. The system of communication between brokers has been implemented. -Connection.class is the class that's executed. -To see if the servlet's running, go to the servlet's address in an internet browser, and you should see the Broker's status page. From here you can also see the transactions that pass through the broker when it's working. 3. Start the Vendor. - In the Vendor directory type: java VendorServer [VendorID] [Vendor's secret code] [Broker's URL] eg. java VendorServer Walmart dsfal348970af http://127.0.0.1:8080/servlet/Visa/Connection 4. Install the .jar file in the bin/Customer directory (or from the bin directory of the source folder if you compiled it yourself) to the phone using the PC Connectivity suite software. 5. Pair your phone and PC. 6. Right click on the PC connectivity suite icon in the bottom right hand corner of your screen (it looks like the line on a heart monitor), and click on properties. 7. In properties, select Bluetooth, and deselect any other boxes. 8. Open a bluetooth serial port connection with the phone. -Right click on the bluetooth icon in the lower right hand corner of your screen. -Quick connect - Bluetooth Serial Port - Phone's name -Accept the connection on the phone and PC. 9. Start the BillPay application on the phone. 10. Enter broker's URL when the application asks for it. -Be careful! This will be the source of many problems. If you have any connection problems, check the URL first. 11. Click Pay Bill for the verbose mode or Pay Bill Seamlessly for the hands-off version. 12. Follow the on-screen instructions. -Peter Stern peterst@eden.rutgers.edu