AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Delphi-News aus aller Welt Solucionar error en el componente tInAppPurchase
Thema durchsuchen
Ansicht
Themen-Optionen

Solucionar error en el componente tInAppPurchase

Ein Thema von DP News-Robot · begonnen am 29. Apr 2020
Antwort Antwort
Benutzerbild von DP News-Robot
DP News-Robot

Registriert seit: 4. Jun 2010
15.403 Beiträge
 
#1

Solucionar error en el componente tInAppPurchase

  Alt 29. Apr 2020, 19:10




En la última versión de Rad Studio 10.3.3 se produce un error al utilizar el componente tInAppPurchase en Android de 64 bits, cuando el usuario pulsa sobre la app para comprar una suscripción.


Una forma de capturar el error en este componente sería desde el evento OnError:


PROCEDURE TFPublicidad.InAppPurchase1Error(Sender: TObject;
ErrorKind: TFailureKind; CONST ErrorMessage: STRING);
BEGIN
IF ErrorKind = TFailureKind.ProductsRequest THEN
BEGIN
Memo2.Lines.Add(' ERROR al solicitar los productos ' + ErrorMessage);
END;
IF ErrorKind = TFailureKind.Purchase THEN
BEGIN
Memo2.Lines.Add(' ERROR en la compra ' + ErrorMessage);
END;
END;




En caso de que se la compra del producto online sea correcta hay que tratarla desde el evento OnPurchaseCompleted, de la siguiente forma:

PROCEDURE TFPublicidad.InAppPurchase1PurchaseCompleted(Sende r: TObject;
CONST ProductID: STRING; NewTransaction: Boolean);
BEGIN
Memo2.Lines.Add('*** ' + ProductID + ' EL Producto ha sido comprado');
IF ItemAComprar1 = ProductID THEN
showmessage ('se ha comprado el producto 1');
IF ItemAComprar2 = ProductID THEN
showmessage ('se ha comprado el producto 2');
END;



tInAppPurchase se usa para proporcionar acceso a la app a los servicios de pago de Google Play o de App Store, que permiten vender contenido digital, en forma de suscripciones o compra de productos.


El problema es que se omitió cambiar un tipo de datos "Cardinal" (mismo tamaño en todas las plataformas) a "NativeUInt" (específico de la plataforma). Esto se logra utilizando el tipo tFmxHandle.


Para resolver este problema hay que :


- Acceder al archivo FMX.Helpers.Android.pas
Está en C: \ Archivos de programa (x86) \ Embarcadero \ Studio \ 20.0 \ source \ fmx


- Copiar el archivo y pegarlo en la carpeta del proyecto


- Después hay que cambiar la línea nº 250 de esa unit y donde dice:


FTimerHandle: Cardenal;


cambiarlo por


FTimerHandle: tFmxHandle;


Aquí tienen una imagen del código




Referencia: blog Marco Cantú


También te puede interesar:

Que hacer para no perder ingresos con vuestras apps
Cómo dejar que Google gestione la clave de firma de las apps

Solucionando problemas con los componentes Iot

Cómo generar un Android App Bundle con Delphi




Suscribirse :



Weiterlesen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz