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¤cy=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リクエストベリファイアを使用してトークンを取得できる独自の通知コントローラを作成できます。トークンを取得したら、トークンをゲートウェイの execute メソッドに渡すことで、通常どおり処理できます。

  2. HTTPリクエストベリファイアをnotifyアクションに注入(コンストラクタ引数として渡す)、検証などを行うことができます

于 2015-07-03T17:49:17.357 に答える