2017-06-09 11 views
0

私はsofort統合による成功払いの後に返答を取り戻そうとしていますが、応答が得られません。ソフォート:成功した支払い後に返信を受け取ります

public function successAction() 
{ 

    $configkey = 'my_key'; 

    $SofortLib_Notification = new Notification(); 

    $TestNotification = $SofortLib_Notification->getNotification(file_get_contents('php://input')); 

    echo $SofortLib_Notification->getTransactionId(); 
    echo '<br />'; 
    echo $SofortLib_Notification->getTime(); 
    echo '<br />'; 

    $SofortLibTransactionData = new TransactionData($configkey); 

    $SofortLibTransactionData->addTransaction($TestNotification); 

    $SofortLibTransactionData->setApiVersion('2.0'); 

    $SofortLibTransactionData->setTime('2012-11-14T18:00+02:00', '2012-12-13T00:00+02:00'); 
    $SofortLibTransactionData->setNumber(5, 1); 

    $SofortLibTransactionData->sendRequest(); 

    echo '<pre>'; print_r($SofortLibTransactionData); 
    //exit(); 
    $output = array(); 
    $methods = array(
     'getAmount' => '', 
     'getAmountRefunded' => '', 
     'getCount' => '', 
     'getPaymentMethod' => '', 
     'getConsumerProtection' => '', 
     'getStatus' => '', 
     'getStatusReason' => '', 
     'getStatusModifiedTime' => '', 
     'getLanguageCode' => '', 
     'getCurrency' => '', 
     'getTransaction' => '', 
     'getSenderAccountNumber' => '', 
     'getSenderBankCode' => '', 
     'getSenderCountryCode' => '', 
     'getSenderBankName' => '', 
     'getSenderBic' => '', 
     'getSenderIban' => '', 
     ); 

    foreach($methods as $method => $params) { 
     if(count($params) == 2) { 
      $output[] = $method . ': ' . $SofortLibTransactionData->$method($params[0], $params[1]); 
     } else if($params !== '') { 
      $output[] = $method . ': ' . $SofortLibTransactionData->$method($params); 
     } else { 
      $output[] = $method . ': ' . $SofortLibTransactionData->$method(); 
     } 
    } 

    if($SofortLibTransactionData->isError()) { 
     echo $SofortLibTransactionData->getError(); 
    } else { 
     echo implode('<br />', $output); 
    } 

    // $sofortTans = new TransactionData; 
    // echo '<pre>';print_r($sofortTans); 
    // $viewModel = new ViewModel(array('status' => $sofortTans)); 
    // $viewModel->setTemplate('layout/pay_done'); 

    // return $viewModel; 
} 

そして、ここで私は戻って回答を得ることができますどのようにあなたが私を導いてくださいすることができ、要求を送信するために私contrllerで対処方法:ここで

Error: Error: 7000:Invalid XML. 

は成功機能ですか?

$configkey = 'my_config_key'; 

$Sofortueberweisung = new SofortUeberWeisung($configkey); 

$Sofortueberweisung->setAmount($request->getPost('grandtotal_price')); 
$Sofortueberweisung->setCurrencyCode('EUR'); 
$Sofortueberweisung->setReason('Single Coupon Order', 'Voucher Codes'); 
$Sofortueberweisung->setSuccessUrl('http://localhost:8088/payment/success', false); 
$Sofortueberweisung->setCustomerprotection(true); 

$Sofortueberweisung->sendRequest(); 

if($Sofortueberweisung->isError()) { 
// SOFORT-API didn't accept the data 

    echo $Sofortueberweisung->getError(); 
} else { 

// get unique transaction-ID useful for check payment status 
    $transactionId = $Sofortueberweisung->getTransactionId(); 
// buyer must be redirected to $paymentUrl else payment cannot be successfully completed! 
    $paymentUrl = $Sofortueberweisung->getPaymentUrl(); 
    $this->redirect()->toUrl($paymentUrl); 
//header('Location: '.$paymentUrl); 
} 

そして、私はこのAPIライブラリを使用しています、Sofort API Library

答えて

0

あなたsuccess_urlとパラメータ?transId=-TRANSACTION-を追加すると、応答からそれを取得することができますよりも!

$transNumber = $this->getRequest()->getQuery('transId'); 
$fields = $sofortObj->getTransactionData($transNumber); 

あなたは$fields

にあなたとすべてのトランザクションデータをしました
関連する問題