How to Pay Fees in Municity Android January 2, 2015 This document presents Municity Android fee payment requirements, and provides instructions describing how uses can accept fees. A workflow diagram, descriptions of errors and warnings, and useful references are also included. Requirements Municity Android uses PayPal and leverages the PayPal Android SDK. This allows users to use the card.io Requirements for card scanning are described here and listed below: Rear-facing camera. Android SDK version 8 (Android 2.2) or later. ARMv7 processor. A manual entry fallback mode is provided for devices that do not meet these requirements. Online links describing the ARM architecture and how to determine if your device has an ARMv7 processor are listed in the References section below. Municity customers will need to have a PayPal Developer account in order to get credentials that will work with an Android application. More instructions are below in PayPal Developer Account. For Municity technicians, the following fields must be set in the Municity database: CustomerInfoTable.PayPalClientID sandbox or production client identifier CustomerInfoTable.PayPalClientSecret sandbox or production client secret key CustomerInfoTable.PayPalProduction set to 1 to enable production payments Transaction Fees The costs associated with accepting mobile payments using PayPal, as in Municity Android, are described here. To summarize, the transaction fee at the time of writing is 2.9% + $0.30 per sale. There is no indication from the site that there are additional fees for keying in credit card numbers as opposed to scanning. Note that PayPal Here is a standalone method of taking mobile credit card payments. It uses a PayPal card reader that can be purchased at local retailers. PayPal Here does not yet provide the ability to integrate into Android applications, so it cannot be used with Municity Android. PayPal Developer Account In order to make payments through PayPal in a mobile Android environment, customers will need to create a PayPal Developer account. By creating the account, customers will be given credentials that will allow them to use the PayPal Mobile SDK and PayPal REST API calls made in the Municity Android app.
Once the PayPal Developer account is created, a new REST app will need to be added. Call this Municity Android, for example. Once created, sandbox (test) and production Cliend ID and Secret values will be made available. These need to be entered into the customer s Municity database. Software Consulting Associates support can be contacted for assistance. Note that account testing can first be performed by using the PayPal Developer sandbox credentials. If these are placed in the Municity database, the customer can simulate the payments of fees in Municity Android. These sandbox payments can be viewed in the Sandbox Notifications view, and the account email addresses can be used to view notifications.
When ready, the live credentials can be taken from the PayPal Developer app in the My Apps page and entered into the customer s Municity database. The customer will need to enable live credit card transactions in the PayPal Developer My Account page. On the page, click the Enable Live Credentials link (below) to begin the process of providing business details, including the customer Tax ID and other identifications.
Instructions Create a Fee As of Municity Android v3.1, fees can be created on Parcels and Occupants. Find a Parcel or Occupant, scroll down the Create Fee button, then fill and submit the Create Fee form. Fee Type, Amount, Payer and Comments can be modified. Find a Fee Remember that fees are on parcels or occupants. From a scheduled inspection, for example, one would first open the inspection then click on the From Parcel button. The fee is on the parcel. Scroll down the find the Fees list, and click on the desired fee to open it. Notice that icons next to unpaid fees are gray, and the work Paid is not next to the amount. Pay a Fee To pay a fee, begin by finding and opening an unpaid fee. Unpaid fees do not have the word Paid next to their amounts, are identified by a gray icon, and are editable when opening. Paid fees cannot be changed.
Click on the Pay Fee button, and a PayPal order screen will appear. From here one can choose to pay the fee with a PayPal account or with a customer credit card. Click on Pay with Card, and a camera will open with a credit card scanning target. Hold the card in front of the camera and perfectly match the credit card perimeter with the target frame. When matched, a scan of the card will be generated. To see a demo of this process, view this YouTube video. Note that if the scan does not work, or if the user prefers, a Keyboard is available for typing the credit card number. Once the card is scanned, the PayPal form will ask for card expiration and security code values. Enter and press Done to proceed to the Confirmation screen. Pressing Charge Card will send the payment to PayPal for authorization. The payment will not be completed at this point. Users will return to the Fee screen and see a Payment authorized by PayPal message at the bottom of the screen. At this moment, the authorization will be send to the Municity server for payment completion, verification and storage. This is the point where the payment is actually transferred. After a moment a second message will appear indicating that the fee payment was successful. Note that if a payment is authorized (step 1) but fails to complete (step 2), the payment will not be successful, and funds will not be transferred. Municity will void the PayPal authorization, and the payment process will need to start over. Warning and error messages that could occur during the payment process are describe in the Errors, Warnings section below. Also note the Municity Android sets its timeout period to two minutes (120 seconds) for the payment process in order to allow sufficient time for process completion.
Receipts Once a fee is paid, the user has the ability to generate a fee receipt. The fee receipt is a native printout just like inspection notice, notice of violation, and other printouts. Scroll to the bottom of the fee to find the Fee Receipt printout button. Select this and a Receipt for Payment PDF will be generated for you to view. Note that while viewing the receipt in Adobe Reader (or other another PDF viewer app) you should have the ability to share, or email, the document. In Adobe Reader the Share feature is part of the app settings, and can be invoked while viewing the document. Share via Email or Gmail, and the document will automatically be attached to the mail message. Adobe Reader will not know the payer email address, so this will need to be manually entered. Municity Android has another way to share the document which will include the payer, owner and/or applicant email addresses. This is described in the next section. Notice that there is also a Fee Receipt Mobile printout, a web printout. An important feature of this printout is the fact that it can be modified on request. For customizations, contact Software Consulting Associates at (845) 758-0104. Email Receipts
Email Receipt printouts can also be emailed by long pressing on the document list item. First note the Payer Email field in the Fee. Scroll down to find the Fee Receipt, then long press on the receipt of interest. A context menu will appear with the option to Share Document. Select this and a list of share options will appear. Select Email or Gmail to begin the email process. The receipt printout will automatically be attached to the mail message, and a simple subject and message will be included. Important: the payer, owner and/or applicant email addresses may appear in the To area. Reviewing Payments Payments can be reviewed by the customer in their PayPal account at https://www.paypal.com. The console helps to review and manage the payments made. Developers at Software Consulting Associates can review and manage test (sandbox) payments at the https://developer.paypal.com site. Here one can see the transactions steps as a payment is authorized, captured and completed.
Workflow The workflow diagram describes the combination of user and technical flow when first creating a fee, then later taking a fee payment.
Errors, Warnings Mobile communications can be tenuous at times, so the completion of payments may not always be successful. Error situations have been minimized by the designed workflow.
Below are the messages that may be seen during the payment completion (capture), verification and storage process, Step 2. Message Fee payment successful Fee payment problem : WARNING!!! Payment complete but not verified; verify in PayPal account Error verifying payment, cannot close fee; verify in PayPal account Description Payment completed properly A problem occurred during the completion (capture) of the transaction. The transaction is not complete, funds were not transferred, and the payment authorization will eventually expire The payment was completed (captured) and funds transferred, but a problem in the verification of the transaction occurred. Problems could include an amount, currency or payment status that does not match expectation. The user should review their PayPal account to confirm that transactions are being processed properly, and that the account has not been compromised. The verification process encountered an unexpected problem. Funds have been transferred, but the result could not be stored in Municity. The fee will appear to the user to still be unpaid. The user should verify the transaction in PayPal and close the fee out in Municity. References Card.io Card.io Demo ARM7 Architecture PayPal PayPal Authorization & Capture PayPal Developer PaylPal Fees PayPal Here PayPal Android SDK PayPal REST API https://www.card.io/ https://www.youtube.com/watch?v=7lg0nmh4nfk http://en.wikipedia.org/wiki/arm_architecture https://www.paypal.com/ https://developer.paypal.com/docs/classic/paypal-payments-standard/integrationguide/authcapture/ https://developer.paypal.com/ https://www.paypal.com/webapps/mpp/paypal-fees https://www.paypal.com/webapps/mpp/credit-card-reader https://github.com/paypal/paypal-android-sdk/blob/master/readme.md https://developer.paypal.com/docs/api/ Armv7 References http://en.wikipedia.org/wiki/arm_architecture http://forum.xda-developers.com/showthread.php?t=1596800 http://www.quora.com/how-do-i-know-if-an-android-device-is-running-on-armv7-or-armv6 http://forums.coronalabs.com/topic/8797-android-devices-with-an-armv7-processor/