We experienced and solved a similar problem.
Using CurrentAppSimulator worked fine, but bringing up the real purchasing UI with CurrentApp did not.
In a production setting await CurrentApp.RequestProductPurchaseAsync(string,bool) seemed to never return (more specifically, it only returns once after the user has logged in -- subsequent calls did not return).
Additionally, after we tried to bring up the purchasing UI in our app, other applications using the purchasing UI had the same problem -- UI never shows.
Here is the problem code:
private async void CommandInvokedHandler(IUICommand command)
{
switch (command.Label)
{
case "Continue":
licenseInformation = CurrentApp.LicenseInformation;
if (!licenseInformation.ProductLicenses[Notes.ProductName].IsActive)
{
try
{
await CurrentApp.RequestProductPurchaseAsync(Notes.ProductName, false);
// The code never steps over
}
The somewhat-obvious problem with the code above is that the request to bring up the in-app purchase UI is made from within a modal dialog box command handler. The request hangs -- never returns. The not-so-obvious part is that it also blocks all subsequent requests from our application and every other application (until the user's session is restarted).
Upon moving the "try" block out of the command handler, and ensuring that there are no modal UI calls contesting the purchase request, purchasing worked without issue.
EDIT: You should restart (or re-login) to test this. Once the purchasing UI breaks, it will not show until you restart or re-login.