Самое простое решение - вернуть destinationUrl из метода put и установить в качестве нового windows местоположение.
[HttpPut("PayOrder")]
public async Task<IActionResult> PayOrder(Order orderInfo)
{
...
string destinationUrl = GetExternalPaymentUrl(orderInfo);
return new JsonResult(serviceReturn.destinationUrl);
}
и клиентскую сторону:
payOrder(order: Order): {
const options = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
this.http.put<string>(`${this.baseUrl}basicpersoncompanyinfo/PayOrder`, order, options)
.subscribe(url => {
window.location.href = url;
});
}