2017-09-01 6 views
0

私はSagepay DirectでOmnipayを実装しようとしていますが、3D Secureビットで本当に苦労しています。Sagepay Direct 3D安全な空白ページの問題

MD、PaReq、TermUrlをhttps://test.sagepay.com/mpitools/accesscontroler?action=pareqに投稿すると、空白の画面が表示されます。

これらの以前のSOの回答は、PaReqフィールドのスペースを削除することで問題が解決されることが示唆されていますが、データにはスペースがありません。

SagePay Direct 3DSecure checkout part returning blank page when redirecting out to bank

Sage Pay test server won't load 3D Secure page

データはOmnipay方法$対応 - > getRedirectData(から返された)

"PaReq" => "eJxVUk1TwjAQvfsrGO52mza0lVnCoBxERqcqOuMxpqt0pB8mrRZ/vQkUweTy3svO2+xLcNoVm8EXaZNX5WTIPH84FWe4Wmui+SOpVpPAWzJGvtMgzybDwGcjn7OLmEc8CXnAgmQ0FJjOHuhTYG8krI/HEA7UOmi1lmUjUKrPy8Wd4DwKoxFCT7EgvZiLgPn7HfpuIexlLGVBYqZkRsV2RaZ5pjKrNMJOR1W1ZaO3IgkihAPBVm/EumlqMwaQdW08U1bfmur2dZMrT1Ve+wGGNm/nhvQXIbh6hONF09YhY/27PBNyef308zKLuuXdA0u71DC5DrItj2/uJwiuAjPZkLDxxH4SsgGLx2E85hxhp6Ms3MUEc1P1GGvXYnZycCqgzV5TqQ5zHRhSV1cl2YoA4Q9jRkaJR/dKqdwObtOFbewkhOMgV9cuf9XYSJmLfoecX24DYwnbGzqC4Gqhf1XoP4BF/z7GLxIJvBw=" 

"MD" => "20150419746483421285" 

これは私が

を使用しているフォームのHTMLです
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Untitled Document</title> 
</head> 

    <body> 
    <form action="https://test.sagepay.com/mpitools/accesscontroler?action=pareq" method="post"> 
     <input name="MD" value="20150419746483421285" type="hidden"> 
     <input name="PaReq" value="eJxVUk1TwjAQvfsrGO52mza0lVnCoBxERqcqOuMxpqt0pB8mrRZ/vQkUweTy3svO2+xLcNoVm8EXaZNX5WTIPH84FWe4Wmui+SOpVpPAWzJGvtMgzybDwGcjn7OLmEc8CXnAgmQ0FJjOHuhTYG8krI/HEA7UOmi1lmUjUKrPy8Wd4DwKoxFCT7EgvZiLgPn7HfpuIexlLGVBYqZkRsV2RaZ5pjKrNMJOR1W1ZaO3IgkihAPBVm/EumlqMwaQdW08U1bfmur2dZMrT1Ve+wGGNm/nhvQXIbh6hONF09YhY/27PBNyef308zKLuuXdA0u71DC5DrItj2/uJwiuAjPZkLDxxH4SsgGLx2E85hxhp6Ms3MUEc1P1GGvXYnZycCqgzV5TqQ5zHRhSV1cl2YoA4Q9jRkaJR/dKqdwObtOFbewkhOMgV9cuf9XYSJmLfoecX24DYwnbGzqC4Gqhf1XoP4BF/z7GLxIJvBw=" type="hidden"> 
     <input name="TermUrl" value="https://www.example.com/payment/auth-return" type="hidden"> 
     <center><p>Please click button below to Authenticate your card</p><input value="Go" type="submit"></center> 
    </form> 
    </body> 
</html> 

あなたはなぜ私がblaを得ているか知っていますか? nkページ? Sagepayに送信する前に何らかの方法でデータを変換する必要がありますか?

私は考えることができるすべてを試しましたが、どこにもいません。

答えて

0

これは魔法のように動作しています。サゲイの最後で問題になっている可能性がありますか? 「セキュア・3d.php」以下のように私の自己提出する形で

場合、それは他の誰かのために便利ですが、ここに私のiFrameコードだ...

<iframe src="secure-3d.php?acsURL=<?=$responseUrl?>&PaReq=<?=$responseData['PaReq']?>&MD=<?=$responseData['MD']?>&TermUrl=<?=$responseData['TermUrl']?>" name="secure-3d" id="secure-3d" width="100%" height="500" frameborder="0"></iframe> 

... ....

<form id="cardToken" name="cardToken" action="<?=$_GET['acsURL']?>" method="post"> 
    <input type="hidden" name="MD" value='<?=str_replace(' ','+',$_GET['MD'])?>' /> 
    <input type="hidden" name="PaReq" value='<?=str_replace(' ','+',$_GET['PaReq'])?>' /> 
    <input type="hidden" name="TermUrl" value='<?=str_replace(' ','+',$_GET['TermUrl'])?>' /> 
    <noscript> 
    <center><p>Please click button below to Authenticate your card</p><input type="submit" value="Go"/></p></center> 
    </noscript> 
</form> 
<script language="Javascript"> 
     var form = document.getElementById("cardToken"); 
     form.submit(); 
</script> 

私はクエリ文字列のフォームに至るまでPaReq、MDとTermUrlデータを渡し、その後、あなたは隠しフィールドを作成するときにプラスするstr_replaceスペースにする必要があります。

それはすべきです!

これを改善する方法についてご意見がありましたら、

関連する問題