Ich möchte eine Saferpay Payment Page in einem HTMLViewer anzeigen. Dazu
muss ich erst einen Initial-String an Saferpay senden. Ich verwende
HTTPSecureSocket.Get dazu.

Nun sollte ich von Saferpay ein URL zurück erhalten. Diese verwende ich dann
in einem Aufruf von 'htmlviewer1.loadURL(url)' und ich sollte dann die
eigentliche Payment Seite im HTMLViewer angezeigt erhalten.

Der Initialstring für das öffentliche Testterminal schaut so aus:

https://www.saferpay.com/hosting/CreatePayInit.asp?spPassword=XAjc3Kna&ACCOU
NTID=99867-94913159&ORDERID=123456789-001&AMOUNT=1000&CURRENCY=EUR&DESCRIPTI
ON=Testkauf&SUCCESSLINK="http://www.
myshop.com/Success.aspx"&FAILLINK="http://www.myshop.com/Fail.aspx"&BACKLINK
="http://www.myshop.com/back.aspx"&NOTIFYURL="http://www.myshop.com/notify.a
spx"

Wenn ich diesen String in die Kommandozeile von Firefox kopiere und
abschicke, dann erhalte ich den gewünschten URL im Browser angezeigt. (Und
wenn ich diesen wiederum in die Kommandozeile kopiere und abschicke, dann
erscheint das Test Payment Terminal)

Nicht so in Real Studio:

In meinem Testprogramm habe ich im Action Event eines Pushbuttons:

  Dim url As String = "https://www.saferpay.com/hosting/CreatePayInit.asp?";
_
  + "spPassword=XAjc3Kna" _
  + "&ACCOUNTID=99867-94913159" _
  + "&ORDERID=123456789-001" _
  + "&AMOUNT=1000&CURRENCY=EUR" _
  + "&DESCRIPTION=Testkauf" _
  + "&SUCCESSLINK=" + chr(34) + "http://www. myshop.com/Success.aspx" +
chr(34) _
  + "&FAILLINK=" + chr(34) + "http://www.myshop.com/Fail.aspx"; + chr(34) _
  + "&BACKLINK=" + chr(34) + "http://www.myshop.com/back.aspx"; + chr(34) _
  + "&NOTIFYURL=" + chr(34) + "http://www.myshop.com/notify.aspx"; + chr(34)

myHTTPSocket1.get(url)

Und in myHTTPSocket1: 

Sub PageReceived(url as string, httpStatus as integer, headers as
internetHeaders, content as string)
  if content <> "" Then
    htmlviewer1.loadURL(url)
  end if
End Sub

Die Variable content enthält nicht die erhoffte URL (die bei Firefox
angezeigt wurde), sondern ein Tag: <h1>Bad Request</h1>

Tja, da steh ich nun, ich armer... also: Hat mir jemand einen Hinweis, was
ich tun muss, damit ich nicht einen "Bad request" zurückerhalte, sondern
eben so eine URL, die ich dann weiterverwenden kann?:

https://www.saferpay.com/vt/Pay.asp?DATA=%3cIDP+MSGTYPE%3d%22PayInit%22+MSG_
GUID%3d%2280748299b465455a8d264217f86390bb%22+CLIENTVERSION%3d%222.1%22+KEYI
D%3d%220-99867-7d5a273c0f5043e28811e764d6433086%22+TOKEN%3d%22bbd5f991a5c94a
2f90fbd5a1a593508b%22+ALLOWCOLLECT%3d%22no%22+DELIVERY%3d%22yes%22+EXPIRATIO
N%3d%2220120226+10%3a22%3a33%22+ACCOUNTID%3d%2299867-94913159%22+AMOUNT%3d%2
21000%22+CURRENCY%3d%22EUR%22+DESCRIPTION%3d%22Testkauf%22+SUCCESSLINK%3d%22
http%3a%2f%2fwww.+myshop.com%2fSuccess.aspx%22+BACKLINK%3d%22http%3a%2f%2fww
w.myshop.com%2fback.aspx%22+FAILLINK%3d%22http%3a%2f%2fwww.myshop.com%2fFail
.aspx%22+ORDERID%3d%22123456789-001%22+CCNAME%3d%22yes%22+NOTIFYURL%3d%22htt
p%3a%2f%2fwww.myshop.com%2fnotify.aspx%22+%2f%3e&SIGNATURE=3e0cb5a79155e295f
68ef2f66f30be650b54d0e41dd5a4dbe0415beaecf439bd3dd7ebfdee8be838f57ca846eddeb
b5d94db55bee433daf4ee07e28b1d1a4c35

Oliver



Antwort per Email an