【问题标题】:PayPal Sandbox 400 error after redirection重定向后 PayPal Sandbox 400 错误
【发布时间】:2020-11-15 15:01:59
【问题描述】:

我使用 laravel V6

$apiContext = new \PayPal\Rest\ApiContext(
        new \PayPal\Auth\OAuthTokenCredential(
            'token..',
            'token..'
        )
    );

   //dd($transaction);
    $callbackUrl = url('/paypal/status');

    $payer = new \PayPal\Api\Payer();
    $payer->setPaymentMethod('paypal');

    $amount = new \PayPal\Api\Amount();
    $amount->setTotal('1.00');
    $amount->setCurrency('USD');

    $transaction = new \PayPal\Api\Transaction();
    $transaction->setAmount($amount);

    $redirectUrls = new \PayPal\Api\RedirectUrls();
    $redirectUrls->setReturnUrl($callbackUrl)
        ->setCancelUrl($callbackUrl);

    $payment = new \PayPal\Api\Payment();
    $payment->setIntent('sale')
        ->setPayer($payer)
        ->setTransactions(array($transaction))
        ->setRedirectUrls($redirectUrls);

    try {
        $payment->create($apiContext);
        //dd($payment);
        //dd($payment->getApprovalLink());
        return redirect()->away($payment->getApprovalLink());
    } catch (\PayPal\Exception\PayPalConnectionException $ex) {
        var_dump(json_decode($ex->getData()));
        exit(1);
    }

那是控制器,我按照文档enter link description here 但我收到 400 错误enter link description here 它生成的链接如下https://www.sandbox.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&token=EC-88M93704JL735000S&country.x=US&locale.x=es_XC#/checkout/genericError?code=UEFZTUVOVF9ERU5JRUQ%3D

我不明白为什么错误.. client_id 秘密,很好.. 反正它直接在控制器中并检查沙盒帐户是否有余额

【问题讨论】:

    标签: laravel paypal


    【解决方案1】:

    对于该 ClientId/Secret,PayPal 沙盒中的收款账户似乎来自无法接收任何付款的国家/地区,例如玻利维亚。在 https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Faccounts%2F 为能够接收 PayPal 付款的其他国家/地区创建一个新的沙盒企业帐户,然后在“我的应用程序”侧选项卡中为这个新的沙盒企业帐户创建一个 REST 应用程序。


    您似乎在使用过时的 PHP 集成,以及旧的 v1 支付 SDK

    您应该改用 v2 Checkout-PHP-SDK,它有两条路线,一条用于“设置交易”,一条用于“捕获交易”,记录在此:https://developer.paypal.com/docs/checkout/reference/server-integration/

    不要重定向到批准 URL,而是使用这个前端 UI:https://developer.paypal.com/demo/checkout/#/pattern/server——这提供了一种“上下文”结帐体验,使您的网站在后台加载,从而提供了非常出色的现代网络体验

    【讨论】:

      猜你喜欢
      • 2015-05-29
      • 2017-12-05
      • 2016-12-01
      • 2023-03-28
      • 2018-10-05
      • 2017-12-29
      • 2012-03-18
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多