0

私はPHP用のpaypal REST SDKを使用しています.laravelラッパーを使用する 400エラーが発生します(私が理解していることからの悪い入力です) 。送り返しました。何が間違っているのかわかりません。コードは次のとおりです。

    $payer = Paypalpayment::Payer();
    $payer->setPayment_method("paypal");

    $item1 = Paypalpayment::Item();
    $item1->setName('Lavender 6 oz')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice('7.50');

    $itemList = Paypalpayment::ItemLIst();
    $itemList->setItems(array($item1));


    $amount = Paypalpayment::Amount();
    $amount->setCurrency("USD")
        ->setTotal("20.00");


    $transaction = Paypalpayment::Transaction();
    $transaction->setAmount($amount)
        ->setItemList($itemList)
        ->setDescription("Buying from ButterflyOils.com");

    $redirectUrls = Paypalpayment::RedirectUrls();
    $baseUrl = Paypalpayment::getBaseUrl();
    $redirectUrls->setReturnUrl($baseUrl +  "/ExecutePayment.php?success=true&message='PayPal+Worked!'")
        ->setCancelUrl($baseUrl + "/ExecutePayment.php?success=false&message='PayPal+Cancel'");

    $payment = Paypalpayment:: Payment();
    $payment->setIntent("sale");
    $payment->setPayer($payer);
    $payment->setRedirectUrls($redirectUrls);
    $payment->setTransactions(array($transaction));

    try {
        $payment->create($this->_apiContext);
    } catch (\PPConnectionException $ex) {
        return "Exception: " . $ex->getMessage() . PHP_EOL;
        var_dump($ex->getData());
        exit(1);
    }

    foreach($payment->getLinks() as $link) {
        if($link->getRel() == 'approval_url') {
            $redirectUrl = $link->getHref();
            break;
        }
    }

    // yeah I know this is a bad idea
    $_SESSION['paymentId'] = $payment->getId();
    if(isset($redirectUrl)) {
        header("Location: $redirectUrl");
        exit;
    }
4

3 に答える 3

0

これを変える

$item1 = Paypalpayment::Item();
    $item1->setName('Lavender 6 oz')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice('7.50');

    $itemList = Paypalpayment::ItemLIst();
    $itemList->setItems(array($item1));


    $amount = Paypalpayment::Amount();
    $amount->setCurrency("USD")
        ->setTotal("7.50");

それでおしまい

于 2013-12-09T16:37:21.660 に答える
0

エラーは、+ (Javascript の習慣) を使用して文字列に連結しようとしていたため、returnURL と CancelURL の値が「0」でしたが、baseUrl()Laravel のルーティングのために無効なアドレスが返されました。

PayPal.log を見ると役に立ちました。

于 2013-11-01T15:43:04.520 に答える