Listen for Close Notification

Open the MoneyGram URL in a webview or browser. Monitor for a postMessage with the transaction JSON. Close the webview when status is pending_user_transfer_start.


webview = window.open(moneygramURL, "webview", "width=500,height=800");
window.addEventListener("message", closeWebView);

function closeWebView(e) {
  const txJson = e.data.transaction;
  console.log(`Transaction ${txJson.id} is ${txJson.status}`);

  // If we get a postMessage event and the transaction status is
  // "pending_user_transfer_start" let's interpret that as a signal to close
  // the webview window and take user back to the application experience
  if (txJson.status === "pending_user_transfer_start") {
    webview.close();
  }
}