1

我正在尝试使用 payum 解决方案将贝宝结帐集成到我的网站。

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

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

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

下面,有我的 doneAction 基于 payum doc :

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(),
            ),
        ));
    }

谢谢阅读。

4

1 回答 1

2

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

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

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

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

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

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

于 2015-10-08T13:28:47.160 回答