paypal支付问题|设置|调试 汇总

最近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.comseller321@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必须足够真实,否则PayPalDecline你的 


转载于:https://my.oschina.net/u/234530/blog/52959

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,PayPal支付接口可以通过PayPal官方提供的PayPal-PHP-SDK进行对接。以下是一个简洁版的指南: 1. 首先,确保你已经安装了PHP和Composer,并创建了一个新的PHP项目。 2. 在项目根目录下,打开终端并运行以下命令来安装PayPal-PHP-SDK: ```shell composer require paypal/rest-api-sdk-php ``` 3. 创建一个新的PHP文件,比如"paypal_payment.php",并在文件中引入PayPal SDK: ```php require 'vendor/autoload.php'; use PayPal\Rest\ApiContext; use PayPal\Auth\OAuthTokenCredential; ``` 4. 设置你的PayPal API凭据,包括客户端ID和秘密。你可以在PayPal开发者网站上创建一个应用程序并获取这些凭据。 ```php $clientId = 'YOUR_CLIENT_ID'; $clientSecret = 'YOUR_CLIENT_SECRET'; $apiContext = new ApiContext( new OAuthTokenCredential($clientId, $clientSecret) ); ``` 5. 创建一个支付请求并设置相关参数,比如金额、货币类型、回调URL等。 ```php $payment = new \PayPal\Api\Payment(); $payment->setIntent('sale') ->setPayer( new \PayPal\Api\Payer(['payment_method' => 'paypal']) ) ->setRedirectUrls( new \PayPal\Api\RedirectUrls([ 'return_url' => 'http://your-website.com/success', 'cancel_url' => 'http://your-website.com/cancel' ]) ) ->setTransactions([ new \PayPal\Api\Transaction([ 'amount' => [ 'total' => '10.00', 'currency' => 'USD' ] ]) ]); ``` 6. 创建支付并获取支付URL: ```php $payment->create($apiContext); $approvalUrl = $payment->getApprovalLink(); ``` 7. 将用户重定向到获取的支付URL,让用户在PayPal网站上完成支付。 8. 在用户完成支付后,PayPal将重定向用户到你在步骤5中设置的回调URL之一。你可以在回调URL的处理程序中获取支付的详细信息。 请注意,这只是一个简洁版的指南,你可能需要根据你的具体需求进行更多的配置和处理。你可以参考PayPal官方文档和PayPal-PHP-SDK的示例代码来获取更多详细信息和示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值