Faits:
A. Dès le printemps de 2001, X._ SA (ci-après: X._ SA) et une société liée à Y._ SA (ci-après: Y._ SA) ont noué des relations d'affaires concernant la gestion et l'exploitation d'un hôtel à Marrakech. Un contrat a été conclu le 22 mai 2001. X._ SA s'est chargée de l'exploitation de l'établissement et elle a notamment promis, pour l'année 2002, un rendement minimum à sa cocontractante. Elle a souscrit deux lettres de change le 17 et le 18 octobre 2002.
X._ SA a par la suite refusé ses versements au motif que des « cas de force majeure » avaient entravé l'exploitation de l'hôtel, que sa cocontractante n'avait pas exécuté les travaux de rénovation pourtant convenus et qu'elle n'avait pas non plus exécuté certains paiements. X._ SA a résilié le contrat conclu en mai 2001.
B. Le 24 octobre 2003, Y._ SA a saisi le Tribunal de commerce de Marrakech d'une requête d'injonction de payer fondée sur les lettres de change. X._ SA devait être condamnée à payer 22'000'100 dirhams marocains. Le tribunal a donné suite à la requête le 27 octobre, sans que la partie recherchée eût reçu l'occasion de prendre position.
X._ SA s'est pourvue devant la Cour d'appel de commerce. Elle a fait valoir qu'elle n'avait pas de domicile commercial au Maroc, que les lettres de change étaient des documents de complaisance, qu'elles n'avaient pas été signées par un représentant autorisé et que Y._ SA n'avait pas qualité pour agir. La Cour a rejeté ces moyens et confirmé le prononcé du Tribunal de commerce par arrêt du 6 juillet 2004.
Le 17 mai 2006, la Cour suprême de Rabat a rejeté le pourvoi en cassation de X._ SA.
C. A Genève, celle-ci a reçu notification d'un commandement de payer au montant de 3'094'247 fr., contre-valeur de 22'000'100 dirhams, avec intérêts au taux de 6% par an dès le 18 octobre 2002. Elle a fait opposition.
Par jugement du 29 juin 2006, sur requête de Y._ SA, le Tribunal de première instance du canton de Genève a reconnu et déclaré exécutoire l'arrêt de la Cour d'appel de commerce du 6 juillet 2004, et il a donné mainlevée définitive de l'opposition au commandement de payer. La Cour de justice a rejeté l'appel de l'adverse partie le 28 septembre 2006; le Tribunal fédéral a rejeté son recours de droit public le 17 janvier 2007 (arrêt 5P.460/2006).
Menacée de faillite, X._ SA a versé à l'office des poursuites 3'945'068 fr.85 le 3 mai 2007; elle a aussitôt obtenu, semble-t-il, le séquestre de ce montant.
D. Le 2 mai 2007, soit la veille, X._ SA avait intenté à Y._ SA une action en répétition de l'indu devant le Tribunal de première instance. La défenderesse devait être condamnée à rembourser 3'945'068 fr.85 avec intérêts au taux de 5% par an dès ce même jour.
Préalablement à toute autre défense, Y._ SA a excipé de l'autorité de chose jugée et conclu à l'irrecevabilité de la demande; elle soutenait que la Cour d'appel de commerce avait résolu le litige à l'origine de la poursuite pour dettes.
La demanderesse a conclu au rejet de l'exception; elle a produit un avis de droit concernant l'objet et la portée de la décision prise par la Cour d'appel de commerce.
Par un premier jugement, le tribunal a rejeté l'exception et accueilli l'action. La Cour de justice a annulé cette décision le 24 septembre 2009; elle a renvoyé la cause au tribunal pour poursuivre l'instruction et établir la teneur du droit étranger. Contre son arrêt, X._ SA a introduit un recours en matière civile que le Tribunal fédéral a déclaré irrecevable le 8 janvier 2010 (arrêt 4A_533/2009).
X._ SA a produit un deuxième avis de droit; Y._ SA a elle aussi produit une documentation juridique.
Le tribunal a chargé l'Institut suisse de droit comparé d'établir une expertise. Le rapport de l'Institut est daté du 2 novembre 2010.
La demanderesse a produit encore deux autres avis de droit tendant à invalider les conclusions du rapport. Elle a requis une expertise supplémentaire qui devrait être confiée à un « spécialiste indépendant en matière de procédure civile marocaine ».
Le tribunal a rejeté cette réquisition de preuve par une ordonnance du 11 février 2011 contre laquelle X._ SA a introduit un recours.
Le tribunal a rendu un deuxième jugement le 1er juin 2011; il a accueilli l'exception de chose jugée et déclaré la demande irrecevable.
X._ SA a appelé à la Cour de justice, laquelle a statué le 9 mars 2012. Elle a constaté que le recours dirigé contre l'ordonnance du 11 février 2011 n'avait plus d'objet et elle a confirmé le jugement déclarant la demande irrecevable.
E. Agissant par la voie du recours en matière civile, X._ SA requiert le Tribunal fédéral de réformer l'arrêt de la Cour de justice en ce sens que l'exception de chose jugée soit rejetée et que la demande en répétition de l'indu soit déclarée recevable. Des conclusions subsidiaires tendent au renvoi de la cause à la Cour de justice pour recueillir une expertise complémentaire, à confier à un « spécialiste indépendant en matière de procédure civile marocaine » et destinée à « clarifier » le rapport de l'Institut suisse de droit comparé, puis statuer à nouveau.
Y._ SA conclut au rejet du recours.

