簡體   English   中英

Payum - 當用戶關閉瀏覽器在paypal端時,如何重復Paypal支付。

[英]Payum - How to repeat Paypal payment when user close browser being on paypal side.

我有一個ExpressCheckout啟動並運行。 現在我想讓用戶有機會在以后付款。 例如,他關閉了我保存數據的paypal過程。

我想這一定非常簡單,但不知怎的,它不會再將我重定向到paypal。 到目前為止,我唯一做的就是使用標識符來查找現有模型而不是創建新模型。 這部分工作,所以它會找到PaypalExpressPaymentDetails表的具體記錄。 但正如我所說,它不會重定向到貝寶。 這是代碼:

$paymentName = 'demo_paypal';
    $storage = $this->get('payum')->getStorageForClass(
        'Demo\UserBundle\Entity\PaypalExpressPaymentDetails',
        $paymentName
    );

    /** @var $paymentDetails PaymentDetails */
    $paymentDetails = $storage->createModel();
    $paymentDetails->setPaymentrequestCurrencycode(0, $currency);
    $paymentDetails->setPaymentrequestAmt(0, $amount);
    $storage->updateModel($paymentDetails);


    $captureToken = $this->getTokenFactory()->createCaptureToken(
        $paymentName,
        $paymentDetails,
        'payments_transaction_success'
    );

    $paymentDetails->setReturnurl($captureToken->getTargetUrl());
    $paymentDetails->setCancelurl($captureToken->getTargetUrl());
    $paymentDetails->setInvnum($paymentDetails->getId());
    $storage->updateModel($paymentDetails);

執行控制器:

...
$identificator = new Identificator($entity->getId(), 'Demo\UserBundle\Entity\PaypalExpressPaymentDetails');
$captureToken = $this->payLateByPaypal($entity->getAmount(), "USD", $entity->getId(), $identificator);
return $this->redirect($captureToken->getTargetUrl());

有任何想法嗎?

我在沙盒中重現它。 不幸的是,這是一個已知問題。 如果用戶登錄並第二次訪問該頁面,則認為付款被取消 這樣做是為了避免您的網站和PayPal之間的無限重定向。 我沒有看到解決它的簡單方法。

UPDATE

在版本1.0中,正確處理取消問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM