2

我正在为 Payum 库构建自定义网关,我必须使用不安全的通知请求来完成付款

https://example.com/payment/notify/unsafe/GATEWAY_NAME?amount=100.0&paymentDate=2015-07-03:15:10:57&hashCode=e10b795dd5f52540ca3039ce1af325b4&voucherNumber=6921760593&voucherStatus=PAID&refNumber=asda22sd&=USD

Array
(
    [amount] => 100.0
    [paymentDate] => 2015-07-03:15:10:57
    [hashCode] => e10b795dd5f52540ca3039ce1af325b4
    [voucherNumber] => 6921760593
    [voucherStatus] => PAID
    [refNumber] => asda22sd
    [currency] => USD
)

一切正常,除了我不知道如何Payment Token使用,refNumber所以我可以完成购买。

NotifyAction.php:

class NotifyAction extends GatewayAwareAction
{
    /**
     * {@inheritDoc}
     */
    public function execute($request)
    {
        /** @var $request Notify */
        RequestNotSupportedException::assertSupports($this, $request);

        $this->gateway->execute($httpRequest = new GetHttpRequest());
        $details = $httpRequest->query;

        var_dump($details);
        throw new HttpResponse(null, 200);
    }
    /**
     * {@inheritDoc}
     */
    public function supports($request)
    {
        return $request instanceof Notify;
    }
}
4

1 回答 1

0

您将令牌的哈希存储到 refNumber,是吗?如果是这样,有几种方法可以去:

  1. 您可以创建自己的通知控制器,您可以在其中使用此 refNumber + http 请求验证器来获取令牌。获得令牌后,您可以通过将令牌传递给网关执行方法来像往常一样进行处理。

  2. 您可以将http请求验证器注入(作为构造函数参数传递)到通知操作,进行验证等

于 2015-07-03T17:49:17.357 回答