【问题标题】:Paypal Rest API on SymfonySymfony 上的 Paypal Rest API
【发布时间】:2016-09-21 22:45:57
【问题描述】:

我正在尝试将 paypal Rest API 嵌入到我的 symfony 项目中,但它返回一个错误,甚至技术服务也无法告诉我问题出在哪里...

返回的错误如下:“尝试从命名空间“PayPal\Rest”加载类“ApiContext”。您是否忘记了另一个命名空间的“use”语句?”

但是我已经有了正确的use语句,并且api已经加载了composer。

这是整个代码,如果它可以帮助...

<?php

namespace PlatformBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use PayPal\Api\Payer;
use PayPal\Api\Item;
use PayPal\Api\ItemList;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Payment;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;

class PaypalController extends Controller
{
    private function paypalKeys()
    {
        return new ApiContext(
            new OAuthTokenCredential(
                'mykey',
                'mykey'
            )
        );
    }

    public function chargeAction()
    {
        $this->paypalKeys();
        $price = 10;
        $total = $price;

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

        $item = new Item();
        $item->setName('transfer')
            ->setCurrency('eur')
            ->setQuantity(1)
            ->setPrice($price);

        $itemList = new ItemList();
        $itemList->setItems([$item]);

        $details = new Details();
        $details->setShipping(0)
            ->setSubtotal($price);

        $amount = new Amount();
        $amount->setCurrency('eur')
            ->setTotal($total)
            ->setDetails($details);

        $transaction = new Transaction();
        $transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription('Description')
            ->setInvoiceNumber(uniqid());

        $redirectUrls = new RedirectUrls();
        $redirectUrls->setReturnUrl('http://localhost/dublin/web/app_dev.php/admin')
            ->setCancelUrl('http://localhost/dublin/web/app_dev.php/cancel');

        $payment = new Payment();
        $payment->setIntent('sale')
            ->setPayer($payer)
            ->setRedirectUrls($redirectUrls)
            ->setTransactions([$transaction]);

//        try {
        $payment->create($this->paypalKeys());
//        } catch (Exception $e) {
//            die($e);
//        }
//
//        return new Response('true');
//        echo $approvalUrl = $payment->getApprovalLink();
    }
}

谢谢你...

附件:

我的 ApiContext 文件的开头

namespace PayPal\Rest;

use PayPal\Core\PayPalConfigManager;
use PayPal\Core\PayPalCredentialManager;

/**
 * Class ApiContext
 *
 * Call level parameters such as request id, credentials etc
 *
 * @package PayPal\Rest
 */
class ApiContext
{

    /**
     * Unique request id to be used for this call
     * The user can either generate one as per application
     * needs or let the SDK generate one
     *

【问题讨论】:

    标签: php rest paypal payment-gateway symfony


    【解决方案1】:

    这行得通吗?

    private function paypalKeys()
        {
            return new \ApiContext(
                new OAuthTokenCredential(
                    'mykey',
                    'mykey'
                )
            );
    }
    

    尝试在调用类之前添加一个“\”并判断它是否有效。

    您还应该检查 ApiContext 中的命名空间是否正常。 :)

    【讨论】:

    • 它不会改变任何东西:/
    • @FabulousCo 你能告诉我 ApiContext 文件的开头吗?命名空间?
    • 是的,我刚刚在帖子的附件中添加了它:) 感谢您的帮助
    • @FabulousCo 你能把作曲家部分放在你添加这个api的地方吗?
    • 这里是:“paypal/rest-api-sdk-php”:“1.3.*”,
    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 2014-04-16
    • 2015-05-20
    • 2014-12-26
    • 2013-08-16
    • 1970-01-01
    • 2014-07-02
    • 2015-07-19
    相关资源
    最近更新 更多