Пример #1
0
 public function createOrderBasico($id)
 {
     $pedido = Pedido::findOrFail($id);
     $cliente = Auth::user();
     if ($pedido->usuario->id != $cliente->id) {
         return false;
     }
     $valor_centavos = $pedido->total * 100;
     $input = Input::all();
     if ($input['parcelas'] < 1 || $input['parcelas'] > 6) {
         return false;
     }
     $client = new SoapClient('https://transaction.mundipaggone.com/MundiPaggService.svc?wsdl', array('trace' => true, 'exceptions' => true, 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, 'encoding' => 'UTF-8'));
     $createOrderRequest = new stdClass();
     $createOrderRequest->createOrderRequest = new stdClass();
     //$createOrderRequest->createOrderRequest->AmountInCents = 105172;
     $createOrderRequest->createOrderRequest->AmountInCents = $valor_centavos;
     $createOrderRequest->createOrderRequest->CurrencyIsoEnum = 'BRL';
     $createOrderRequest->createOrderRequest->MerchantKey = self::MerchantKey;
     $createOrderRequest->createOrderRequest->OrderReference = $pedido->id;
     $createOrderRequest->createOrderRequest->Buyer = new stdClass();
     $createOrderRequest->createOrderRequest->Buyer->Email = $cliente->email;
     $createOrderRequest->createOrderRequest->Buyer->HomePhone = '(11) 12345678';
     $createOrderRequest->createOrderRequest->Buyer->Name = $cliente->nome;
     $createOrderRequest->createOrderRequest->Buyer->PersonTypeEnum = 'Person';
     $createOrderRequest->createOrderRequest->Buyer->TaxDocumentNumber = $cliente->cpf;
     $createOrderRequest->createOrderRequest->Buyer->TaxDocumentTypeEnum = 'CPF';
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection = [];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0] = new stdClass();
     //$createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->AmountInCents = 105172;
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->AmountInCents = $valor_centavos;
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->CaptureDelayInMinutes = 0;
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->CreditCardBrandEnum = $input['cartao_marca'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->CreditCardNumber = $input['cartao_num'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->ExpMonth = $input['mes_exp'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->ExpYear = $input['ano_exp'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->HolderName = $input['nome_titular'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->InstallmentCount = $input['parcelas'];
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->PaymentMethodCode = 1;
     $createOrderRequest->createOrderRequest->CreditCardTransactionCollection[0]->SecurityCode = $input['cod_seguranca'];
     try {
         $auth = $client->CreateOrder($createOrderRequest);
         $result = $auth->CreateOrderResult;
         $cctResult = $result->CreditCardTransactionResultCollection->CreditCardTransactionResult;
         printf("Exemplo de integração Mundipagg com PHP - CreateOrder\n\n");
         printf("\t[%s -> %s] %s\n\n", $result->OrderStatusEnum, $cctResult->CreditCardTransactionStatusEnum, $cctResult->AcquirerMessage);
     } catch (SoapFault $e) {
         printf("Erro[%s]: %s\n%s\n\n", $e->getCode(), $e->getMessage(), $e->getTraceAsString());
     }
 }
Пример #2
0
 public function postSendOrder()
 {
     $pedido = Pedido::findOrFail(Input::get('pedido_id'));
     $input = Input::all();
     $mundipagg = new Mundipagg();
     $response = $mundipagg->createOrder($input, $pedido);
     if (isset($input['cpftitular']) && !empty($input['cpftitular'])) {
         $pedido->titular_cpf = $input['cpftitular'];
         $pedido->save();
     } elseif (isset($input['passaportetitular']) && !empty($input['passaportetitular'])) {
         $pedido->titular_passaporte = $input['passaportetitular'];
         $pedido->save();
     }
     if ($response->Success) {
         $pedido->pedido_status_id = 25;
         $pedido->num_parcelas = isset($input['parcelas']) ? $input['parcelas'] : 1;
         $pedido->OrderKey = $response->OrderKey;
         $pedido->OrderStatusEnum = $response->OrderStatusEnum;
         $pedido->save();
         return Redirect::to('cliente/pedido')->with('success', [trans('checkout.sucesso')]);
     } else {
         $erros = [];
         $erros[0] = trans('checkout.erro');
         if (isset($response->ErrorReport) && $response->ErrorReport && isset($response->ErrorReport->ErrorItemCollection) && count($response->ErrorReport->ErrorItemCollection) > 0) {
             foreach ($response->ErrorReport->ErrorItemCollection as $error) {
                 if (isset($error->Description) && !empty($error->Description)) {
                     $erros[] = $error->Description;
                 }
             }
             // echo '<hr>';
             // echo var_dump($response->ErrorReport->ErrorItemCollection);
         }
         return Redirect::back()->with('danger', $erros);
     }
     // echo '<pre>';
     // echo var_dump($response);
     // echo var_dump($response->ErrorReport);
     // echo '</pre>';
 }