- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户在购物车中添加一些产品时,产品将保存在实体命令中,其中包含价格、数量、描述等...
s:10:"complement";s:9:"test test";}s:7:"priceHT";d:520;s:8:"priceTTC";d:624.25;s:5:"token";s:40:"50908802a1c1f0daf19e60277e336d6ab49142de";}
我想在实体命令中获取 PriceHT,以便我可以将其发送到 paypal。
我正在使用 Payum (1.0.0)。
我有这个错误:
Attempted to call an undefined method named "getPriceTTC" of class "FLY\BookingsBundle\Entity\Commandes".
这是 dump($commande) 的结果;
Commandes {#1175 ▼
-id: 87
-user: User {#922 ▶}
-confirm: false
-date: DateTime {#1173 ▶}
-reference: 0
-commande: array:6 [▼
"tva" => array:1 [▶]
"entity" => array:1 [▶]
"address" => array:8 [▶]
"priceHT" => 47.0
"priceTTC" => 56.42
"token" => "0a044567dfe10f5594e8a5f1a9a632a66fd30b01"
]
#number: null
#description: null
#clientEmail: null
#clientId: null
#totalAmount: null
#currencyCode: null
#details: []
#creditCard: null
}
这是我到目前为止所做的:
public function validationCommandeAction($id)
{
$gatewayName = 'express_euro';
$storage = $this->get('payum')->getStorage('FLY\BookingsBundle\Entity\Commandes');
$em = $this->getDoctrine()->getManager();
$commande = $em->getRepository('FLYBookingsBundle:Commandes')->find($id);
if (!$commande || $commande->getConfirm() == 1)
throw $this->createNotFoundException('Your order doesn t exist');
$commande = $storage->create();
$commande->setUser($this->get('security.token_storage')->getToken()->getUser());
$commande->setDate(new \DateTime());
$commande->setCurrencyCode('EUR');
$commande->setClientId($this->getUser()->getId());
$commande->setClientEmail($this->getUser()->getEmail());
$commande->setTotalAmount($commande->getPriceTTC());
$commande->setConfirm(1);
$commande->setReference($this->container->get('setNewReference')->reference()); //Service
$storage->update($commande);
$em->flush();
$captureToken = $this->get('payum.security.token_factory')->createCaptureToken(
$gatewayName,
$commande,
'complete' // the route to redirect after capture;
);
return $this->redirect($captureToken->getTargetUrl());
}
添加:
public function bill()
{
$em = $this->getDoctrine()->getManager();
$generator = $this->container->get('security.secure_random');
$session = $this->getRequest()->getSession();
$address = $session->get('address');
$cart = $session->get('cart');
$commande = array();
$totalHT = 0;
$totalTVA = 0;
$address = $em->getRepository('FLYBookingsBundle:Address')->find($address['address']);
$entities = $em->getRepository('FLYBookingsBundle:Post')->findArray(array_keys($session->get('cart')));
foreach ($entities as $entity) {
$priceHT = ($entity->getPrice() * $cart[$entity->getId()]);
$priceTTC = ($entity->getPrice() * $cart[$entity->getId()] / $entity->getTva()->getMultiplicate());
$totalHT += $priceHT;
if (!isset($commande['tva']['%' . $entity->getTva()->getValue()]))
$commande['tva']['%' . $entity->getTva()->getValue()] = round($priceTTC - $priceHT, 2);
else
$commande['tva']['%' . $entity->getTva()->getValue()] += round($priceTTC - $priceHT, 2);
$totalTVA += round($priceTTC - $priceHT, 2);
$commande['entity'][$entity->getId()] = array(
'from' => $entity->getAirport(),
'to' => $entity->getAirport1(),
'quantity' => $cart[$entity->getId()],
'priceHT' => round($entity->getPrice(), 2),
'priceTTC' => round($entity->getPrice() / $entity->getTva()->getMultiplicate(), 2));
}
$commande['address'] = array('surname' => $address->getSurname(),
'name' => $address->getName(),
'phone' => $address->getPhone(),
'address' => $address->getAddress(),
'zipcode' => $address->getZipcode(),
'city' => $address->getCity(),
'country' => $address->getCountry(),
'complement' => $address->getComplement());
$commande['priceHT'] = round($totalHT, 2);
$commande['priceTTC'] = round($totalHT + $totalTVA, 2);
$commande['token'] = bin2hex($generator->nextBytes(20));
return $commande;
}
最佳答案
这就是我为获取总金额和说明所做的事情。
public function validationCommandeAction($id)
{ $session = $this->getRequest()->getSession();
$gatewayName = 'express_euro';
$storage = $this->get('payum')->getStorage('FLY\BookingsBundle\Entity\Commandes');
$em = $this->getDoctrine()->getManager();
$commande = $em->getRepository('FLYBookingsBundle:Commandes')->find($id);
dump($commande);
if (!$commande || $commande->getConfirm() == 1)
throw $this->createNotFoundException('Your order doesn t exist');
$commande = $storage->create();
$commande->setUser($this->get('security.token_storage')->getToken()->getUser());
$commande->setDate(new \DateTime());
$commande->setCurrencyCode('EUR');
$commande->setClientId($this->getUser()->getId());
$commande->setClientEmail($this->getUser()->getEmail());
$commande->setNumber(uniqid());
$entities = $em->getRepository('FLYBookingsBundle:Post')->findArray(array_keys($session->get('cart')));
foreach ($entities as $entity) {
$commande->setTotalAmount($priceTTC = round($entity->getPrice() / $entity->getTva()->getMultiplicate()*100, 2));
$commande->setDescription($entity->getAirport());
}
$commande->setConfirm(1);
$commande->setReference($this->container->get('setNewReference')->reference()); //Service
$storage->update($commande);
$em->flush();
$captureToken = $this->get('payum.security.token_factory')->createCaptureToken(
$gatewayName,
$commande,
'complete' // the route to redirect after capture;
);
return $this->redirect($captureToken->getTargetUrl());
}
关于php - 获取数组中的值 [Symfony2 - Payum],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36645379/
我是 Payum 的新手,我正在尝试创建一个新的支付网关。但是我无法弄清楚配置值如何与我创建的文件(操作/工厂等)相关。 这是我到目前为止所拥有的; payum: security:
当用户在购物车中添加一些产品时,产品将保存在实体命令中,其中包含价格、数量、描述等... s:10:"complement";s:9:"test test";}s:7:"priceHT";d:520;
我已经创建了 payum 付款方式。我已经设置了一个存储付款详细信息的付款表单,然后我生成了付款安全 token 。到目前为止,这一切似乎都没有问题,payum 在存储中生成了 token 。 但是,
我正在尝试运行示例代码 here 但是我收到了这个错误: Payum\Core\Exception\InvalidArgumentException: A token with hash `RVpxp
我正在尝试在我的 Symfony2 应用程序上通过 IPN 实现 PayPal 支付。我正在使用 PayumBundle 和 Payum Express Check out,我已按照说明进行操作,系统
我正在使用 payum 网站文档中的示例创建使用 paypal 快速结帐的付款。我被重定向到 Paypal,但即使我指定了金额和描述,paypal 仍显示“当前购买”,其中会列出描述和价格。 ht
我在我的站点中使用 PayumBundle 进行 Paypal 集成。我已经设置了 bundle ,如中所述 https://github.com/Payum/PayumBundle/blob/mas
我正在为我的网络应用程序寻找支付解决方案。我看到有像 stripe(用于信用卡)或 PayPal 插件这样的 API 可以处理某些支付方式。 然后我看到有可以处理各种支付方式的库,比如 Payum (
我在尝试使其正常工作时遇到了一些问题,我已经成功地(或似乎)实现了结帐 express ,但我的系统也需要订阅选项,在此之后 example . 现在,我的问题是在 Laravel 中你不能简单地放置
我是 Payum 的新手。很多事情让我很困惑。我正在尝试建立一个简单的 Paypal 快速结账,就像 Payum 上的示例所示 document .但是,当我尝试处理付款时,出现异常: “名为 my_
我根据这个例子配置 Bundle http://payum.forma-dev.com/documentation/0.8/PayumBundle/simple_purchase_examples/p
我正在尝试自定义 StripeBundle 的模板,分别是结帐模板vendor\payum\stripe\Payum\Stripe\Resources\views\Action\obtain_chec
我需要配置 payum 包,以便让客户处理 paypal 付款。 我刚刚关注了 getting started官方推荐,但我想还需要配置更多东西(也许我缺少在某处配置 PaymentDetails 的
我正在使用 Symfony 2.6 并尝试设置 PayumBundle(paypal 快速结帐),但出现错误 InvalidConfigurationException in BaseNode.php
我正在尝试使用 payum 解决方案将 paypal 结账集成到我的网站。 第 1 步:支付页面,验证触发重定向到 paypal:OK第 2 步:用户使用他的凭据登录并授权付款:确定 第 3 步:用户
我正在使用 PAYUM Bundle 进行支付网关集成,其基本示例工作正常,但现在我想通过更改 payum 捕获操作布局并添加额外的字段支付详细信息实体将 payum 包集成到应用程序中。 带有 AU
我刚刚安装并配置了 payum 包。我有一个异常(exception): 不支持请求 SecuredCaptureRequest{model: Payment}。 它发生在 PaymentContro
我一直在努力思考如何使用 Sylius(sylius/sylius-standard,v0.16)实现经典的离线支付网关。 到目前为止,我在我的包的 build() 方法中得到了这个: public
我正在尝试使用快速结帐 (Payum/paypal-express-checkout-nvp) 创建一个循环配置文件。 Howto from Payum private function create
我目前正在使用 Silex(最新稳定版)制作一个需要实现支付系统的网站。所以我尝试安装 Payum(最新的稳定版),一切正常,直到我调用准备页面,该页面将我重定向到 Payum 捕获页面(/payme
我是一名优秀的程序员,十分优秀!