微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

捕获付款时未调用ConvertPaymentAction操作

如何解决捕获付款时未调用ConvertPaymentAction操作

在捕获付款时未调用ConvertPaymentAction操作。

复制步骤 我在PaymentGatewayFactory.PHP注册ConvertPayment操作,如下所示:

// PaymentGatewayFactory.PHP

protected function populateConfig(ArrayObject $config)
{
    $config->defaults([
        .....,'payum.action.convert_payment' => new ConvertPaymentAction(),......
    ]);
}

// ConvertPaymentAction.PHP

   public function execute($request)
{
    RequestNotSupportedException::assertSupports($this,$request);

    /** @var PaymentInterface $payment */
    $payment = $request->getSource();

    /** @var OrderInterface $order */
    $order = $payment->getorder();

    $details = ArrayObject::ensureArrayObject($payment->getDetails());

    $details['amount'] = $payment->getAmount();
    $details['currency'] = $payment->getCurrencyCode();
    $details['orderId'] =  $order->getNumber();
    $details['customer'] = [
        'email' => $order->getCustomer()->getEmail()
    ];

    $request->setResult((array) $details);
}

public function supports($request)
{
    dd($request);
    return
        $request instanceof Convert &&
        $request->getSource() instanceof PaymentInterface &&
        $request->getTo() == 'array'
        ;
}

}

我做错了吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。