I just did. Basically, you poll the properties of the AppGameKit objects and invoke your Tier 2 code based on the property.
Quick example for:
//Somewhere in your tier 2 source:
if ( GetSpriteVisible( purchaseProduct1 ) )
{
MyStoreManager::purchaseProduct( "com.myapp.iap.product1");
}
Now in basic when you want to purchase that app you just change that exact sprite visibility to true. Make sure that the sprite ID that you use in tier 1 and tier 2 is the same ID.
It would be nice if there was GetTextString(), that way you can just use strings with delimeters and determine what the function you want to call based on the very first substring before the delimiter:
GetTextString( command ); // command could equal something like: "playSong|BabyByJustinBieber.mp3"
I've read somewhere that GetTextString() was added to build 107 but it would be nice if a small patch was added to include this one command which would make this work around a lot better.