-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
136 lines (96 loc) · 6.39 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Description
Paypal provides a service called Instant Payment Notification (IPN) which can
notify a URL when a payment is made. Paypal2SalesforceLead is a very simple
Product for Plone which sets up a listener for IPN, and adds a new Lead
to a Salesforce.com account using a Salesforce web-to-lead form whenever a new
payment is made.
See https://www.paypal.com/us/cgi-bin/webscr?cmd=p/xcl/rec/ipn-intro-outside
for more background on Paypal IPN.
Who's This For?
This Product is intended for non-profit organizations that are already using
Paypal to collect donations and Salesforce.com for CRM, but need a way to
integrate the two. On its own, Paypal is a reasonable option for such organizations
to raise money on the web, because it's simple and ongoing costs are nil. However,
without using IPN it is difficult to collect contact information and maintain ongoing
relationships with customers. Using this Product to receive this information and
store it in Salesforce.com helps address this need.
Paypal2SalesforceLead is also intended for use by integrators who are setting up
Plone and Salesforce.com for multiple clients. A single installation of this Product
can be used to handle multiple Paypal and Salesforce.com accounts, so that
configuration for new customers is minimized.
Requires Plone 2.5 or greater. (Tested in 2.5 and 3.0)
Installation
Place Paypal2SalesforceLead in the Products directory of your Zope instance
and restart the server.
Go to the 'Site Setup' page in the Plone interface and click on the
'Add/Remove Products' link.
Choose Paypal2SalesforceLead (check its checkbox) and click the 'Install' button.
You may have to empty your browser cache to see the effects of the
product installation/uninstallation.
Uninstall: This can be done from the same management screen.
Configuration
Paypal2SalesforceLead has a number of required settings. At the moment these
settings are found in a property sheet in the ZMI, called paypal2lead_properties.
Navigate to http://path/to/plone/portal_properties/paypal2lead_properties/manage_workspace
Configure the following settings:
* use_paypal_sandbox: Controls whether Paypal2SalesforceLead verifies payments
against the 'sandbox' or real versions of Paypal. The sandbox is used by default.
* valid_recipients: List of e-mail addresses that are authorized to receive payment.
(to prevent abuse of this product) Enter one per line.
* allow_query_string_override: If enabled, the remaining settings can be specified in
the query string of the URL entered into Paypal. (This allows using one instance of
Paypal2SalesforceLead to handle notifications for many Paypal and Salesforce.com
instances.)
The following settings can be set on the property sheet, or in the query string of the URL
entered into Paypal (if allow_query_string_override is enabled):
* salesforce_oid: ID of the Salesforce instance that will be used.
* payment_date_field: ID of the custom payment date field on the Lead
* payment_amount_field: ID of the custom payment amount field on the Lead
* transaction_id_field: ID of the custom transaction ID field on the Lead
* item_name_field: ID of the custom item name field on the Lead (optional)
* lead_source: a value to be entered for the lead_source field (optional)
* campaign_id: a value to be entered for the Campaign_ID field (optional; no default)
Salesforce.com Configuration
Paypal2SalesforceLead requires fields on the Lead object in Salesforce to hold the
following data: payment amount, payment date, and transaction ID. Create these fields. You may
also add a custom field for the item name associated with the payment, if you want.
A web-to-lead form must be enabled. To do this, click on Setup at the top of the screen in
Salesforce. Click on Customize under App Setup on the left sidebar, then Leads, then
Web-to-Lead. Click the Edit button, check the 'Web-to-Lead Enabled' checkbox, and click the
Save button.
We will also need to know the ID of your Salesforce instance, as well as for each of the custom
fields you created above. To find these, continuing from the current screen, click the
'Create Web-to-Lead Form' button. Add your custom fields to the list of Selected Fields.
(The Return URL setting is irrelevant.) Click the Generate button and examine the resulting
HTML to find the value of the hidden 'oid' field, as well as the name of each of the custom
fields.
Paypal Configuration
Paypal must be told to perform IPN, and it must be told what URL to notify.
From the Paypal business account, click on the Profile sub-tab. Click on 'Instant
Payment Notification Preferences' in the Selling Preferences column. Here you can
turn on IPN and specify a URL.
(Another option is to add a hidden field called 'notify_url' to the form that submits
to Paypal. This allows the notification URL to be configured on a per-form basis.)
For the notification url, specify the full path of paypal2lead in the context of the plone
site. The full URL will look something like this:
http://example.com/plone_site/paypal2lead
Optionally, the notification url can include overrides for any and all property sheet settings
(if allow_query_string_override is enbabled). For example:
http://example.com/plone_site/paypal2lead?salesforce_oid=00D70000000IxQh&
payment_date_field=00N70000001y10c&
payment_amount_field=00N70000001y101&
transaction_id_field=00N70000001ywcd&
item_name_field=00N70000001ywcn
You should now be able to make a test payment to your Paypal account, and see a new lead
appear in Salesforce as a result!
Remember to turn off the use_paypal_sandbox setting on the paypal2lead property sheet
when you are done testing! Otherwise all your attempted IPN verifications will fail.
However, even after you turn off use_paypal_sandbox in your plone property sheet,
paypal2lead will still use the Paypal sandbox for notifications on any transaction
that Paypal indicates are a test (via the 'test_ipn' variable).
Written by
* David Glick ([email protected])
Thanks to
* Steve Andersen
* Evan Callahan
* Jesse Snyder