claudiosanches / woocommerce-mundipagg

WooCommerce MundiPagg - WordPress Plugin
https://wordpress.org/plugins/woocommerce-mundipagg/
8 stars 4 forks source link

Erro de Integração no Nome do Produto #4

Open fabiofeichtinger opened 8 years ago

fabiofeichtinger commented 8 years ago

Boa tarde Cláudio,

Tive um problema recente com a criação da Order através da integração do plugin devido a um erro de carácter UTF-8 inválido no nome do produto. Segue abaixo os detalhes:

Log de Requisição com a parte do ShoppingCartItem: [0] => Array ( [ItemReference] => 10010 [Description] => Os geradores de vapor para sauna úmida Impercap são desenvolvidos em aço inox, tanto interna quanto externamente. São compactos apenas... [Name] => Sauna à Vapor Elétrica MT 14 Master Inox com Quadro de Comando Digital 14Kw IMPERCAP - Para à [Quantity] => 1 [TotalCostInCents] => 229408 [UnitCostInCents] => 229408 )

Log de Resposta MundiPagg: 07-15-2016 @ 14:46:45 - Error while generate the payment for order #6858, MundiPagg response: SOAP-ERROR: Encoding: string 'Sauna à Vapor Elétrica MT 14 Master Inox com Quadro de Comando Digital 14Kw IMPERCAP - Para \xc3...' is not a valid utf-8 string

Linha e arquivo que trata a string com o nome:

class-wc-mundipagg-api.php Line: 349
$item['Name']             = substr( $item_name, 0, 95 );

Nome do Produto dentro do Woocommerce: Sauna à Vapor Elétrica MT 14 Master Inox com Quadro de Comando Digital 14Kw IMPERCAP - Para áreas com até 21m³

Versão do Woocommerce: 2.2.10

Versão do Plugin MundiPagg: 2.0.0

Acredito que o problema pode ocorrer em versões posteriores do plugin também, pois a tratativa do nome continua a mesma.

fabiofeichtinger commented 8 years ago

Cláudio, talvez a alteração abaixo possa resolver na linha que trata o nome do item: $item['Name'] = mb_substr( $item_name, 0, 95, 'utf8' );

fabiofeichtinger commented 8 years ago

De fato resolveu!

Teríamos que usar a função multibyte para encurtar caracteres que são utf-8

claudiosanches commented 8 years ago

@fpsman já atualizo isso logo. Obrigado.