我完成了aciton,不知道如何获得paymentDetails对象...
这是手册:http: //payum.forma-dev.com/documentation/0.8/PayumBundle/purchase_done_action
我尝试从http://payum.forma-dev.com/documentation/0.8/PayumBundle/simple_purchase_examples/paypal_express_checkout之前的步骤获取对象PaymentDetails
UPDATE1
public function doneAction(){
$request = $this->getRequest();
/**
* @var $token PayumSecurityToken
*/
$token = $this->get('payum.security.http_request_verifier')->verify($request);
/**
* @var $details PaymentDetails
*/
$details = $token->getDetails();
var_dump($details);
Run Code Online (Sandbox Code Playgroud)
给
object(Payum\Core\Model\Identificator)[345]
protected 'class' => string 'ed\partnerBundle\Entity\PaymentDetails' (length=38)
protected 'id' => int 1
Run Code Online (Sandbox Code Playgroud)
UPDATE2
$details = unserialize($token->getDetails());
ContextErrorException: Notice: unserialize(): Error at offset 0 of 40 bytes in /home/grek/public_html/edpartner/src/ed/partnerBundle/Controller/PaymentController.php line 110
Run Code Online (Sandbox Code Playgroud)
Payum\Core\Model\Identificator是预期的结果.有两种获取细节的方法:
使用存储:
<?php
$registry = $this->get('payum');
$storage = $registry->getStorageForClass(
$token->getDetails()->getClass(),
$token->getPaymentName()
);
$details = $storage->findModelByIdentificator($token->getDetails());
Run Code Online (Sandbox Code Playgroud)执行请求.这里StorageExtension将它设置为请求.
<?php
$status = new BinaryMaskStatusRequest($token);
$this->get('payum')->getPayment($token->getPaymentName())->execute($status);
$details = $status->getModel();
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |