diff --git a/includes/class-wc-braspag-order-handler.php b/includes/class-wc-braspag-order-handler.php index c31ed14..af483dc 100644 --- a/includes/class-wc-braspag-order-handler.php +++ b/includes/class-wc-braspag-order-handler.php @@ -97,6 +97,7 @@ public function wc_gateway_braspag_pagador_status_update_void($order_id) { $order = wc_get_order( $order_id ); if (!preg_match("#braspag#is", $order->get_payment_method()) + || $order->get_meta( '_braspag_charge_cancelled') === 'yes' || $order->get_meta( '_braspag_charge_refunded') === 'yes') { return $this; @@ -137,7 +138,9 @@ public function wc_gateway_braspag_pagador_status_update_refund($order_id) { $order = wc_get_order( $order_id ); - if (!preg_match("#braspag#is", $order->get_payment_method())) { + if (!preg_match("#braspag#is", $order->get_payment_method()) + || $order->get_meta( '_braspag_charge_cancelled') === 'yes' + || $order->get_meta( '_braspag_charge_refunded') === 'yes') { return $this; } diff --git a/includes/class-wc-braspag-webhook-handler.php b/includes/class-wc-braspag-webhook-handler.php index 6621b1d..83303d1 100644 --- a/includes/class-wc-braspag-webhook-handler.php +++ b/includes/class-wc-braspag-webhook-handler.php @@ -145,14 +145,15 @@ public function process_change_type_status_update_response($response, $order) { switch ( $response->body->Payment->Status) { case '2': #PaymentConfirmed - $order->payment_complete($response->body->Payment->PaymentId); - /* translators: transaction id */ - $message = sprintf( __( 'Post Notification Message: Braspag charge complete (Charge ID: %s)', 'woocommerce-braspag' ), $response->body->Payment->PaymentId); - $order->add_order_note( $message ); + $order->add_meta_data( '_braspag_charge_captured', 'yes', true); + $order->update_status( 'processing', sprintf( __( 'Post Notification Message: Braspag charge Payment Captured (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId)); break; case '1': #Authorized + + $order->add_meta_data( '_braspag_charge_authorized', 'yes', true); + if ( $order->has_status( array( 'pending' ) ) ) { WC_Braspag_Helper::is_wc_lt( '3.0' ) ? $order->reduce_order_stock() : wc_reduce_stock_levels( $order->get_id() ); } @@ -162,12 +163,18 @@ public function process_change_type_status_update_response($response, $order) { break; case '0': #NotFinished + + $order->add_meta_data( '_braspag_charge_failed', 'yes', true); $order->update_status( 'failed', sprintf( __( 'Post Notification Message: Braspag charge Payment Not Finished (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId)); break; case '12': #Pending + + $order->add_meta_data( '_braspag_charge_pending', 'yes', true); $order->update_status( 'pending', sprintf( __( 'Post Notification Message: Braspag charge Payment Pending (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId)); break; case '20': #Scheduled + + $order->add_meta_data( '_braspag_charge_pending', 'yes', true); $order->update_status( 'pending', sprintf( __( 'Post Notification Message: Braspag charge Payment Scheduled (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId)); break; @@ -175,11 +182,15 @@ public function process_change_type_status_update_response($response, $order) { case '10': #Voided case '13': #Aborted #cancel + + $order->add_meta_data( '_braspag_charge_cancelled', 'yes', true); $order->update_status( 'cancelled', sprintf( __( 'Braspag charge payment Cancelled (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId)); break; case '11': #Refunded #refund + + $order->add_meta_data( '_braspag_charge_refunded', 'yes', true); $order->update_status( 'refunded', sprintf( __( 'Braspag charge refunded (Charge ID: %s).', 'woocommerce-braspag' ), $response->body->Payment->PaymentId) ); break; diff --git a/includes/class-wc-gateway-braspag.php b/includes/class-wc-gateway-braspag.php index 0b26d43..2734806 100644 --- a/includes/class-wc-gateway-braspag.php +++ b/includes/class-wc-gateway-braspag.php @@ -373,14 +373,31 @@ public function get_braspag_payment_provider($card_type, $testMode) { */ public function get_customer_identity_data($order) { - if ( '' === $order->get_meta( '_billing_persontype' ) ) { + if ( '' === $order->get_meta( '_billing_persontype' ) + && '' === $order->get_meta( '_billing_cpf' ) + && '' === $order->get_meta( '_billing_cnpj' )) { return ''; } - $customer_identity_type = $order->get_meta('_billing_persontype') == '1' ? 'CPF' : 'CNPJ'; + $customer_identity_type = ''; + $identityValue = ''; + + if ( '' !== $order->get_meta( '_billing_persontype' )) { + $customer_identity_type = $order->get_meta('_billing_persontype') == '1' ? 'CPF' : 'CNPJ'; + $identityValue = preg_replace('/\D+/', '', $customer_identity_type == 'CPF' ? $order->get_meta('_billing_cpf') : $order->get_meta('_billing_cnpj')); + + } elseif ('' !== $order->get_meta( '_billing_cpf' )) { + $customer_identity_type = 'CPF'; + $identityValue = preg_replace('/\D+/', '', $order->get_meta('_billing_cpf')); + + } elseif ('' !== $order->get_meta( '_billing_cnpj' )) { + $customer_identity_type = 'CNPJ'; + $identityValue = preg_replace('/\D+/', '', $order->get_meta('_billing_cnpj')); + } + return [ 'type' => $customer_identity_type, - 'value' => preg_replace('/\D+/', '', $customer_identity_type == 'CPF' ? $order->get_meta('_billing_cpf') : $order->get_meta('_billing_cnpj')) + 'value' => $identityValue ]; } @@ -410,7 +427,7 @@ public function get_braspag_pagador_request_customer_data($order){ return [ "Name" => $order->get_formatted_billing_full_name(), "Email" => $order->get_billing_email(), - "Phone" => preg_replace('/\D+/', '', $order->get_billing_phone()), + "Phone" => $this->get_customer_phone_data($order), "Identity" => preg_replace('/\D+/', '', $customer_identity_data['value']), "IdentityType" => $customer_identity_data['type'], "Address" => [ @@ -420,7 +437,7 @@ public function get_braspag_pagador_request_customer_data($order){ "ZipCode" => $billing_address['postcode'], "City" => $billing_address['city'], "State" => $billing_address['state'], - "Country" => $billing_address['country'] == 'BR' ? 'BRA' : '', + "Country" => $billing_address['country'] == 'BR' ? 'BRA' : $billing_address['country'], "District" => $billing_address['neighborhood'] ], "DeliveryAddress" => [ @@ -430,12 +447,27 @@ public function get_braspag_pagador_request_customer_data($order){ "ZipCode" => $shipping_address['postcode'], "City" => $shipping_address['city'], "State" => $shipping_address['state'], - "Country" => $shipping_address['country'] == 'BR' ? 'BRA' : '', + "Country" => $shipping_address['country'] == 'BR' ? 'BRA' : $shipping_address['country'], "District" => $shipping_address['neighborhood'] ] ]; } + public function get_customer_phone_data($order) { + + $phone_prefix = ''; + + $billing_address = $order->get_address('billing'); + switch ($billing_address['country']) { + case 'BR': + case 'BRA': + $phone_prefix = '55'; + break; + } + + return $phone_prefix.preg_replace('/\D+/', '', $order->get_billing_phone()); + } + /** * @param $payment_method * @param $order diff --git a/includes/payment-methods/class-wc-gateway-braspag-boleto.php b/includes/payment-methods/class-wc-gateway-braspag-boleto.php index 735639e..e595f07 100644 --- a/includes/payment-methods/class-wc-gateway-braspag-boleto.php +++ b/includes/payment-methods/class-wc-gateway-braspag-boleto.php @@ -58,6 +58,8 @@ public function __construct() { add_action( 'wc_gateway_braspag_pagador_boleto_process_payment_after', array( $this, 'save_payment_response_data' ), 10, 3); add_filter( "wc_gateway_braspag_pagador_{$this->id}_request_payment_builder", array( $this, 'braspag_pagador_boleto_payment_request_builder' ), 10, 4); + + add_filter( "wc_gateway_braspag_pagador_request_builder", array( $this, 'braspag_pagador_request_builder_boleto' ), 10, 3); } /** @@ -293,4 +295,271 @@ public function display_order_boleto_data( $order ) { do_action( 'wc_gateway_braspag_pagador_boleto_display_order_data_after', $order ); } + + /** + * @param $request + * @param $order + * @param $default_request_params + * @return mixed + */ + public function braspag_pagador_request_builder_boleto($request, $order, $default_request_params) { + + if (!isset ($request['Payment']) || $request['Payment']['Type'] != 'Boleto') { + return $request; + } + + $fields = []; + + switch ($request['Payment']['Provider']) { + + case 'Bradesco2': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 27, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 11, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 34, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campo Endereço', + 'size_limit' => 70, + 'size' => strlen($request['Customer']['Address']['Street']) + ],[ + 'field' => 'Endereço do cliente - Campo Número', + 'size_limit' => 10, + 'size' => strlen($request['Customer']['Address']['Number']) + ],[ + 'field' => 'Endereço do cliente - Campo Complemento', + 'size_limit' => 20, + 'size' => strlen($request['Customer']['Address']['Complement']) + ],[ + 'field' => 'Endereço do cliente - Campo Bairro', + 'size_limit' => 50, + 'size' => strlen($request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 50, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 450, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 255, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + + break; + + case 'BancoDoBrasil2': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 50, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 9, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 60, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campos Endereço, Número, Complemento e Bairro', + 'size_limit' => 60, + 'size' => strlen($request['Customer']['Address']['Street']. " ".$request['Customer']['Address']['Number']. " ".$request['Customer']['Address']['Complement']. " ".$request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 18, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 450, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 999999999999999, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + + break; + + case 'ItauShopline': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 8, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 8, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 30, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campos Endereço, Número e Complemento', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Address']['Street']. " ".$request['Customer']['Address']['Number']. " ".$request['Customer']['Address']['Complement']) + ],[ + 'field' => 'Endereço do cliente - Campo Bairro', + 'size_limit' => 15, + 'size' => strlen($request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 15, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 999999999999999, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 999999999999999, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + + break; + + case 'Santander2': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 50, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 13, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campos Endereço, Número e Complemento', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Address']['Street']. " ".$request['Customer']['Address']['Number']. " ".$request['Customer']['Address']['Complement']) + ],[ + 'field' => 'Endereço do cliente - Campo Bairro', + 'size_limit' => 15, + 'size' => strlen($request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 30, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 450, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 255, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + break; + + case 'Caixa2': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 11, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 12, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campos Endereço, Número e Complemento', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Address']['Street']. " ".$request['Customer']['Address']['Number']. " ".$request['Customer']['Address']['Complement']) + ],[ + 'field' => 'Endereço do cliente - Campo Bairro', + 'size_limit' => 15, + 'size' => strlen($request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 15, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 450, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 255, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + break; + + case 'Citibank2': + + $fields = [ + [ + 'field' => 'Id do Pedido', + 'size_limit' => 10, + 'size' => strlen($request['MerchantOrderId']) + ],[ + 'field' => 'Número do Boleto', + 'size_limit' => 11, + 'size' => strlen($request['Payment']['BoletoNumber']) + ],[ + 'field' => 'Nome do Cliente', + 'size_limit' => 50, + 'size' => strlen($request['Customer']['Name']) + ],[ + 'field' => 'Endereço do cliente - Campos Endereço, Número e Complemento', + 'size_limit' => 40, + 'size' => strlen($request['Customer']['Address']['Street']. " ".$request['Customer']['Address']['Number']. " ".$request['Customer']['Address']['Complement']) + ],[ + 'field' => 'Endereço do cliente - Campo Bairro', + 'size_limit' => 50, + 'size' => strlen($request['Customer']['Address']['District']) + ],[ + 'field' => 'Endereço do cliente - Campo Cidade', + 'size_limit' => 50, + 'size' => strlen($request['Customer']['Address']['City']) + ],[ + 'field' => 'Instruções do Boleto', + 'size_limit' => 450, + 'size' => strlen($request['Payment']['Instructions']) + ],[ + 'field' => 'Texto de Demonstrativo', + 'size_limit' => 255, + 'size' => strlen($request['Payment']['Demonstrative']) + ], + ]; + break; + } + + foreach ($fields as $field) { + if ($field['size'] > $field['size_limit']) { + throw new \Exception("O número máximo de caracteres permitidos, de {$field['size_limit']} caractere(s), para o item '{$field['field']}' foi ultrapassado."); + } + } + + return $request; + } } diff --git a/includes/payment-methods/class-wc-gateway-braspag-creditcard-justclick.php b/includes/payment-methods/class-wc-gateway-braspag-creditcard-justclick.php index 91c1fb6..87b5134 100644 --- a/includes/payment-methods/class-wc-gateway-braspag-creditcard-justclick.php +++ b/includes/payment-methods/class-wc-gateway-braspag-creditcard-justclick.php @@ -264,7 +264,7 @@ public function braspag_pagador_creditcard_justclick_payment_request_builder($pa "Provider" => $provider, "Type" => "CreditCard", "Amount" => intval($order->get_total() * 100), - "Currency" => "BRL", + "Currency" => $order->currency, "Country" => "BRA", "Installments" => $checkout->get_value('braspag_creditcard-card-installments'), "Interest" => "ByMerchant", diff --git a/includes/payment-methods/class-wc-gateway-braspag-creditcard.php b/includes/payment-methods/class-wc-gateway-braspag-creditcard.php index c8be855..3843603 100644 --- a/includes/payment-methods/class-wc-gateway-braspag-creditcard.php +++ b/includes/payment-methods/class-wc-gateway-braspag-creditcard.php @@ -593,12 +593,15 @@ public function braspag_pagador_creditcard_payment_request_builder($payment_data $provider = $this ->get_braspag_payment_provider($checkout->get_value('braspag_creditcard-card-type'), $this->test_mode); + $billing_address = $order->get_address('billing'); + $country = isset($billing_address['country']) ? $billing_address['country'] == 'BR' ? 'BRA' : $billing_address['country'] : ''; + $payment_data = array_merge($payment_data, [ "Provider" => $provider, "Type" => "CreditCard", "Amount" => intval($order->get_total() * 100), - "Currency" => "BRL", - "Country" => "BRA", + "Currency" => $order->currency, + "Country" => $country, "Installments" => $checkout->get_value('braspag_creditcard-card-installments'), "Interest" => "ByMerchant", "Capture" => $this->capture, @@ -674,7 +677,7 @@ public function braspag_antifraud_request_builder($cart, $order, $braspag_pagado "UnitPrice" => intval($cart_content['data']->get_price() * 100), "MerchantItemId" => $cart_content['data']->get_id(), "Sku" => $cart_content['data']->get_sku(), - "Quantity" => $cart_content->quantity + "Quantity" => $cart_content['quantity'] ]; } @@ -699,7 +702,7 @@ public function braspag_antifraud_request_builder($cart, $order, $braspag_pagado "Neighborhood" => $billing_address['neighborhood'], "City" => $billing_address['city'], "State" => $billing_address['state'], - "Country" => $billing_address['country'], + "Country" => $billing_address['country'] == 'BR' ? 'BRA' : $billing_address['country'], "ZipCode" => $billing_address['postcode'] ], "Shipping" => [ @@ -709,12 +712,12 @@ public function braspag_antifraud_request_builder($cart, $order, $braspag_pagado "Neighborhood" => $shipping_address['neighborhood'], "City" => $shipping_address['city'], "State" => $shipping_address['state'], - "Country" => $shipping_address['country'], + "Country" => $shipping_address['country'] == 'BR' ? 'BRA' : $shipping_address['country'], "ZipCode" => $shipping_address['postcode'], "FirstName" => $order->get_shipping_first_name(), "LastName" => $order->get_shipping_last_name(), "ShippingMethod" => $order->get_payment_method(), - "Phone" => preg_replace('/\D+/', '', $order->get_billing_phone()) + "Phone" => $this->get_customer_phone_data($order) ], "Customer" => [ "MerchantCustomerId" => $this->get_logged_in_customer_id(), @@ -797,7 +800,7 @@ public function braspag_pagador_creditcard_payment_request_antifraud_builder($pa "ObscenitiesHedge" => "Off", "PhoneHedge" => "Off", "Name" => $cart_content['data']->get_name(), - "Quantity" => $cart_content->quantity, + "Quantity" => $cart_content['quantity'], "Sku" => $cart_content['data']->get_sku(), "UnitPrice" => intval($cart_content['data']->get_price() * 100), ]; @@ -861,7 +864,7 @@ public function braspag_pagador_creditcard_payment_request_antifraud_builder($pa "Shipping" => [ "Addressee" => $order->get_formatted_billing_full_name(), "Method" => "LowCost", - "Phone" => preg_replace('/\D+/', '', $order->get_billing_phone()) + "Phone" => $this->get_customer_phone_data($order) ] ]; @@ -917,14 +920,6 @@ public function braspag_pagador_creditcard_payment_request_auth3ds20_builder($pa public function get_creditcard_payment_types_options() { return [ - 'Cielo-Visa' => 'Cielo Visa', - 'Cielo-Master' => 'Cielo Master', - 'Cielo-Amex' => 'Cielo Amex', - 'Cielo-Elo' => 'Cielo Elo', - 'Cielo-Aura' => 'Cielo Aura', - 'Cielo-Jcb' => 'Cielo Jcb', - 'Cielo-Diners' => 'Cielo Diners', - 'Cielo-Discover' => 'Cielo Discover', 'Cielo30-Visa' => 'Cielo 3.0 Visa', 'Cielo30-Master' => 'Cielo 3.0 Master', 'Cielo30-Amex' => 'Cielo 3.0 Amex', @@ -935,31 +930,49 @@ public function get_creditcard_payment_types_options() { 'Cielo30-Discover' => 'Cielo 3.0 Discover', 'Cielo30-Hipercard' => 'Cielo 3.0 Hipercard', 'Cielo30-Hiper' => 'Cielo 3.0 Hiper', - 'Redecard-Visa' => 'Redecard Visa', - 'Redecard-Master' => 'Redecard Master', - 'Redecard-Hipercard' => 'Redecard Hipercard', - 'Redecard-Hiper' => 'Redecard Hiper', - 'Redecard-Diners' => 'Redecard Diners', - 'Rede2-Visa' => 'Rede2-Visa', - 'Rede2-Master' => 'Rede2-Master', - 'Rede2-Hipercard' => 'Rede2-Hipercard', - 'Rede2-Hiper' => 'Rede2-Hiper', - 'Rede2-Diners' => 'Rede2-Diners', - 'Rede2-Elo' => 'Rede2-Elo', - 'Rede2-Amex' => 'Rede2-Amex', + 'Cielo30-Sorocred' => 'Cielo 3.0 Sorocred', + 'Getnet-Visa' => 'Getnet-Visa', 'Getnet-Master' => 'Getnet-Master', 'Getnet-Elo' => 'Getnet-Elo', 'Getnet-Amex' => 'Getnet-Amex', + 'Getnet-Hipercard' => 'Getnet-Hipercard', + + 'Rede2-Visa' => 'Rede 2 Visa', + 'Rede2-Master' => 'Rede 2 Master', + 'Rede2-Hipercard' => 'Rede 2 Hipercard', + 'Rede2-Hiper' => 'Rede 2 Hiper', + 'Rede2-Diners' => 'Rede 2 Diners', + 'Rede2-Elo' => 'Rede 2 Elo', + 'Rede2-Amex' => 'Rede 2 Amex', + 'Rede2-Sorocred' => 'Rede 2 Sorocred', + 'GlobalPayments-Visa' => 'GlobalPayments Visa', 'GlobalPayments-Master' => 'GlobalPayments Master', + 'GlobalPayments-Elo' => 'GlobalPayments Elo', + 'GlobalPayments-Hiper' => 'GlobalPayments Hiper', + 'GlobalPayments-Hipercard' => 'GlobalPayments Hipercard', + 'GlobalPayments-Cabal' => 'GlobalPayments Cabal', + 'GlobalPayments-Amex' => 'GlobalPayments Amex', + 'Stone-Visa' => 'Stone Visa', 'Stone-Master' => 'Stone Master', 'Stone-Hipercard' => 'Stone Hipercard', 'Stone-Elo' => 'Stone Elo', + + 'Safra2-Visa' => 'Safra 2 Visa', + 'Safra2-Master' => 'Safra 2 Master', + 'Safra2-Hipercard' => 'Safra 2 Hipercard', + 'Safra2-Elo' => 'Safra 2 Elo', + 'Safra2-Amex' => 'Safra 2 Amex', + 'FirstData-Visa' => 'FirstData Visa', 'FirstData-Master' => 'FirstData Master', + 'FirstData-Elo' => 'FirstData Elo', + 'FirstData-Hipercard' => 'FirstData Hipercard', 'FirstData-Cabal' => 'FirstData Cabal', + 'FirstData-Amex' => 'FirstData Amex', + 'Sub1-Visa' => 'Sub1 Visa', 'Sub1-Master' => 'Sub1 Master', 'Sub1-Diners' => 'Sub1 Diners', @@ -967,32 +980,30 @@ public function get_creditcard_payment_types_options() { 'Sub1-Discover' => 'Sub1 Discover', 'Sub1-Cabal' => 'Sub1 Cabal', 'Sub1-Naranja e Nevada' => 'Sub1 Naranja e Nevada', + 'Banorte-Visa' => 'Banorte Visa', 'Banorte-Master' => 'Banorte Master', 'Banorte-Carnet' => 'Banorte Carnet', + 'Credibanco-Visa' => 'Credibanco Visa', 'Credibanco-Master' => 'Credibanco Master', 'Credibanco-Diners' => 'Credibanco Diners', 'Credibanco-Amex' => 'Credibanco Amex', 'Credibanco-Credential' => 'Credibanco Credential', - 'Transbank-Visa' => 'Transbank Visa', - 'Transbank-Master' => 'Transbank Master', - 'Transbank-Diners' => 'Transbank Diners', - 'Transbank-Amex' => 'Transbank Amex', - 'RedeSitef-Visa' => 'Rede Sitef Visa', - 'RedeSitef-Master' => 'Rede Sitef Master', - 'RedeSitef-Hipercard' => 'Rede Sitef Hipercard', - 'RedeSitef-Diners' => 'Rede Sitef Diners', - 'CieloSitef-Visa' => 'Cielo Sitef Visa', - 'CieloSitef-Master' => 'Cielo Sitef Master', - 'CieloSitef-Amex' => 'Cielo Sitef Amex', - 'CieloSitef-Elo' => 'Cielo Sitef Elo', - 'CieloSitef-Aura' => 'Cielo Sitef Aura', - 'CieloSitef-Jcb' => 'Cielo Sitef Jcb', - 'CieloSitef-Diners' => 'Cielo Sitef Diners', - 'CieloSitef-Discover' => 'Cielo Sitef Discover', - 'SantanderSitef-Visa' => 'Santander Sitef Visa', - 'SantanderSitef-Master' => 'Santander Sitef Master', + + 'Transbank2-Visa' => 'Transbank 2 Visa', + 'Transbank2-Master' => 'Transbank 2 Master', + 'Transbank2-Diners' => 'Transbank 2 Diners', + 'Transbank2-Amex' => 'Transbank 2 Amex', + + 'Banese-Banese' => 'Banese', + + 'BrasilCard-BrasilCard' => 'BrasilCard', + + 'Credz-Credz' => 'Credz', + + 'DMCard-' => 'DMCard', + 'Simulado-Simulado' => 'Simulado', ]; } diff --git a/includes/payment-methods/class-wc-gateway-braspag-debitcard.php b/includes/payment-methods/class-wc-gateway-braspag-debitcard.php index 9b49669..1f1bf2b 100644 --- a/includes/payment-methods/class-wc-gateway-braspag-debitcard.php +++ b/includes/payment-methods/class-wc-gateway-braspag-debitcard.php @@ -462,7 +462,7 @@ public function braspag_pagador_debitcard_payment_request_builder($payment_data, "Provider" => $provider, "Type" => "DebitCard", "Amount" => intval($order->get_total() * 100), - "Currency" => "BRL", + "Currency" => $order->currency, "Country" => "BRA", "Installments" => '1', "Interest" => "ByMerchant", @@ -519,14 +519,25 @@ public function get_debitcard_payment_types_options(){ return [ 'Cielo-Visa' => 'Cielo Visa', 'Cielo-Master' => 'Cielo Master', + 'Cielo30-Visa' => 'Cielo 3.0 Visa', 'Cielo30-Master' => 'Cielo 3.0 Master', + 'Getnet-Visa' => 'Getnet Visa', 'Getnet-Master' => 'Getnet Master', + + 'Rede2-Visa' => 'Rede 2 Visa', + 'Rede2-Master' => 'Rede 2 Master', + + 'Safra2-Visa' => 'Safra 2 Visa', + 'Safra2-Master' => 'Safra 2 Master', + 'FirstData-Visa' => 'FirstData Visa', 'FirstData-Master' => 'FirstData Master', + 'GlobalPayments-Visa' => 'GlobalPayments Visa', 'GlobalPayments-Master' => 'GlobalPayments Master', + 'Simulado-Simulado' => 'Simulado', ]; } diff --git a/wc-gateway-braspag.php b/wc-gateway-braspag.php index 5baebcf..df8df9f 100644 --- a/wc-gateway-braspag.php +++ b/wc-gateway-braspag.php @@ -5,7 +5,7 @@ * Description: Take payments on your store using Braspag. * Author: Braspag * Author URI: https://braspag.com.br/ - * Version: 2.2.26 + * Version: 2.2.29 * Requires at least: 5.3.2 * Tested up to: 5.4 * WC requires at least: 4.0.0 @@ -45,7 +45,7 @@ function woocommerce_gateway_braspag_init() { /** * Required minimums and constants */ - define( 'WC_BRASPAG_VERSION', '2.2.26' ); + define( 'WC_BRASPAG_VERSION', '2.2.29' ); define( 'WC_BRASPAG_MIN_PHP_VER', '5.6.0' ); define( 'WC_BRASPAG_MIN_WC_VER', '2.6.0' ); define( 'WC_BRASPAG_MAIN_FILE', __FILE__ );