Considérant en droit:
1. Le recours est dirigé contre une décision finale (<ref-law>), rendue en dernière instance cantonale (<ref-law>) et susceptible du recours en matière civile (<ref-law>). Son auteur a pris part à l'instance précédente et succombé dans ses conclusions (<ref-law>). La valeur litigieuse excède le minimum légal de 30'000 fr. (art. 51 al. 1 let. a et 74 al. 1 let. b LTF); le mémoire de recours a été introduit en temps utile (<ref-law>) et il satisfait aux exigences légales (art. 42 al. 1 à 3 LTF).
Le recours est ouvert pour violation du droit fédéral (<ref-law>). Le Tribunal fédéral applique ce droit d'office, hormis les droits fondamentaux (<ref-law>). Il n'est pas lié par l'argumentation des parties et il apprécie librement la portée juridique des faits; il s'en tient cependant, d'ordinaire, aux questions juridiques que la partie recourante soulève dans la motivation du recours (<ref-law>; <ref-ruling> consid. 1.4 p. 400; <ref-ruling> consid. 1.4.1 p. 254), et il ne se prononce sur la violation de droits fondamentaux que s'il se trouve saisi d'un grief invoqué et motivé de façon détaillée (<ref-law>; <ref-ruling> consid. 3.2 p. 88; <ref-ruling> consid. 2.2 p. 246; <ref-ruling> consid. 1.4.2). Dans une affaire pécuniaire, le Tribunal fédéral ne contrôle pas l'application du droit étranger éventuellement pertinent (<ref-law>); il n'intervient que si la partie recourante démontre que les règles de ce droit ont été constatées ou appliquées en violation de la protection contre l'arbitraire conférée par l'art. 9 Cst. (<ref-ruling> consid. 3.3 in fine p. 521). En règle générale, le Tribunal fédéral conduit son raisonnement juridique sur la base des faits constatés dans la décision attaquée (<ref-law>).
2. L'action entreprise par X._ SA devant les tribunaux genevois est celle prévue par l'art. 86 al. 1 et 3 LP, accordant à celui qui a payé une somme qu'il ne devait pas, par l'effet de poursuites restées sans oppositions ou d'un jugement prononçant la mainlevée de l'opposition, le droit de répéter cette somme (al. 1) en apportant la preuve qu'elle n'était pas due (al. 3).
Il est constant que X._ SA a payé à l'issue d'une poursuite, sous la contrainte d'un jugement donnant mainlevée définitive de son opposition au commandement de payer.
L'action régie par l'art. 86 al. 1 et 3 LP n'est en principe pas disponible lorsqu'avant la poursuite ou en même temps que celle-ci, un jugement a reconnu le bien-fondé de la prétention qui en était l'objet; la jurisprudence envisage ici un jugement « au fond », destiné à élucider définitivement le rapport d'obligation invoqué par la partie se disant créancière (<ref-ruling> consid. 2.2 p. 589). L'autorité d'un jugement « au fond » exclut qu'une action identique, y compris une action en répétition de l'indu, portant sur la même prétention entre les mêmes parties, soit introduite en justice et aboutisse à un nouveau jugement (art. 59 al. 2 let. e CPC; <ref-ruling> consid. 1 p. 242; <ref-ruling> consid. 2a p. 18; <ref-ruling> consid. 2 p. 476). Le jugement « au fond » se distingue notamment de celui ordonnant des mesures provisionnelles limitées à la durée d'un procès, fondé sur une simple vraisemblance (<ref-law>), ou du jugement donnant mainlevée provisoire de l'opposition, fondé sur l'existence d'une reconnaissance de dette (<ref-law>) et concernant seulement la poursuite en cours (Alexander Zürcher, in Kommentar ZPO, Thomas Sutter-Somm et al., éd., 2010, nos 44 et 45 ad <ref-law>; Francesco Trezzini, in Commentario CPC, 2011, p. 188).
Le jugement d'un tribunal étranger jouit en Suisse de l'autorité qui lui est conférée dans l'Etat d'origine par le droit de cet Etat, s'il a été reconnu dans notre pays à l'issue de la procédure prévue à cette fin par la loi fédérale sur le droit international privé (Andreas Bucher, in Commentaire romand, n° 36 ad <ref-law>). Y._ SA a obtenu la reconnaissance de l'arrêt de la Cour d'appel de commerce du 6 juillet 2004. Sur la base du droit marocain tel qu'établi par l'avis de l'Institut suisse de droit comparé, le Tribunal de première instance et la Cour de justice retiennent que cet arrêt revêt l'autorité d'un jugement « au fond » et qu'il fait donc obstacle à l'action en répétition de l'indu; devant le Tribunal fédéral, X._ SA persiste à contester que l'arrêt soit un jugement « au fond ».
3. D'après l'avis de l'Institut de droit comparé, tel que résumé dans la décision présentement attaquée, la requête d'injonction de payer ouvre devant le Tribunal de commerce une procédure qui n'est d'abord pas contradictoire. Le tribunal se prononce seulement sur la base des documents qui lui sont présentés, à l'exclusion de toute autre preuve. S'il donne suite à la requête, la partie condamnée a le droit d'appeler; elle peut alors faire valoir tous ses moyens, « tant sur la compétence que sur le fond ». A titre d'exemples, cette partie peut faire valoir que la dette est totalement ou partiellement éteinte, que le titre est « frauduleux » ou que l'adverse partie n'a pas satisfait à ses propres obligations, telles que livrer une marchandise ou en livrer une exempte de défauts. La loi ne limite pas les moyens qui peuvent être soulevés. La Cour d'appel de commerce s'en saisit avec « plein pouvoir d'examen » mais elle n'est pas habilitée à recevoir des preuves autres que les pièces produites. Elle peut « trancher le litige » si ces moyens ne lui paraissent pas fondés et qu'elle n'a « aucun doute » sur la créance. Dans le cas contraire, si elle considère que les moyens et les pièces de l'appelant ont « un caractère sérieux », elle « interrompt le procès » et renvoie les parties à agir selon une procédure ordinaire autorisant des mesures d'instruction. Selon l'Institut, la Cour d'appel a examiné tous les moyens de X._ SA et elle les a rejetés en motivant sa décision. Celle-ci a été « confirmée » par la Cour suprême de Rabat, de sorte que le litige est « définitivement tranché ».
X._ SA fait grief à la Cour de justice d'avoir constaté arbitrairement le contenu du droit étranger en se référant à l'avis de l'Institut. Elle fait état des avis de droit qu'elle a elle-même produits et elle fait aussi valoir que l'expert mandaté par l'Institut est un spécialiste du droit public plutôt que de la procédure civile. Elle discute longuement les divers rapports et, quoiqu'elle proteste énergiquement contre les conclusions de l'Institut et de la Cour de justice, elle n'avance rien que soit apte à mettre en évidence une erreur flagrante et indiscutable dans l'exposé que cette autorité consacre au droit marocain. Son argumentation ne répond donc pas aux exigences relatives à la motivation du grief d'arbitraire, de sorte que le Tribunal fédéral n'entre pas en matière (cf. ATF <ref-ruling> consid. 1.4.3 p. 254; <ref-ruling> consid. 3.2 p. 400).
4. Lors de la mise en ?uvre d'une décision étrangère reconnue en Suisse, celle-ci doit être autant que possible transposée dans les catégories juridiques du droit suisse (Bucher, op. cit., nos 32 et 33 ad <ref-law>).
La procédure de l'injonction de payer qui s'est accomplie au Maroc se révèle étroitement similaire à la procédure sommaire des cas clairs prévue par l'<ref-law>. La preuve n'est apportée que par titres, ce qui est le régime ordinaire consacré par l'<ref-law> dans la procédure des cas clairs. Une issue favorable à la partie requérante suppose que la Cour d'appel de commerce n'éprouve « aucun doute » sur la créance, ce qui paraît nécessiter un état de fait immédiatement prouvé et une situation juridique claire aux termes de l'art. 257 al. 1 let. a et b CPC. Soit la Cour tranche « définitivement » le litige en faveur de la partie requérante, soit elle « interrompt » le procès et renvoie les parties à agir selon une autre procédure; cette hypothèse-ci est celle de l'<ref-law>, où le juge refuse l'entrée en matière si le cas n'est pas clair, et laisse ainsi à la partie requérante la faculté d'entreprendre une procédure civile différente si elle veut persister dans sa prétention. D'après l'avis de l'Institut et l'arrêt de la Cour de justice, la décision favorable obtenue par Y._ SA est « définitive » et cela signifie qu'elle ne peut pas être invalidée ou rapportée au terme d'une procédure civile différente qu'il incomberait à X._ SA d'entreprendre. Cette caractéristique est présente aussi dans une décision favorable à la partie requérante, à l'issue de la procédure suisse des cas clairs: cette décision est définitive et dotée d'une autorité complète (Thomas Sutter-Somm et Cordula Lötsc?er, in Kommentar ZPO, n° 24 ad <ref-law>; Trezzini, op. cit., p. 1144 et 1145), alors même qu'elle intervient au terme d'une procédure sommaire; il s'agit donc d'une décision « au fond » propre à exclure l'action en répétition de l'indu que la partie condamnée voudrait introduire après avoir été contrainte de payer.
Au regard de l'ensemble de ces analogies, la Cour de justice applique correctement la notion de l'autorité de chose jugée, actuellement consacrée par l'art. 59 al. 2 let. e CPC mais reconnue par le droit civil fédéral déjà avant l'entrée en vigueur de cette règle (<ref-ruling> consid. 1 p. 242; <ref-ruling> consid. 2a p. 18), en admettant que l'arrêt de la Cour d'appel de commerce du 6 juillet 2004 est lui aussi un jugement « au fond » excluant une action en répétition de l'indu devant les tribunaux suisses.
5. X._ SA soutient que l'arrêt du 6 juillet 2004 n'est pas un jugement « au fond » parce que la Cour d'appel de commerce n'a prétendument statué que sur le rapport d'obligation cambiaire résultant des deux lettres de change, sans élucider les objections « au fond » que cette société suisse pouvait fonder sur sa relation contractuelle avec l'adverse partie.
Cette argumentation repose sur une dichotomie sujette à caution entre le rapport cambiaire et le rapport contractuel des parties. En droit suisse, même si l'un des cocontractants souscrit un effet de change pour le remettre à l'autre cocontractant, il subsiste entre eux une relation juridique unique aussi longtemps que l'effet n'est pas mis en circulation auprès d'un tiers, et la prétention documentée par l'effet de change n'est alors pas différente de celle « au fond » existant contre le souscripteur (<ref-ruling> consid. 4 p. 563). La recourante ne paraît pas avoir allégué, devant les autorités précédentes, un régime autre en droit marocain; devant le Tribunal fédéral, elle ne prétend en tout cas pas que la décision attaquée soit incomplète sur ce point.
D'après cette décision, la loi marocaine ne limite pas les moyens que la partie condamnée est admise à soulever devant la Cour d'appel de commerce. Rien n'indique que X._ SA n'eût pas pu faire valoir, parmi d'autres objections, que la force majeure avait entravé l'exploitation de l'hôtel, que dans les bâtiments, la société partenaire n'avait pas exécuté les travaux de réfection pourtant promis, que d'autres prestations étaient aussi restées en souffrance ou que les comptes déterminants pour le calcul du rendement n'avaient pas été dûment vérifiés. Ces circonstances, dont la recourante fait état, sont très semblables aux exemples mentionnés par la Cour de justice. La preuve par titres était seule disponible; néanmoins, cela n'exclut pas que même avec de simples commencements de preuve, X._ SA fût éventuellement parvenue à éveiller le doute sur la créance de l'adverse partie et obtenir ainsi « l'interruption du procès ».
La recourante affirme avec insistance que la Cour d'appel de commerce ne peut examiner que les moyens soulevés par les parties. Une pareille règle est plausible et elle correspond à ce qui est, en Suisse, la maxime des débats (<ref-law>), mais elle ne restreint aucunement l'autorité de la décision prise à l'issue de la procédure. Les jugements qui font suite à des offres de preuve insuffisantes ou à des demandes ou défenses insuffisamment motivées acquièrent eux aussi une autorité complète (Zürcher, op. cit., n° 44 ad <ref-law>). La recourante ne peut donc rien déduire, à l'encontre de l'arrêt du 6 juillet 2004, de ce qu'elle n'a pas effectivement soulevé tous ses moyens « au fond » devant la Cour d'appel de commerce.
6. Selon X._ SA, la procédure de l'injonction de payer en droit marocain doit être comparée à la poursuite pour effets de change du droit suisse. Elle affirme que ces procédures ne permettent ni l'une ni l'autre à la partie poursuivie de soulever des moyens tirés de son rapport contractuel avec le bénéficiaire de l'effet de change. Au sujet de cette procédure-là, on a vu que cette thèse contredit le droit étranger tel que la Cour de justice l'a établi. De plus, aussi dans la poursuite pour effets de change du droit suisse, le débiteur poursuivi peut faire obstacle à la poursuite en rendant vraisemblable ses objections ou exceptions personnelles contre le porteur du titre (<ref-law>, renvoyant à l'<ref-law>; Louis Dallèves, in Commentaire romand, n° 14 ad <ref-law>). De toute manière, parce que la procédure de l'injonction de payer en droit marocain n'est pas réservée au porteur d'un effet de change ou d'un chèque (cf. <ref-law>), cette procédure doit être comparée à la procédure des cas clairs, comme on l'a également vu, plutôt qu'à la poursuite pour effets de change.
7. X._ SA soutient qu'elle aurait pu entreprendre, au Maroc, une procédure civile ordinaire contre Y._ SA et obtenir un jugement qui se serait substitué à celui de la Cour d'appel de commerce. A son avis, elle doit être autorisée à exercer de manière analogue l'action en répétition de l'indu en Suisse. La prémisse ainsi avancée contredit une fois encore le droit étranger établi par l'autorité précédente, de sorte qu'il n'y a pas lieu de s'attarder davantage à ce raisonnement. En tant que la recourante n'a pas accès à une procédure civile ordinaire, elle tient l'arrêt du 6 juillet 2004 pour manifestement incompatible avec l'ordre public suisse. Ce moyen pouvait et devait être soulevé sur la base de l'<ref-law> dans la procédure de reconnaissance de la décision étrangère; cette procédure a pris fin avec l'arrêt de la Cour de justice du 28 septembre 2006 et le moyen est donc invoqué tardivement à l'encontre de l'exception de chose jugée. Le moyen ne saurait d'ailleurs convaincre puisque le droit suisse comporte une procédure similaire à celle de l'injonction de payer, qui est celle des cas clairs selon l'<ref-law>.
8. Le recours se révèle privé de fondement, dans la mesure où les griefs présentés sont recevables. A titre de partie qui succombe, son auteur doit acquitter l'émolument à percevoir par le Tribunal fédéral et les dépens auxquels l'autre partie peut prétendre.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté, dans la mesure où il est recevable.
2. X._ SA acquittera un émolument judiciaire de 20'000 francs.
3. X._ SA versera une indemnité de 22'000 fr. à Y._ SA, à titre de dépens.
4. Le présent arrêt est communiqué aux parties et à la Cour de justice du canton de Genève.
Lausanne, le 7 août 2012
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente: Klett
Le greffier: Thélin