【问题标题】:How to create NotifyAction for unsafe request?如何为不安全的请求创建 NotifyAction?
【发布时间】:2015-09-21 12:11:59
【问题描述】:

我正在为 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&currency=USD

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

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

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;
    }
}

【问题讨论】:

    标签: php payum


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2018-06-17
      • 2022-10-04
      • 2017-12-10
      相关资源
      最近更新 更多