2017-05-09 71 views
0

我使用信用卡已经设置了payum Paypal Rest. Credit card purchase到我的支付laravel应用,可谓万事俱备,但它给了我的异常,如:Laravel payum和PayPal休息

的模型Payum \宝\休息\存储Model \ PaymentDetails不是 注册。有以下型号的存储: Payum \ Core \ Model \ Payment,Payum \ Core \ Model \ ArrayObject, Payum \ Core \ Model \ Payout。

AppServiceProvider.php

//For payment gateway... 
$this->app->resolving('payum.builder', function(\Payum\Core\PayumBuilder $payumBuilder) { 
    $payumBuilder 
    // this method registers filesystem storages, consider to change them to something more 
    // sophisticated, like eloquent storage 
    ->addDefaultStorages() 
    //->getPayum(); 
    ->addGateway('paypal_ec', [ 
     'factory' => 'paypal_express_checkout', 
     'username' => config('payment.paypalusername'), 
     'password' => config('payment.paypalpassword'), 
     'signature' => config('payment.paypalsignature'), 
     'sandbox' => true 
    ]) 
    ->addGateway('paypalRest', [ 
     'factory' => 'paypal_rest', 
     'client_id' => config('payment.paypalclientid'), 
     'client_secret' => config('payment.paypalsecret'), 
     'config_path' => '%kernel.root_dir%/config/sdk_config.ini' 
    ]);     
}); 

prepare.php

$storage = $this->getPayum()->getStorage('Payum\Paypal\Rest\Model\PaymentDetails'); 
$payment = $storage->create(); 
. 
. 
. 

,我需要为模型Payum\Paypal\Rest\Model\PaymentDetails注册存储?

回答

0

Payum Paypal其余的扩展uses a model从官方贝宝的SDK库。有默认情况下没有储存它,你提供一个:

<?php 

/** @var \Payum\Core\Storage\StorageInterface $storage */ 
$storage; 

$payumBuilder->addStorage('Payum\Paypal\Rest\Model\PaymentDetails', $storage); 

什么,你也可以做的是创建一个支持从Payum核心,在行动阵列和ArrayObject的模型自己捕捉的动作,你会得到数据从数组中将其设置为Paypal Rest模型,并使用它进行子请求。然后将数据从模型返回到数组。

我必须承认,这个扩展是很早以前创建的,作为概念证明,并且很长一段时间没有更新。例如,最好使用基本模型(来自Payum核心)。