2015-03-19 95 views
1

我在Symfony2中设置了带条带扩展的PayumBundle。即使支付成功,带条的PayumBundle也总是返回Pending

这里是我的prepareAction:

public function prepareAction() { 
    $paymentName = 'stripe_pay'; 

    $storage = $this->get('payum')->getStorage('XXX\XXXBundle\Entity\ClientOrder'); 

    $order = $storage->create(); 
    $order->setNumber(uniqid()); 
    $order->setCurrencyCode('USD'); 
    $order->setTotalAmount(123000); // 1.23 EUR 
    $order->setDescription('A description'); 
    $order->setClientId($this->getUser()->getId()); 
    $order->setClientEmail($this->getUser()->getEmail()); 

    $storage->update($order); 

    $captureToken = $this->get('payum.security.token_factory')->createCaptureToken(
      $paymentName, $order, 'client_order_done' // the route to redirect after capture 
    ); 

    return $this->redirect($captureToken->getTargetUrl()); 
} 

这里是我的doneAction:

/** 
* @Security("has_role('ROLE_ADVERTISER')") 
*/ 
public function doneAction(Request $request) { 
    $token = $this->get('payum.security.http_request_verifier')->verify($request); 

    $payment = $this->get('payum')->getPayment($token->getPaymentName()); 

    $status = new GetHumanStatus($token); 

    $payment->execute($status); 
    $order = $status->getFirstModel(); 


    return new JsonResponse(array(
     // 'real_status' => $real_status, 
     'status' => $status->getValue(), 

     'order' => array(
      'total_amount' => $order->getTotalAmount()/100, 
      'currency_code' => $order->getCurrencyCode(), 
      'details' => $order->getDetails(), 
     ), 
    )); 
} 

,这是JSON输出从我做过的动作时得到付款完成:

{"status":"pending","order":{"total_amount":1230,"currency_code":"EUR","details":{"amount":123000,"currency":"eur","description":"A description","card":"tok_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","id":"ch_15hxxxxxxxxxxxxxxxxxxxxxx","object":"charge","created":1426756349,"livemode":false,"paid":true,"status":"succeeded","refunded":false,"source":{"id":"card_xxxxxxxxxxxxxxx","object":"card","last4":"5100","brand":"MasterCard","funding":"prepaid","exp_month":10,"exp_year":2022,"fingerprint":"56yrnAJxxxxxx","country":"US","name":null,"address_line1":null,"address_line2":null,"address_city":null,"address_state":null,"address_zip":null,"address_country":null,"cvc_check":"pass","address_line1_check":null,"address_zip_check":null,"dynamic_last4":null,"metadata":[],"customer":null},"captured":true,"balance_transaction":"txn_xxxxxxxIGtQu9Nu5urh","failure_message":null,"failure_code":null,"amount_refunded":0,"customer":null,"invoice":null,"dispute":null,"metadata":[],"statement_descriptor":null,"fraud_details":[],"receipt_email":null,"receipt_number":null,"shipping":null,"refunds":{"object":"list","total_count":0,"has_more":false,"url":"\/v1\/charges\/ch_15xxxxxxxxxUlgFtoii\/refunds","data":[]}}}} 

正如您在事务处理成功时看到的包$ status-> getValue()返回挂起一样。我不知道为什么这个包不会返回成功的值。

难道我错过了最后一步,我应该编码的东西,将更新此状态?我迷路了

回答

1

这是同捆的问题,检查这里修复它: https://github.com/Payum/Payum/pull/331

尝试升级payum/payum

+0

是的,我adelh45上git的枢纽我发现后做了一个拉请求出错了,忘了更新我的stackoverflow问题...谢谢你的答案! – 2015-03-24 14:01:00

相关问题