我正在尝试使用Payum Bundle和paypal_express_checkout
网关在Symfony 3.4中设置定期付款。我正在使用的代码来自第三方,该第三方不提供支持,并且已经集成了一次性付款功能,但我正在尝试找出如何将其更改为定期付款。
这个想法是,用户将订阅某些美国县,以便它们可以在网站上以广告形式展示。我有一个实体Profile
和另一个实体County
,并在订阅后加入了他们。我相信使用当前的代码,我可以使用定期付款,但是仍然不知道如何检查其状态。
我知道Paypal发送了一个通知或事件,但是如何挂起此事件?
我不确定在这里尝试什么,因为我不知道从哪里开始。我已经看过其他代码的示例,但是我正在使用的代码在语法上常常相差很多,因此我不确定如何将看到的内容转换为当前的内容。
if ($order->getGateway() == 'paypal') {
$gatewayName = 'paypal_express_checkout';
$storage = $this->get('payum')->getStorage(Payment::class);
$payment = $storage->create();
$payment->setNumber(uniqid());
$payment->setCurrencyCode($this->getParameter('app.currency'));
$payment->setTotalAmount($price * 100);
$payment->setDescription('A description');
$payment->setClientId($this->getUser()->getId());
$payment->setClientEmail('buyer-email@host.tld');
$payment->setDescription('Description here');
$payment->setOrder($order);
$payment->setDetails([
'L_BILLINGTYPE0' => Api::BILLINGTYPE_RECURRING_PAYMENTS,
'L_BILLINGAGREEMENTDESCRIPTION0' => "first item",
]);
$storage->update($payment);
$captureToken = $this->get('payum')->getTokenFactory()->createCaptureToken($gatewayName, $payment, 'order_paypal_completed');
return $this->redirect($captureToken->getTargetUrl());
}
return $this->redirectToRoute('order');
}
我也有一个gist。结果是应该的(据我所知)是我找不到每月检查其状态的方法。