Symfony Payum Bundle:"Proxies__CG__AppEntityPayment"的存储扩展已注册到网关



好几个小时以来,我一直在为以下错误寻找解决方案:

我想用网关进行支付(条纹和贝宝+离线测试(,但每次我想打开捕获链接时,我都会得到以下异常:

不支持请求捕获{model:Identity}。确保";代理_CG_\App\Entity\Payment"已注册到网关。确保storage find方法返回id为"的实例;1〃;。确保网关支持请求,并且有一个操作支持此请求(该方法返回true(。可能存在错误,请在问题跟踪器上查找相关问题。

我有以下配置:

  • PHP 7.4
  • payum/payum捆绑包v2.4
  • 符号5.2.3

相关片段:

payum.yaml

payum:
storages:
AppEntityPayment: { doctrine: orm }
security:
token_storage:
AppEntityPaymentToken: { doctrine: orm }
gateways: [...]

实体\支付

<?php
namespace AppEntity;
use DoctrineORMMapping as ORM;
use PayumCoreModelPayment as BasePayment;
/**
* @ORMTable
* @ORMEntity
*/
class Payment extends BasePayment
{
/**
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*
* @var integer $id
*/
protected $id;
}

实体\支付令牌

<?php
namespace AppEntity;
use DoctrineORMMapping as ORM;
use PayumCoreModelToken;
/**
* @ORMTable
* @ORMEntity
*/
class PaymentToken extends Token
{
}

doctrine.yaml(配置/包(

doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '5.7'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'AppEntity'
alias: App
dql:
numeric_functions:
Rand: AppDQLRandFunction

创建支付的代码段

$storage = $this->payum->getStorage('AppEntityPayment');
$payment = $storage->create();
$payment->setNumber(uniqid());
$payment->setCurrencyCode('EUR');
$payment->setDescription('[...]');
$payment->setClientId($user->getId());
$payment->setClientEmail($user->getEmail());
$storage->update($payment);
$captureToken = $this->payum->getTokenFactory()->createCaptureToken(
'offline',
$payment,
'index'
);

通过打开捕获URL($capureToken->getTargetURL(((,我从上面得到了异常。我尝试了与其他stackoverflow帖子不同的解决方案,如清除缓存、无需开发的预热和其他方法,但都不起作用。我多次遵循payum和捆绑包的文档(在某些情况下很可怕(,使用完全相同的片段,但没有任何结果。

我只是希望这里有人能帮助我,否则我就有点搞砸了。

谢谢!

好吧,与支付实体的关系似乎有问题。我有另一个与支付实体有多对一关系的实体。通过删除它并在没有任何关系的情况下作为支付实体,它运行得很好。。。

最新更新