web services ईएसपी एपीआई से एसएपी चर में सोप सूचनाएं प्राप्त करना?




web-services soap (2)

यह मेरी सूचनाओं में अभी तक है। एस्प जब मैं पोस्टमेन के माध्यम से एक मूल सोप पोस्ट भेजने की कोशिश करता हूं तो कुछ भी नहीं हो रहा है क्या ऐसा दिखना चाहिए कि यह काम करना चाहिए?

मैंने यह जांच के बिना अगर बयानों को SOAP शीर्षलेखों की जाँच की है, और मैंने सिर्फ नियमित स्ट्रिंग डेटा को पोस्ट किया है और यह काम करता है तो बाइनरी स्ट्रिंग रूपांतरण और आउटपुट फाइल करने के लिए सभी अच्छे हैं अब मुझे इसे वास्तविक ईबे एपीआई नोटिफिकेशन के साथ परीक्षण करने की आवश्यकता है। ;-)

<%
Function BytesToStr(bytes)
    Dim Stream
    Set Stream = Server.CreateObject("Adodb.Stream")
    Stream.Type = 1 'adTypeBinary
    Stream.Open
    Stream.Write bytes
    Stream.Position = 0
    Stream.Type = 2 'adTypeText
    Stream.Charset = "iso-8859-1"
    BytesToStr = Stream.ReadText
    Stream.Close
Set Stream = Nothing
End Function


Dim isPost: isPost = (UCase(Request.ServerVariables("REQUEST_METHOD") & "") = "POST")
Dim hasSoapAction

'Is it a HTTP POST?
If isPost Then
'Do we have a SOAPACTION header?
    hasSoapAction = (Len(Request.ServerVariables("HEADER_SOAPACTION") & "") > 0)
    If hasSoapAction Then
    'Process the notification here.
    'Use Request.BinaryRead to read the SOAP

        If Request.TotalBytes > 0 Then
            Dim lngBytesCount, text
            lngBytesCount = Request.TotalBytes
            text = BytesToStr(Request.BinaryRead(lngBytesCount))

            dim fs, tfile
            set fs=Server.CreateObject("Scripting.FileSystemObject")
            set tfile=fs.CreateTextFile("C:\inetpub\wwwroot\ASPtest\notifications.txt")
            tfile.WriteLine(text)
            tfile.Close
            set tfile=nothing
            set fs=nothing  
        End If  

    End If
    'Let eBay know we have received and processing the message.
    Response.Status = "200 OK"
Else
'Return method not allowed
Response.Status = "405 Method Not Allowed"
End If
Response.End
%>

मैं एक वेब सर्वर पर होस्ट किया गया एएसपी में eBay एपीआई लेनदेन सूचनाएं प्राप्त करने की कोशिश कर रहा हूं सूचनाएं SOAP संदेशों के रूप में भेजी जाती हैं और क्वेरी स्ट्रिंग के साथ यूआरएल को भेजी जा सकती हैं। नोटिफिकेशन को HTTP 200 ओके के साथ जवाब दिया जाना चाहिए। मैं अधिसूचना को एक चर में अंदर लाने के लिए चाहूंगा ताकि मैं इसे पार्स कर पाएं और सिस्टम के अगले हिस्से पर भेजूं।

http://developer.ebay.com/DevZone/guides/ebayfeatures/Notifications/Notifications.html#ReceivingPlatformNotifications

दस्तावेज़ीकरण में उन्होंने उल्लेख किया है कि यह संभव है, लेकिन वे जो नमूना देते हैं वह एक ईमेल सर्वर की सदस्यता लेने का मार्ग है। यह एएसपी को SOAP अनुरोध बनाने की ज़रूरत नहीं होगी, बस ईबे सर्वर से सोप संदेशों को स्वीकार करें।

मैं एएसपी, सोप और क्वेरी स्ट्रिंग का अध्ययन कर रहा हूं, लेकिन थोड़ा मार्गदर्शन वास्तव में सराहना की जाएगी। धन्यवाद!


यह बहुत सीधे आगे होना चाहिए, आपका क्लासिक एएसपी पृष्ठ ईबे नोटिफिकेशन एपीआई के लिए समापन बिंदु बन जाता है (जब तक आपने इसे सूचनाएं भेजने के लिए और उन्हें यूआरएल भेजने के लिए कॉन्फ़िगर किया है)

आप इसे एक साधारण क्लासिक एएसपी पृष्ठ के साथ परीक्षण करने में सक्षम होना चाहिए

<%
Dim isPost: isPost = (UCase(Request.ServerVariables("REQUEST_METHOD") & "") = "POST")
Dim hasSoapAction

'Is it a HTTP POST?
If isPost Then
  'Do we have a SOAPACTION header (check both because 
  'it can be either HTTP_ or HEADER_ depending on IIS version)?
  hasSoapAction = ( _
    Len(Request.ServerVariables("HEADER_SOAPACTION") & "") > 0 Or _
    Len(Request.ServerVariables("HTTP_SOAPACTION") & "") > 0 _
  )
  If hasSoapAction Then
    'Process the notification here.
    'Use Request.BinaryRead to read the SOAP
  End If
  'Let eBay know we have received and processing the message.
  Response.Status = "200 OK"
Else
  'Return method not allowed
  Response.Status = "405 Method Not Allowed"
End If
Response.End
%>

आप यह भी सुनिश्चित करने के लिए REMOTE_HOST जांच करना चाह सकते हैं कि आप केवल अपेक्षित स्रोत के लिए भेजे गए संदेश प्राप्त कर रहे हैं (हालांकि यह बुलेटप्रूफ नहीं है क्योंकि जानकारी को धोखा दिया जा सकता है)

उपयोगी कड़ियाँ

  • एक अनुरोध के शरीर तक पहुंच (महान मौजूदा उत्तर जो बताता है कि कैसे Request.BinaryRead() का उपयोग करें सामग्री को पढ़ने के लिए और उसे एक स्ट्रिंग में कनवर्ट करें जिसे आप एक चर में या XMLDocument.LoadXML() साथ पार्स करने के लिए उपयोग कर सकते हैं।

  • क्लासिक एएसपी में VBScript का उपयोग करके एमडी 5 कैसे उत्पन्न करें? (यदि आप एमडी 5 हस्ताक्षर की पुष्टि करने का एक तरीका देखना चाहते हैं)





query-string