dependencies {
implementation 'com.android.billingclient:billing:7.1.1'
}
-keep class com.epicgames.unreal.GooglePlayGamesWrapper {
public *;
}
-keep class com.epicgames.unreal.GooglePlayStoreHelper {
public *;
}
GooglePlayGamesWrapper.Initialize(getApplicationContext());
public boolean AndroidThunkJava_IapBeginPurchase(String[] ProductIds, String AccountId)
{
Log.debug("[JAVA] - AndroidThunkJava_IapBeginPurchase");
boolean bTriggeredPurchase = false;
if( IapStoreHelper != null )
{
// sha-256 the accountId and get the hex string representation
String ObfuscatedAccountId = null;
if (AccountId != null)
{
try
{
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] sha256hash = md.digest(AccountId.getBytes("UTF-8"));
StringBuilder builder = new StringBuilder(sha256hash.length * 2);
for (byte b : sha256hash)
{
builder.append(String.format("%02x", b));
}
ObfuscatedAccountId = builder.toString();
}
catch (NoSuchAlgorithmException ae)
{
}
catch (UnsupportedEncodingException ee)
{
}
}
bTriggeredPurchase = IapStoreHelper.BeginPurchase(ProductIds, ObfuscatedAccountId);
}
else
{
Log.debug("[JAVA] - Store Helper is invalid");
}
return bTriggeredPurchase;
}
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
if (getPackageManager().checkPermission("com.android.vending.BILLING", getPackageName()) == getPackageManager().PERMISSION_GRANTED)
{
IapStoreHelper = new GooglePlayStoreHelper(this, Log);
if (IapStoreHelper != null)
{
Log.debug("[JAVA] - AndroidThunkJava_IapSetupService - Setup started");
}
else
{
Log.debug("[JAVA] - AndroidThunkJava_IapSetupService - Failed to setup IAP service");
}
}
else
{
Log.debug("[JAVA] - AndroidThunkJava_IapSetupService - You do not have the appropriate permission setup.");
Log.debug("[JAVA] - AndroidThunkJava_IapSetupService - Please ensure com.android.vending.BILLING is added to the manifest.");
}
if (requestCode == REQUEST_CODE_SHOW_GOOGLEPLAY_UI)
{
Log.debug("[JAVA] - GooglePlay external activity UI closed (achievements or leaderboards)");
}