最近P哥在magento开发过程中遇到paypal的一些设置问题,查阅了一些资料解决,现做个汇总,将不定期更新补充
送货地址为商家提供的是无效的
Unable to process payment. Please contact the merchant as the shipping address provided by the merchant is invalid, and the merchant has requested that your order must be shipped to that address.
无法处理付款。请联系商家送货地址为商家提供的是无效的,而商家已要求您的订单,必须运到该地址。
需要把下面这个参数改成0就可以了
如果你使用的是Web Payment Standard的话你找到app/code/core/Mage/Paypal/Model/api/Standard.php,里面有'address_override' => 1,这一行改成'address_override' => 0,就可以了
如果你使用ExpressCheckout的话app/code/core/Mage/Paypal/Model/Api/Npv.php,里面有 'ADDROVERRIDE' => 1这一行也改成'ADDROVERRIDE' => 0,就可以了
magento自己集成了paypal功能,后台设置
1
system->config->paypal
进入:
1.1 Merchant Country 设置国家
1.2 Email Associated with PayPal 设置账号
1.3Select a PayPal Solution
1.4选用
Website Payments Standard – PayPal processes all of your orders, and you get paid.
前面打钩,别的把勾去除
1.5
在下面栏目将website payment standard setting点开
1.5.1
Payment Action-->sale
1.5.2
Payment Applicable From->All Allowed Countries
1.5.3
Sandbox Mode->no
1.5.4
Transfer Cart Line Items--yes
1.5.5
Debug Mode-->no
2
OK后台设定好了,点击OK,然后刷新缓存,就可以支付了
利用paypal提供开发账号调试:
作为Magento开发者,第一次使用Paypal总是希望能使用测试账号来测试功能是否工作正常,基本流程如下:
1. 去developer.paypal.com申请开发账号(这里以dev321@gmail.com为例),申请后自动建立一个buyer和一个seller测试子账号供测试(这里分别以buyer321@gmail.com和seller321@gmail.com为例)。
2. Magento后台允许PayPal Standard支付:
System->Configuration->Payment Methods->PayPal Website Payments Standard
3. Magento后台设置PayPal账号
System->Configuration->PayPal->Website Payments Standard
Business Account: seller123@gmail.com
Sandbox Mode : Yes
最常犯的错是:将Business Account设置为dev321@gmail.com, 这样当支付进入最后一步会提示这样的错误(导致订单别取消):
This invoice has already been paid. For more information, please contact the merchant.
4. 打开浏览器登录developer.paypal.com,在同一个浏览器下订单,当place order转入paypal网站时(sandbox网站),你可以选择输入信用卡信息支付,也可以选择登陆PayPal,如果选择登录可以用前面的buyer123@gmail.com,首次登陆可能要求你帮定一个银行账号,因为是测试账户,这里的银行账号是无所谓的,接下来就会一路顺利,确认支付成功,点击回到商家网站按钮,订单完成。
注:第4条提到的“打开浏览器登录developer.paypal.com,在同一个浏览器下订单”是必需的,否则不能完成测试!
另外一个可能导致订单不成功的的原因是:Shipping Address必须足够真实,否则PayPal会Decline你的