Добрый день.
У кого-то есть опыт с InAppPurchase в xe7 для Android ? Информации в интернете очень мало.
Нужна помощь.
Прочитав документацию и доступную в Интернете информацию я смог настроить тестовое приложение, тестовые аккаунты для покупки и тестовые "товары". Покупку можно совершить. Однако после надписи про успешную проплату приложение зависает на несколько секунд после чего либо просто вылетает, либо рестартует. После этого товар уже считает купленным, однаком consume не работает, IsProductPurchased всегда возвращает false, RestorePurchasedProducts не вызывает PurchaseCompleted (как я понял по документации - должен). Ниже приведен код
type
TShopForm = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure InAppPurchaseError (Sender: TObject;
ErrorKind: TFailureKind; const ErrorMessage: string);
procedure InAppPurchaseCompleted(Sender: TObject;
const ProductID: string; NewTransaction: Boolean);
procedure InAppProductsRequestResponse(Sender: TObject;
const Products: TIAPProductList; const InvalidProductIDs: TStrings);
procedure InAppPurchaseSetupComplete(Sender: TObject);
private
FInAppPurchase: TInAppPurchase;
{ Private declarations }
public
{ Public declarations }
end;
var
ShopForm: TShopForm;
implementation
const testp='test13';
procedure mlog(s: string);
begin
ShopForm.Memo1.Lines.Add(s);
end;
procedure TShopForm.Button1Click(Sender: TObject);
begin
FInAppPurchase.PurchaseProduct(testp);
end;
procedure TShopForm.InAppPurchaseSetupComplete(Sender: TObject);
begin
mlog('setup complete');
end;
procedure TShopForm.InAppProductsRequestResponse(Sender: TObject;
const Products: TIAPProductList; const InvalidProductIDs: TStrings);
begin
mlog('ProductsRequestResponse');
end;
procedure TShopForm.InAppPurchaseError(Sender: TObject;
ErrorKind: TFailureKind; const ErrorMessage: string);
begin
mlog('error '+ErrorMessage);
end;
procedure TShopForm.InAppPurchaseCompleted(Sender: TObject;
const ProductID: string; NewTransaction: Boolean);
begin
mlog('Purchase '+ProductID);
end;
procedure InAppConsumeCompleted(Sender: TObject; const ProductID:string);
begin
mlog('!consume '+ProductID);
end;
procedure TShopForm.FormCreate(Sender: TObject);
begin
FInAppPurchase:=TInAppPurchase.Create(self);
FInAppPurchase.ApplicationLicenseKey:='MI....';
FInAppPurchase.ProductIDs.Add(testp);
FInAppPurchase.OnSetupComplete:=InAppPurchaseSetupComplete;
FInAppPurchase.OnProductsRequestResponse:=InAppProductsRequestResponse;
FInAppPurchase.OnError:=InAppPurchaseError;
FInAppPurchase.OnPurchaseCompleted:=InAppPurchaseCompleted;
FInAppPurchase.SetupInAppPurchase;
end;
Может кто-то хоть подскажет в какую сторону копать. Или покажет работающий код. Или какие-то аналоги компоненту InAppPurchase посоветует. Буду очень благодарен.