pagseguro / pagseguro-sdk-plugpagservicewrapper

Biblioteca para integrar aplicativos Android com o terminal Moderninha Smart.
https://pagseguro.github.io/pagseguro-sdk-plugpagservicewrapper/
30 stars 7 forks source link

Erro de Sintaxe Xamarin.Android #16

Open brdacon1 opened 1 year ago

brdacon1 commented 1 year ago

Olá estou iniciando a integração de um projeto usando o SDK de vocês usando o .aar para Xamarin.Android e estou obtendo erro na compilação.

Quando tendo construir o projeto obtenho os erros abaixo:

Erro 1: "PlugPagCustomPrinterLayout.Creator" não implementa membro de interface "IParcelableCreator.CreateFromParcel(Parcel?)". "PlugPagCustomPrinterLayout.Creator.CreateFromParcel(Parcel)" não pode implementar "IParcelableCreator.CreateFromParcel(Parcel?)" porqu não tem o tipo de retorno correspondente de "Object". LibraryPagBank C:\Users\david\Source\Repos\WaiterOrdering_Core\LibraryPagBank\obj\Debug\generated\src\BR.Com.Uol.Pagseguro.Plugpagservice.Wrapper.PlugPagCustomPrinterLayout.cs

A solução é image

Erro 2:

Tipo "ErrorEventArgs" já define um membro chamado "ErrorEventArgs" com os mesmos tipos de parâmetro LibraryPagBank C:\Users\david\Source\Repos\WaiterOrdering_Core\LibraryPagBank\obj\Debug\generated\src\BR.Com.Uol.Pagseguro.Plugpagservice.Wrapper.Listeners.IPlugPagAPDUCmdExchangeListener.cs

Vários arquivos que contém essas chamadas estão apontando os erros acima.

metazul commented 1 year ago

Oi David, estou iniciando integração com Xamarin Android e me deparei com o mesmo problema que você. Conseguiu algum progresso?

brdacon1 commented 1 year ago

Olá Metazul, tudo bem? Cara eu acabei abrindo mão de integrar com SDK deles. Aparentemente o problema é que eles usam uma sintaxe não permitida pelo Visual Studio e tem relação com outros nomes e por isso no Visual Studio da erro. Eu acabei indo para a Stone e Getnet.

metazul commented 1 year ago

Entendi. Nós atualmente estamos integrados com Cielo e Rede. Podemos trocar experiências depois sobre estas integrações. Aliás, seria bom se tivesse uma comunidade para desenvolvedores para maquininhas que usam Xamarin Android. Quem sabe não aparece alguém que já integrou com a PagSeguro, mas não com estas outras que integramos e também queira trocar figurinhas.

NicFT commented 1 year ago

Opa, eu uso a integração deles ja faz uns 3 anos com o Visual Studio Xamarin, funciona certinho, esse erro ai que você ta tendo é só ajustar o arquivo dentro do projeto Wrapper "Metadata.xml"

<attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagCustomPrinterLayout.Creator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>

coloca a linha acima veja se para o erro só replicar pros demais que aparecer

brdacon1 commented 1 year ago

Nicolas, esse metadata.xml é incluído no projeto? Poderia mandar um print de onde o arquivo está na pasta?

NicFT commented 1 year ago

Tu tem que criar um projeto WRAPPER esse Wrapper fica associado ao jar da pagseguro, e o teu projeto xamarin vai ficar associado ao projeto Wrapper, No Wrapper tu vai corrigir esses erros ai q mencionou usando o arquivo metadata.xml, na mensagem de erro ele ja diz ali como resolver na verdade

brdacon1 commented 1 year ago

Achei Aqui!

brdacon1 commented 1 year ago

Vc usou apenas o .aar na integração? nas integrações eu apenas inserir o arquivo .aar para o pagseguro é apenas necessário o .aar?

NicFT commented 1 year ago

Sim só o AAR falei errado o JAR ali, segue o metada.xml que funciona para min, deve funcionar para ti

`

Tes Tess Tesss Tessss PlugPagLastTransactiListeneronErrorEventArgs PlugPagInstallmentsListeneronErrorEventArgs PlugPagActivationListeneronErrorEventArgs PlugPagActivationListeneronSuccessEventArgs PlugPagAbortListeneronErrorEventArgs PlugPagIsActivatedListeneronErrorEventArgs PlugPagNFCListeneronErrorEventArgs PlugPagNFCListeneronSuccessEventArgs PlugPagPaymentListeneronErrorEventArgs PlugPagPaymentListeneronSuccessEventArgs Object[] Object[] Object[] Object[] Java.Lang.Object Java.Lang.Object Java.Lang.Object Java.Lang.Object Java.Lang.Object Java.Lang.Object[] Java.Lang.Object[] Java.Lang.Object[] Java.Lang.Object[] Java.Lang.Object[]

`

brdacon1 commented 1 year ago

Deu certo!

metazul commented 1 year ago

Obrigado Nicolas. Qual versão do wrapper-release.aar vocês estão usando? Usei a versão 1.25.0 e por outros erros tive que adicionar mais algumas linhas no metadata.xml. Se precisarem de alguma ajuda futura para integrar com maquininhas da Cielo e Rede, me avisem. Podemos montar um grupo no WhatsApp para isto, afinal não são muitos desenvolvedores que integram com maquininhas usando o Xamarin Android. Segue as linhas que adicionei no metadata.xml: ` PlugPagSetStylesListeneronErrorEventArgs

Java.Lang.Object
<attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPagBankActivationResult.Creator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>
<attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPreAutoQueryResult.Creator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr>
<attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPreAutoQueryResult.Creator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>

`

brdacon1 commented 1 year ago

Metazul eu estou usando a versão 1.9 a ultima que eles disponibilizaram com a versão de compilação do android 9

NicFT commented 1 year ago

Obrigado Nicolas. Qual versão do wrapper-release.aar vocês estão usando? Usei a versão 1.25.0 e por outros erros tive que adicionar mais algumas linhas no metadata.xml. Se precisarem de alguma ajuda futura para integrar com maquininhas da Cielo e Rede, me avisem. Podemos montar um grupo no WhatsApp para isto, afinal não são muitos desenvolvedores que integram com maquininhas usando o Xamarin Android. Segue as linhas que adicionei no metadata.xml: <attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper.listeners']/interface[@name='PlugPagSetStylesListener']/method[@name='onError']" name="argsType">PlugPagSetStylesListeneronErrorEventArgs</attr> <attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPagBankActivationResult.Creator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr> <attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPagBankActivationResult.Creator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr> <attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPreAutoQueryResult.Creator']/method[@name='createFromParcel' and count(parameter)=1 and parameter[1][@type='android.os.Parcel']]" name="managedReturn">Java.Lang.Object</attr> <attr path="/api/package[@name='br.com.uol.pagseguro.plugpagservice.wrapper']/class[@name='PlugPagPreAutoQueryResult.Creator']/method[@name='newArray' and count(parameter)=1 and parameter[1][@type='int']]" name="managedReturn">Java.Lang.Object[]</attr>

Show No caso da CIELO da pra embarcar na maquininha usando xamarin ? tinha lido na documentação deles q não dava

metazul commented 1 year ago

Dá sim Nicolas. Na maquininha smart deles, a LIO. No nosso caso usamos a integração híbrida. Que é uma alternativa que eles oferecem e que facilita na integração. Dá para integrar a parte de pagamentos e impressão. Ricardo.

metazul commented 1 year ago

Metazul eu estou usando a versão 1.9 a ultima que eles disponibilizaram com a versão de compilação do android 9

Existe algum motivo para usar esta compilação do Android 9? Aliás, não sei se estou enganado, mas vi no AndroidManifest.xml das versões e o Android 9 (SDK 28) vai até a versão 1.17.0 deles. Ainda nem li a documentação da PagSeguro, estava primeiro testando o .aar deles para ver se era complicado para converter. Agora que vi que é simples vou atrás da documentação.

RicardoJohann commented 1 year ago

Olá, @brdacon1, @metazul, @NicFT

Eu também utilizo o Xamarin.Android e já integrei com a Stone e Vero. Agora estou começando com a PagSeguro... Me deparei com esses mesmos erros de vocês, e as linhas que vocês comentaram, resolveu. Pretendo integrar também mais tarde com a Cielo, MercadoPago, Rede...

Se fizerem ou já fizeram algum grupo de whatsapp, slack, comunidade... gostaria de fazer parte também

metazul commented 8 months ago

Oi pessoal, criei um discord para nós, desenvolvedores que usam Xamarin e MAUI especificamente para apps de maquininhas. Nele poderemos compartilhar nossas particularidades no uso dos SDKs Java em nossos projetos para as maquininhas. Lá, compartilhei algumas configurações do Metadata.xml de algumas bibliotecas que uso. Atualmente estou com alguma dificuldade na configuração para o novo SDK da Rede (4.0.6), se alguém quiser participar, ajudar ou compartilhar, agradeço:

https://discord.gg/HAt7mW39

metazul commented 8 months ago

Oi, @RicardoJohann, @brdacon1, @NicFT

Como disse na mensagem anterior, criei um grupo de desenvolvedores Xamarin e MAUI em apps para maquininhas. Lá podemos trocar ideias e compartilhar configurações em desenvolvimento para maquininhas Smart como as da Rede, Cielo, PagSeguro, etc. O novo desafio é o da nova versão e exigências da maquininha da Rede.

Estou compartilhando novamente o link/convite para o grupo no Discord, pois o link anterior expirou. A todos interessados, espero por vocês lá:

https://discord.gg/REME4XnG

tonychristiec commented 8 months ago

Oi @metazul

tentei entrar no link do discord mas acho que expirou novamente, pode me mandar?

metazul commented 8 months ago

Oi @tonychristiec

O último link/convite que enviei continua ativo, mas de qualquer forma criei um outro que nunca expira. A todos que se interessarem o convite é ilimitado. Segue:

https://discord.gg/WSXUtyaHyx