Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
payum symfony 2捆绑包-基本配置-存储_Symfony_Paypal_Doctrine Orm_Payum - Fatal编程技术网

payum symfony 2捆绑包-基本配置-存储

payum symfony 2捆绑包-基本配置-存储,symfony,paypal,doctrine-orm,payum,Symfony,Paypal,Doctrine Orm,Payum,我需要配置payum捆绑包,以便让客户处理paypal支付 我只是遵循了官方的建议,但我想我还需要配置更多的东西(也许我没有在某处配置PaymentDetails的存储) 我的配置文件如下: **app/config.yml** doctrine: orm: auto_generate_proxy_classes: true entity_managers: default:

我需要配置payum捆绑包,以便让客户处理paypal支付

我只是遵循了官方的建议,但我想我还需要配置更多的东西(也许我没有在某处配置PaymentDetails的存储)

我的配置文件如下:

**app/config.yml**
    doctrine:    

        orm:
            auto_generate_proxy_classes: true
            entity_managers:
                default:
                    mappings:
                        WebsiteDeviceBundle: ~
                        WebsiteOnePageBundle: ~
                        payum:
                            is_bundle: false
                            type: xml
                            dir: %kernel.root_dir%/../vendor/payum/payum/src/Payum/Core/Bridge/Doctrine/Resources/mapping
                            prefix: Payum\Core\Model
    payum:
        security:
            token_storage:
                Website\Bundle\DeviceBundle\Entity\PaymentToken: { doctrine: orm }
        storages:
            Website\Bundle\DeviceBundle\Entity\PaymentDetails: { doctrine: orm }

        contexts:
            express_euro:
                paypal_express_checkout_nvp:
                    username:  ''
                    password:  ''
                    signature: ''
                    sandbox: true
这是我的控制器启动付款流程的操作

public function prepareAction(){
        $paymentName = 'express_euro';

        $storage = $this->get('payum')->getStorage('Website\DeviceBundle\Entity\PaymentDetails');

        $order = $storage->createModel();
        $order->setNumber(uniqid());
        $order->setCurrencyCode('EUR');
        $order->setTotalAmount($this->view['user']->money);
        $order->setDescrizione('annual account subscription');
        $order->setUser($this->view['user']->getId());
        $order->setCreatedAt(new \DateTime());
        $order->setClientEmail($this->view['user']->getEmail());

        $storage->updateModel($order);

        $captureToken = $this->get('payum.security.token_storage')->createCaptureToken(
            $paymentName, 
            $order, 
            'done' // the route to redirect after capture;
        );

        return $this->redirect($captureToken->getTargetUrl());
    }
这是PaymentDetails类

<?php

namespace Website\Bundle\DeviceBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Payum\Core\Model\ArrayObject;

/**
 * PaymentDetails
 *
 * @ORM\Table(name="PaymentDetails", indexes={@ORM\Index(name="user", columns={"user"})})
 * @ORM\Entity(repositoryClass="Website\Bundle\DeviceBundle\Entity\PaymentsDetailsRepository")
 */
class PaymentDetails extends ArrayObject
{
    /**
     * @var string
     *
     * @ORM\Column(name="currency_code", type="string", length=255, nullable=false)
     */
    private $currencyCode;

    /**
     * @var string
     *
     * @ORM\Column(name="description", type="text", nullable=true)
     */
    private $description;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
     */
    private $createdAt;

    /**
     * @var integer
     *
     * @ORM\Column(name="number", type="integer", nullable=false)
     */
    private $number;

    /**
     * @var integer
     *
     * @ORM\Column(name="total_amount", type="integer", nullable=false)
     */
    private $totalAmount;

    /**
     * @var string
     *
     * @ORM\Column(name="client_email", type="text", nullable=false)
     */
    private $clientEmail;

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var \Website\Bundle\DeviceBundle\Entity\Users
     *
     * @ORM\ManyToOne(targetEntity="Website\Bundle\DeviceBundle\Entity\Users")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="user", referencedColumnName="id")
     * })
     */
    private $user;
有什么帮助或建议吗? 提前谢谢

刚刚更改了这行

$storage = $this->get('payum')->getStorage('Website\DeviceBundle\Entity\PaymentDetails');
进入

现在它开始工作了

$storage = $this->get('payum')->getStorage('Website\DeviceBundle\Entity\PaymentDetails');
$storage = $this->get('payum')->getStorage('Website\Bundle\DeviceBundle\Entity\PaymentDetails');