我开始使用开箱即用的 PayumBundle。不,我用我的用户对象扩展了我的 PaypalExpressPaymentDetails 实体:
/**
* @ORM\OneToOne(targetEntity="Bidder", inversedBy="paymentPaypal")
* @ORM\JoinColumn(name="bidder_id", referencedColumnName="id")
*/
protected $bidder;
现在我有一个问题。在 Paypal 交互之前和之后修改付款详细信息实体的最佳位置是什么 - 我认为更重要的是 -在Paypal 交互之后?
我正在查看沙箱代码,我想这一定是在贝宝交易之前设置数据的正确位置:
$paymentDetails->setReturnurl($captureToken->getTargetUrl());
$paymentDetails->setCancelurl($captureToken->getTargetUrl());
$paymentDetails->setInvnum($paymentDetails->getId());
$paymentDetails->setBidder($bidder); //i think this should be fine at this position
$storage->updateModel($paymentDetails);
这是我在从 Paypal 付款后被重定向后在 Controller 中所做的事情(也参考沙盒代码):
$status = new BinaryMaskStatusRequest($token);
$payment->execute($status);
if($status->isSuccess()){
//mark bidder as paid <- right position?
$bidder = $status->getModel()->getBidder();
$bidder->setIsPaid(true);
$em = $this->getDoctrine()->getManager();
$em->persist($bidder);
$em->flush();
}
不知道我是否应该喜欢它。贝宝响应的事件监听器怎么样?将感谢您的建议。
谢谢,马克