2015-11-07 58 views
0

由於我們不符合PCI標準,支付網關提供商給我們進行付款。問題是我無法使用我的購物車總額(19.00)在iframe中設置金額字段。如何在支付網關中設置iframe的金額字段

退房頁:

check out page

支付頁面:

payment page

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 

    $('#myiframe').load(function(){ 

     var iframe = $('#myiframe').contents();    

     iframe.find("#amount").val(<?php echo total; ?>); 
     iframe.find("#firstname").attr('readonly','readonly'); 
    }); 
}); 
</script> 
</head> 
<body> 

<iframe id="myiframe" src="paymentgateway.com"> 
    <p>Your browser does not support iframes.</p> 
</iframe> 

</body> 
</html> 

上面的代碼不工作作爲negete.net/sys/checkout.php是一個域名和付款表格在另一個域名中。原因是跨源資源共享(CORS)存在問題。

我試圖解決這個問題,但沒有任何工作。如果有人遇到過這樣的問題,非常感謝您的幫助。以下給出了我發現的與CORS相關的一些鏈接。

+1

雖然可能,但最好的做法是閱讀您的支付網關提供商的api文檔,以瞭解如何向其傳遞值。如果你堅持不這樣做,你可以嘗試搜索「編輯iframe dom」。 – KoE

+0

我試着用window.postmessage()。但是我在iframe中沒有控制權。 –

回答

0

我有辦法解決上述問題。其實它是在我錯過的支付網關發行者的文檔中。解決方法是您可以將該數量作爲iframe url中的查詢字符串傳遞。

<iframe id="myiframe" src="paymentgateway.com?amount=50"> 
    <p>Your browser does not support iframes.</p> 
</iframe> 

感謝您的幫助。