在Payum组合/ PayPal Express结帐中检查重复付款的状态

时间:2018-12-27 15:51:49

标签: symfony paypal-sandbox symfony-3.4 paypal payum

我正在尝试使用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。结果是应该的(据我所知)是我找不到每月检查其状态的方法。

0 个答案:

没有答案