一、PayPal官方网站的使用设置

1. 登录.
2. 点击 Profile.
3. 点击 Add or Edit Email.
4. 记下 primary 邮件地址, 注意大小写. (下面要填写完全一致的邮件地址)
5. 点击 Profile 返回 Profile Summary.
6. 点击 Instant Payment Notification Preferences.
7. 点击 Edit.
8. 打开 (选中方框).
9. 设置 Notification URL 为: http://www.myz_domain.com/MY_SHOP/ipn_main_handler.php
(具体请参考zencart模块后台的提示)
10. 点击 Save.
11. 点击 Website Payment Preferences.
12. Auto Return for Website Payments – 设置为 on.
* Return URL 设置为: http://www.myz_domain.com/MY_SHOP/index … ut_process (无SSL) 或
* https://www.myz_domain.com/MY_SHOP/inde … ut_process (独立 SSL 证书) 或
* https://myz_domain.secureserver.net/MY_ … ut_process (共享 SSL)
(具体请参考zencart模块后台的提示)
13. 其它参数自己选择
* Payment Data Transfer …如果使用 PDT, 请确认在 Zen Cart 里填写相同的 token .
* Encrypted Website Payments … 设置为 OFF. Zen Cart 不支持该选项.
* PayPal™ Account Optional … 如果允许客户不要PayPal帐号也能通过信用卡支付,设置为 ON
14. 点击 Save.
15. 如果网站使用非 Western/European 语言, 在 Language Encoding 下设置.
16. 关闭PayPal帐号中所有税率和运费设置,否者交易金额与Zenn Cart中金额不一致, 将无法生成订单.
17. 还有,如果你的 PayPal 帐户还未验证,赶紧行动吧.

二、Zen Cart后台PayPal支付模块安装设置

1. 管理页面 > 模块管理 > 支付模块 > PayPal IPN – Website Payments Standard.
2. 如果是初次设置 PayPal, 请点击:安装.
3. 否者, 点击:编辑.
4. 输入前面记下的PayPal帐户的 primary 邮件地址.
5. 设置其它选项.
6. 注意页面上提示的网址 – 必须与前面的PayPal Profile中设置的一致.

三、使用PayPal帐号测试

1. 需要两个 PayPal 帐号才能测试。PayPal允许每人有两个帐号,一个用于个人,一个用于商业。本测试使用个人帐号支付到商业帐号。(然后退款)
2. 新建一个便宜的商品,例如 $0.01 或者 $1.00
3. 购买商品
4. 结帐时,选择最便宜的运费
5. 使用PayPal结帐
6. 确认订单后,将转到PayPal网站付款
7. 输入PayPal个人帐号的用户名和密码
8. 确认交易
9. 完成后将返回您的网店
10. 确认收到2至3封邮件: 一封来自PayPal, 一封来自商店给客户的,一封来自商店给管理员的。如果没有收到商店发来的邮件,重新检查设置项目
11. 登录您的 PayPal 商业帐户并给测试交易退款

四、不用PayPal帐户的测试
不用PayPal帐户而测试信用卡支付,采用以下步骤:

(测试前, 找一张未在PayPal注册过的信用卡!!)

1. 在网店中新建一个或选择一个便宜的商品,例如 $0.01 或 $1.00.
2. 购买商品.
3. 结帐时,选择最便宜的运费.
4. 结帐时, 选择 PayPal.
5. 确认订单后,将转到 PayPal 网站支付.
6. 在 PayPal 的用户名/密码登录栏下,有一个链接 Purchase without a PayPal™ account. 点击该链接.
7. 填写并确认个人资料.
8. 填写包括信用卡号码在内的支付信息. (不要使用已在 PayPal 注册过的信用卡号码!!)
9. 确认交易.
10. 完成后将返回商店.
11. 确认收到2至3封邮件: 一封来自PayPal, 一封来自商店给客户的,一封来自商店给管理员的。如果没有收到商店发来的邮件,重新检查设置项目.
12. 登录您的 PayPal 商业帐户并给测试交易退款.

五、PayPal支付模块的调试方法

请先仔细核对前面的安装步骤,然后逐步检查下面的配置:

1. 如果PayPal支付模块以前正常工作,现在出现错误,请确认PayPal服务是正常运行。PayPal服务状态:看这里
2. 确认您的网站不处于“维护模式”
3. 确认您的网站没有使用.htaccess限制对网店的访问。(有些主机利用.htaccess屏蔽了很多IP段)
* PayPal IP 地址段 (请不要屏蔽这些地址)
* notify.paypal.com:
o 216.113.188.202
o 216.113.188.203
o 216.113.188.204
o 66.211.170.66
* 如果使用PayPal测试服务器(sandbox),地址为: ipn.sandbox.paypal.com -> 66.135.197.164

4. 确认后台设定的邮件地址,与PayPal主帐号的邮件地址完全一直,包括大小写。
5. PayPal帐号是否“已认证”?
6. PayPal帐号是否为商业帐号?(建议使用商业帐号,高级帐号有时也可以,个人帐号不行)
7. 检查主机的端口80和443是开放的
8. 在浏览器中访问http://your_site.com/ipn_main_handler.php,如果出现PHP错误,则需要排错。如果出现白屏,继续下一步。
9. 在PayPal模块下可以打开调试日志,确认/includes/modules/payment/paypal/logs 目录可写。调试结果位于该目录下。
10. 试试卸载PayPal模块,并重新安装。
11. 通过服务器的控制面板下查看错误日志,看看是否有访问 ipn_main_handler.php 文件而被屏蔽的记录
12. 如果安装了SEFU 或 SEO 模块,请先关闭后再测试,有些不支持PayPal模块。
13. 请确认使用的是最新的Zen Cart版本。

六、PayPal IPN 的工作原理

"IPN" = 及时付款通知 "Instant Payment Notification" …即PayPal的标准支付方式

1. 客户在您的网店下订单
2. 确认订单后,转向PayPal网站,客户输入资料并付款
3. 付款后点击链接(或等待5秒)返回您的网店

同时,在上面第2步与第3部之间,PayPal服务器执行如下操作:

1. Paypal服务器给您的网店发送请求,网店接收请求的地址为/ipn_main_handler.php 页面
2. 您的服务器接收请求的端口为 80 和 443
3. 您的服务器接收到请求后,核对PayPal发送的数据与网店的数据一致
4. 如果通过检验,后台生成订单,并通知PayPal服务器。这些通讯是通过端口 80 或 443 双向进行的
5. 说明:如果没有成功,PayPal服务器会持续发送 IPN 通知约4天。只有通知成功后,才会生成客户的订单。