大家好,这样一个问题:Angular,有一个组件(模态)——一张信用卡。有一个启动库的服务(支付系统,接收道具,生成令牌,与 api 建立连接,在 iframe 中生成 html 页面)。带有付款确认和 OTP 密钥的响应来自一个 iframe,它是一个单独的模式。此模式在用户在浏览器中执行某些操作之前不会启动,付款后也是如此 - 窗口应该自动关闭,但在用户移动之前,一切都保持静止。模态 iframe.html
<iframe name="authentication-3ds-frame" id="xendit-three-ds-container"style="width: 100%; height: 370px;" ></iframe>
模态 iframe.ts
export class Authentication3DSComponent {
@Input() modalData: any;
globalEventsSubscription;
constructor(
private eventService: EventService, private modal: Modal) {
this.globalEventsSubscription = this.eventService.emitter.subscribe(
(event) => {
this.handleGlobalEvents(event);
}
);
}
ngOnInit() {
let payer_authentication_url = this.modalData.payer_authentication_url;
window.open(payer_authentication_url, "authentication-3ds-frame");
}
ngOnDestroy() {
this.globalEventsSubscription.unsubscribe();
}
handleGlobalEvents(event) {
if (event.type === 'payment-service:xendit-token-status-verified') {
this.close();
}
}
close() {
this.modal.close({
id: "Authentication3DS"
})
}
}