Exemplo n.º 1
0
 function start($iAccountId)
 {
     $this->checkTrialAllowed(array('type' => 'id', 'value' => $iAccountId));
     $oBADetails = new BillingAgreementDetailsType();
     $oBADetails->BillingType = 'RecurringPayments';
     $oBADetails->BillingAgreementDescription = $this->sDescription;
     $oBAReqDetails = new SetCustomerBillingAgreementRequestDetailsType();
     $oBAReqDetails->BillingAgreementDetails = $oBADetails;
     $oBAReqDetails->ReturnURL = $this->sUrlReturn;
     $oBAReqDetails->CancelURL = $this->sUrlCancel;
     $oBARequest = new SetCustomerBillingAgreementRequestType();
     $oBARequest->SetCustomerBillingAgreementRequestDetails = $oBAReqDetails;
     $oBAReq = new SetCustomerBillingAgreementReq();
     $oBAReq->SetCustomerBillingAgreementRequest = $oBARequest;
     $oPaypalService = new PayPalAPIInterfaceServiceService();
     try {
         $oBAResponse = $oPaypalService->SetCustomerBillingAgreement($oBAReq);
     } catch (Exception $oException) {
         $this->_logException($oException);
         exit;
     }
     if (!isset($oBAResponse)) {
         $sLog = "---\n";
         $sLog .= "--- Get Token: {date}\n";
         $sLog .= "--- Request: " . $oPaypalService->getLastRequest() . "\n";
         $sLog .= "--- Response: " . $oPaypalService->getLastResponse() . "\n";
         $sLog .= "---\n";
         $this->_logError($sLog);
         return;
     }
     $sLog = "---\n";
     $sLog .= "--- Get Token: {date}\n";
     $sLog .= "--- Status: " . $oBAResponse->Ack . "\n";
     $sLog .= "--- Token: " . $oBAResponse->Token;
     $this->_logNote($sLog);
     $this->_logNote($oBAResponse);
     $this->_logNote("---\n");
     if ($oBAResponse->Ack == 'Success') {
         $sToken = $oBAResponse->Token;
         $oAccount = $this->_oModule->getObject('Account');
         $oAccount->onTokenReceived($sToken, $iAccountId);
         $sUrl = $this->bDemo ? 'https://www.sandbox.paypal.com/' : 'https://www.paypal.com/';
         return $sUrl . 'webscr?cmd=_customer-billing-agreement&token=' . $sToken;
     }
 }