【问题标题】:Payum/paypal checkout : What to do after redirecting me to done actionPayum/paypal 结帐:将我重定向到完成操作后该怎么办
【发布时间】:2016-01-05 22:13:44
【问题描述】:

我正在尝试使用 payum 解决方案将 paypal 结账功能集成到我的网站。

第 1 步:支付页面,通过验证触发重定向到贝宝:OK 第 2 步:用户使用他的凭据登录并授权付款:OK

第 3 步:用户使用正确的令牌正确重定向到我的 doneAction。令牌状态为“已捕获”:OK

第 4 步:我不知道下一步该做什么来验证付款。我知道我必须验证付款,但如何验证?

下面是我基于payum doc的doneAction:

public function doneAction(Request $request){
        $token = $this->get('payum.security.http_request_verifier')->verify($request);

        $gateway = $this->get('payum')->getGateway($token->getGatewayName());

        $gateway->execute($status = new GetHumanStatus($token));
        //die(dump($status->isCaptured()));
        $payment = $status->getFirstModel();

        if ($status->isCaptured()) {
             // What to do here
        }

        return new JsonResponse(array(
            'status' => $status->getValue(),
            'payment' => array(
                'total_amount' => $payment->getTotalAmount(),
                'currency_code' => $payment->getCurrencyCode(),
                'details' => $payment->getDetails(),
            ),
        ));
    }

感谢阅读。

【问题讨论】:

    标签: symfony paypal payum


    【解决方案1】:

    一般来说,你必须把你的业务逻辑放在那里,例如

    如果您销售产品,您必须将订单标记为已付款并通知您的送货服务以运送产品。

    如果您的客户为帐户付费,您必须启用它。

    如果您的客户为电子书付费,您必须将下载链接发送给他

    所以完全取决于放什么。如果捕获的状态等于购买的,请执行您的操作。如果它是不同的东西,例如根据该状态进行操作。 failed 表示用户没有付款,所以不要给他发货。

    您没有返回 json,它可以是带有收据等的重定向或 html 页面

    【讨论】:

    • 谢谢你。但我还是不明白一些事情。使用 Paypal Check,我不必在第 4 步显示验证按钮吗?
    • 显示验证按钮,是什么原因?付款已经完成。
    • @MaksimKotlyar 以及如果状态未决如何处理?如何查询网关获取状态?
    • 您必须确保推送通知正常工作(如果网关支持)。并注册一个 payum 网关扩展,它会获取请求(可选)并获取状态以及您的业务逻辑。
    猜你喜欢
    • 2014-09-21
    • 2015-02-20
    • 2013-12-17
    • 2012-03-11
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多