Unity IAP is not working on android device

I followed the tutorial code-less IAP in unity from YouTube.
Below is my code to implement purchase in my game, it was working well on unity editor but when I installed on my physical device when I click on buy nothing happens and even values of title, description and price not updated as well. Please help me I will appreciate that! Thanks in advance…

using UnityEngine.Purchasing;

public class IAPManager : MonoBehaviour
{
public GameObject message;
[SerializeField]
private Text coinsLabel;

private string purchaseOne = “com.Asad.MyApp.purchaseOne”;
private string purchaseTwo = “com.Asad.MyApp.purchaseTwo”;
private string purchaseThree = “com.Asad.MyApp.purchaseThree”;

private void Awake()
{
message.SetActive(false);
}

private void Start()
{
if (PlayerPrefs.HasKey(“Coins”))
{
UpdateCoins();
}
}

private void Update()
{

}

public void OnPurchaseComplete(Product product)
{
if (product.definition.id == purchaseOne)
{
GiveUserCoins(1);
StartCoroutine(ShowMessage());
Debug.Log(“Purchase 1 Completed”);

}
else if(product.definition.id == purchaseTwo)
{
GiveUserCoins(2);
StartCoroutine(ShowMessage());
Debug.Log(“Purchase 2 Completed”);
}
else if(product.definition.id == purchaseThree)
{
GiveUserCoins(3);
StartCoroutine(ShowMessage());
Debug.Log(“Purchase 3 Completed”);
}
}

public void GiveUserCoins(int value)
{
int coins = PlayerPrefs.GetInt(“Coins”);

switch (value)
{
case 1:
{
coins += 20000;
break;
}
case 2:
{
coins += 100000;
break;
}
case 3:
{
coins += 1000000;
break;
}
default:
{
coins += 0;
break;
}
}

PlayerPrefs.SetInt(“Coins”, coins);
UpdateCoins();
}

public void UpdateCoins()
{
int coins = PlayerPrefs.GetInt(“Coins”);
if (coins >= 1000)
{
coinsLabel.text = Math.Round((coins / (float)1000), 1).ToString() + " k";
if (coins >= 1000000)
{
coinsLabel.text = Math.Round((coins / (float)1000000), 1).ToString() + " M";
}
}
else
{
coinsLabel.text = coins.ToString();
}
}

public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
{
Debug.Log("Purchase of " + product.definition.id + " failed due to " + reason);
}

IEnumerator ShowMessage()
{

message.SetActive(true);
Vector3 vector = new Vector3(Screen.width * 0.5f, Screen.height * 0.5f, 0);
message.transform.position = vector;

yield return new WaitForSeconds(0.7f);

message.SetActive(false);
}

public void LoadHomeScene()
{
SceneManager.LoadScene(“HomeScene”);
}

}

@asadmubashr I might not recommend Codeless at this time, it is a bit outdated. Instead, I would suggest that you start with this Sample IAP Project here Sample IAP Project and Unity - Manual: Configuring for Google Play Store

Doesn’t worked on physical phone but worked on editor same as before.

Here is source code and my IAP Catalog screenshot

7076734–841804–IAPManager.cs (9.83 KB)

Ensure you define your products on Google Play first https://docs.unity3d.com/Manual/UnityIAPGoogleConfiguration.html You don’t need the Catalog when you are adding products via script. Please provide your device logs, your Debug.Log statements will show nicely in the logs. The Sample IAP Project writes the values to the UI, very handy for debugging. I had actually meant to get the Sample IAP Project working and publish to Google Play as a test. We know it works, don’t make any changes. Once you get it working, then apply lessons learned to your game. This way you are building on success, not chasing bugs and your game is never broken. But let’s look at the device logs first. You can use adb logcat or the logcat asset https://discussions.unity.com/t/724316 and https://discussions.unity.com/t/699654