Estoy trabajando con una API bancaria para el pago. Lo que los bancos quieren responder es que Ban Pay JavaScript realizará una redirección HTTP en el marco superior a la URL completa. what completeUrl la url que debo darle a la API del banco para enviar su respuesta en mi app.component.ts
this.http.post("BankEndURL",quote,).subscribe(s=>{ //here i get quote this.newpay=s; //here im passing the paymentID to my service in angular to store there,because at the end of the transaction ,if its successful i need it to show the transaction data this.dataService.setData(s); //here i send a quote to backend to give me a bankurl with payment data this.http.post("SecondBakednURL",this.newpay).subscribe(s=>{ this.payaddress= s['reDirectAuthorizationHref']; //here i open the url to redirect the user to the payment portal window.open(this.payaddress);Aquí está el servicio que he creado:
public sharedData = new BehaviorSubject<any>(null);constructor() {}
getData(){ return this.sharedData; } setData(data:any){ this.sharedData.next(data); }y aquí está mi componente receptor, el que el banco activará una vez que la transacción sea exitosa, voy a mostrar los datos de la transacción del usuario
constructor(private dataService:DataService) {} ngOnInit(): void { this.dataService.getData().pipe( filter(data => !!data) ).subscribe(data => { alert(data) });pero los datos aquí devuelven nulo
En este caso, getSharedData() devuelve el sujeto de comportamiento en sí, por lo que lo sensato en este caso es suscribirse para recibir los datos que está emitiendo al llamar a setData .
En el componente receptor:
ngOnInit(): void { this.dataService.getData().pipe( filter(data => !!data) ).subscribe(data => { alert(data) }); }