如何使用paypal rest api重新解决400错误的请求错误

Mil*_*ran 3 paypal

我目前正在使用PayPal payment pro Rest API测试信用卡付款.

我一直收到以下错误:

HttpConnection中的异常执行:无效的HTTP响应远程服务器返回错误:(400)错误请求.--->

我创建并激活了我的PayPal测试帐户,如下所示:

信用卡信用卡号码:ccnumber此处信用卡类型:签证有效期:3/2019

当我在我的付款表格中输入上述信息并提交时,我不断收到400错误请求错误.

在PayPAl乔购物者账户之前,我已经开始使用它,但是丢失了测试cc号码.

我100%确定我已使用oauth2凭据进行身份验证

导致此错误的可能原因是什么?:

我正在输入随机付款人的名字和姓氏.

名字是否必须存在?

可能导致错误的原因

Jit*_*hin 13

如果给出的数据出现任何问题,paypal api将返回400 - 错误的请求错误.

当我收到错误(PHP SDK)时,我捕获了异常并$ex->getData()返回了一个json,其中包含有关错误请求的详细信息,在我的情况下,我给出的货币代码是错误的.

    try {
        $payment->create($apiContext);
    } catch (PayPal\Exception\PPConnectionException $ex) {
        var_dump(json_decode($ex->getData()));
        exit(1);
    }
Run Code Online (Sandbox Code Playgroud)

  • 这很有用! (3认同)

Jür*_*yer 1

我刚刚遇到了同样的问题(HTTP 400 - 错误请求)。原因是 REST API 请求出现“错误”。就我而言,我有两个原因:

  • 我将金额详细信息传递给 Amount 对象,但小计、运费税的总和不等于总金额。
  • 我传递了包括断裂在内的金额货币值,但传递的不是精确两位小数,而是只有一位。显然,REST API 有点敏感,只接受不接受小数或接受两位小数。
  • 我在 Transaction 对象中传递了一个 item_list,但 Item 对象中的价格总和不等于金额详细信息中给出的小计。

我不知道如何找到错误的实际原因(如果有的话)。

就您而言,它可能是您添加的付款人的姓名。不加试试。

编辑:

我刚刚试了一下:确实是付款人信息。我传递了带有名字和姓氏的 payer_info 并得到了 HTTP 400(但一切正常)。我假设 payer_info 不能由我们设置,而是由 PayPal 在返回 Payment 对象时设置。

Payer payer = new Payer { payment_method = "paypal", payer_info = new PayerInfo {
   first_name = "Zaphod", last_name = "Beeblebrox"}  }; // => HTTP 400 - Bad Request
Run Code Online (Sandbox Code Playgroud)