Google Checkout is another affordable way to accept credit card payments. Unlike PayPal, you can not use Google Checkout to take donations unless you have a valid 501(c)(3) tax exempt status clearly displayed to the public. You definitely should read the Google Checkout Content Policies, if you violate them your account could be suspended.
Customers are redirected to the google checkout site to make payment and they must have a google account to complete the transaction. If they don't already have a google account they will be prompted to create one. The mojoportal code makes a secure post from the web server to the google server with the order information and google responds by providing an url to redirect the customer to for checkout. The mojoPortal content management system then redirects to the url provided by google. Google does not redirect the customer back to your site after completing the payment transaction, though they do provide a link back to your site that the customer can click.
Google sends the merchant an email whenever an order is received. Google also provides a set of web pages for managing your orders. You can see when the payment has cleared and you can click a button that indicates to google that you have fulfilled the order (ie shipped the order).
Use of the google checkout merchant web pages may be sufficient if you are physically shipping products, but since the WebStore feature in mojoPortal CMS currently only supports download products, manually checking google pages and marking orders as fulfilled would be a less than desireable work flow. As soon as the payment is cleared we want the downloads for the order to be available to the customer immediately. So we have implemented support for the google checkout Notification API and partial support for the Order Processing API.
The Notification API is how google can automatically tell our site that the payment has cleared and the Order Processing API is how our site can tell google that the order has been fulfilled (ie downloads made available to the user). Use of the Notification API does require an SSL certificate, because google posts details about the order back to your site and they won't post it to an unsecured page. So to sell download products using google you really need an SSL certificate so that this can be automated. When the WebStore receives the notification from google that the customer payment has cleared, mojoportal code marks the order as fulfillable which makes the downloads available on the order detail page, then it posts to google to let them know the order is fulfilled/delivered so you don't have to do it manually, and it sends a confirmation email to the customer with a link to the order detail page which has links for the downloadable items in the order. You have to configure the url for notification in your google checkout account settings. The Url will be in the format:
Here is a screen shot showing the place in your google checkout account where you will specify the notification url. Remember, for this to work you must have a valid SSL certificate signed by a trusted authority.
These settings are required for google checkout:
<add key="Site1-GoogleProductionMerchantID" value=""/>
<add key="Site1-GoogleProductionMerchantKey" value=""/>
<add key="Site1-GoogleSandboxMerchantID" value=""/>
<add key="Site1-GoogleSandboxMerchantKey" value=""/>
If google checkout is going to be your only or primary payment system, then you should also set this:
<add key="Site1-PrimaryPaymentGateway" value="GoogleCheckout"/>
Note that all the settings are prefixed with Site1-
In most cases this will be correct for a single site installation because the first site will typically have SiteID = 1, however you may want to verify your SiteID by looking in the mp_Sites table. If you SiteID is 2 then your prefix will be Site2- and so on depending on your SiteID.
You really only need to use production settings. You can potentially do some testing with a sandbox account, but you will still need to test it on production by running order(s) through to make sure it works before real customers show up, so the value of testing with the sandbox may not be worth the effort. The sandbox is also more difficult to get working than production so you might as well just focus on getting production working. To use the sandbox, you also have to use this setting:
<add key="Site1-PaymentGatewayUseTestMode" value="true"/>