У меня есть внешняя форма оплаты третьей стороны Iframe внутри моей внешней формы. это означает, что сейчас у меня есть кнопки буксировки. один для платежной формы, а другой - для отправки всей формы. как я могу отправить свою внешнюю форму, чтобы отправить все детали, в то время как внутренняя форма оплаты успешно (iframe перенаправляется на другую конкретную страницу).
Кстати, у меня нет доступа к внутренней платежной форме третьего лица html
Используйте что-то вроде этого:
<iframe src="inner-form.html" onLoad="checkLocation(this.contentWindow.location);"></iframe>
И в javascript:
function checkLocation(url) {
if (url !="inner-form.html") {
// Code for when iframe location url has been changed
}
}
Можете ли вы решить URL-адрес перенаправления после того, как внутренняя форма будет успешно отправлена?
Если можно, попробуйте сделать URL-адрес перенаправления URL-адресом того же домена, что и ваша внешняя форма, и поместите скрипт на целевую страницу:
<script>
parent.doSubmit(data); // Customize the method name as you want
</script>
Проблема в том, где вы можете получить объект data
, это зависит от того, как платежная система третьего лица дает вам результат платежа, в основном это строка запроса url, поэтому вы можете получить такие data
:
var data = /payment_result=([^&]+)/.exec(document.location.search)[1];
Обратите внимание, что приведенный выше код является лишь простым примером, все зависит от сторонней платежной системы.
На вашей внешней странице формы вы должны поместить элемент <input type="hidden">
в свою форму, чтобы ваша форма выглядела так:
<form action="..." method="POST">
<input type="hidden" id="paymentResult" name="paymentResult" />
...Other fields
</form>
Затем на странице внешнего вида вы должны иметь метод doSubmit
:
function doSubmit(data) {
document.getElementById('paymentResult').value = data; // Here you should translate the data to a string in order to post it via HTTP
document.getElementById('myForm').submit();
}
Это грубое средство, вам нужно изменить эти коды, чтобы они соответствовали внутренней внешней форме и внутренней форме - сторонняя система