php - PayPal 付款 - HTTP 响应代码 400

标签 php exception paypal error-handling

我正在使用 PHP 开发 PayPal 支付。一切都很好,直到出现此错误:

访问时得到 Http 响应代码 400 https://api.sandbox.paypal.com/v1/payments/payment .

当我尝试为我的支付创建方法时抛出:$payment->create($api);

<?php

use PayPal\Api\Payer;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Exception\PayPalConnectionException;

require '../src/start.php';

$payer = new Payer();
$details = new Details();
$amount = new Amount();
$transaction = new Transaction();
$payment = new Payment();
$redirectUrls = new RedirectUrls();


// Payer
$payer->setPaymentMethod('paypal');



// Details
$details->setShipping('2.00')
->setTax('0.00')
->setSubtotal('20.00');

// Amount
$amount->setCurrency('GBP')
->setTotal('22.00')
->setDetails($details);

// Transaction
$transaction->setAmount($amount)
->setDescription('Membership');


// Payment
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions($transaction);

// Redirect urls
$redirectUrls->setReturnUrl($myReturnUrl)
->setCancelUrl($myCancelUrl);

$payment->setRedirectUrls($redirectUrls);

try {

$payment->create($api);


} catch (Exception $e) {
    echo $e->getMessage();
}

为什么会这样?我该如何解决?我最终如何才能获得更详细的异常消息?

最佳答案

// Amount
$amount->setCurrency('GBP')
->setTotal('22.00')
->setDetails($details);

并确保您的 Paypal 企业帐户在我的情况下是您的主要货币,它可以很好地将值从“英镑”更改为“美国”

// Amount
$amount->setCurrency('USA')
->setTotal('22.00')
->setDetails($details);

关于php - PayPal 付款 - HTTP 响应代码 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28659784/

相关文章:

php - 使用 PHP : 在我的网页上上传/显示视频

PHP 指定方法的返回类型提示

php - 我可以信任调用 PHP __destruct() 方法吗?

linux - 无法在 Komodo Edit/IDE 7.0.2 中打开多个选项卡

c - 写入 double 浮点时处理ecos中未对齐的写入

php - Paypal Express Checkout 不收费

php - 我可以在 php 中将 mongodb 查询作为字符串传递吗

我的二进制程序中的 java.lang.NumberFormatException

php - 每笔交易使用不同的 PayPal IPN URL

python - 如何在 django-paypal IPN 函数中获取我的请求数据?