jOpenSimPayPal

From jOpenSimWiki
Jump to: navigation, search

jOpenSimPayPal is a component, that enables you to accept PayPal payments from your users and convert them instantly to their inworld currency balance.

Requirements

  • It is an extension specific component and will not work without jOpenSim installed.
  • curl needs to be installed

Options

After installing, jOpenSimPayPal will raise a few warnings, but dont worry, this is normal. jOpenSim requires a few values (valid PayPal account, log path) for functionality, which can not be present right after first installing. Click on top right on Options to set these values:

PayPal Settings

Insert here your PayPal account and your Sandbox account.

It is a good practice to first test jOpenSimPayPal in sandbox mode where no real payments are made. Like this you can ensure, all requirements and settings are working correct before any real money is processed.

Disable SSL verification should by default always be set to No. As described in Common Errors this can help you to locate problems. But it is adviced not to keep this disabled longer than absolutely nessecary!

PayPal Settings

Currency Settings

Here you set your RL currency and the exchange rate.

As we know, PayPal takes fees for every transaction. You can compensate these costs here by different exchange rates for purchase/payout and/or transaction fees (either in percentage or fixed amount).

Currency Settings

Text Purchase Form

This looks different depending what editor and/or template you use.

Here is a good place to write an explanation about the purchase process, maybe a link to your TOS and other things your users should know before they start the purchase process.

Text PayOut Form

PayOut is for security reasons not processed automatically. Some administrator will need to review the request manually and also make the transaction via PayPal manually.

Here you can explain this (besides maybe other things) to your users.

Notification/Logging

You can set here, what things need to be sent as notification to what email address. Specially for PayOuts it is a good idea not to let users wait too long.

Logging is always, but specially in the beginning a good idea. jOpenSimPayPal will log some information about the communication between your server and PayPal in the file jopensimpaypal.log in the path you provide here.

Remember that the path here needs to be inserted absolute and preferably should reside outside the servers document root. But the web server needs to have write permissions to it.

Notification/Logging

User Limits

Here you can control, how much a user can purchase per day/week/month.

Allthough every grid owner would be happy if users spend a fortune, it is a good practice to limit it ;) You avoid a lot of troubles in case some users loose control and spending too much (just imagine a kid with the credit card of the parents...).

User Limits

Frontend Pages

jOpenSim will automatically recognize it jOpenSimPayPal is installed and provide a link to the PayPal form and PayOut form in the users money tab in Inworld Account.

But you also have the possibility to add menu items.

Go to the menu manager and add a new item to your desired menu:

Add new menu item

jOpenSimPayPal will provide 3 menue types:

jOpenSimPayPal menu items

PayPal Purchase Form

This is the form to choose amount of RL currency and sending the user to PayPal

PayOut Form

Due to security reasons, jOpenSimPayPal will not process PayOut requests automatically. An admin will need to review the requests and process them manually.

PayPal Transaction List

Here the user can see an overview of last purchase transactions and the status of PayOut requests.

Usage

Overview

This page should give you a quick overview what happened since your last login:

jOpenSimPayPal Overview

Transactions

This gives you a list of all PayPal transactions (NOT inworld transactions). In a future version, refund function is planned here.

PayOut

For security reasons, PayOut requests (when a user wants to have back RL money from his/her inworld balance) are not processed automatically. An admin has to review the request, process it manually via PayPal and change the status of the request here also manually:

jOpenSimPayOut

If the PayPal account has a different color it has following meaning:

  • Orange: This user never has purchased via jOpenSimPayPal. This might be ok and just a lucky user found a way to make profit with the grid. Neverless a closer look could be a good idea.
  • Yellow: This user has purchased via jOpenSimPayPal, but not with the PayPal account provided here. This could be a typo or wanted, an investigation might be advised.

IMPORTANT NOTE: when the status is changed to finished, jOpenSimPayPal will automatically take the requested inworld ammount from this balance. It will not give it back, if you then later change the status to something lower, but it will also not once again take the amount from the users balance if you again change it to finished

Common Errors

If you know that transactions have been made, but they do not turn up, it is first a good idea to enable all notifications and all looging to easier locate, what did (not) happen.

_notify-validate was not "VERIFIED" and not "INVALID"

During transaction process, jOpenSimPayPal has to call back PayPal to verify the transaction request. This message indicates that something went wrong at this state of the transaction. In such a case it could happen, that the payment part of PayPal was processed successfully but the part of jOpenSimPayPal failed.

Until now, this only was reported, when the server where Joomla is installed has troubles to verify the ssl certificate of PayPal (mostly reported with windows servers). You can disable the SSL check in Options -> PayPal Settings. If this error is gone, please check your server settings. There is a good security reason for validating ssl certificates, do not leave this for production use! (It never happened to me, but if someone has more information here to help, please contribute!)

Curl needs to be able to send the options CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST.