HTTP-запрос (Stripe) VBA отправляет DATA - получая ошибку после нескольких дней работы - PullRequest
0 голосов
/ 08 апреля 2020

Я создал проект в Ms Access, который создает учетные записи клиентов в Stripe. Кредитные карты хранятся в защищенном виде через элементы.

Ситуация:

  • Он работает в моем тестовом (домашнем) окружении.
  • Работает на моем предприятии в течение 2 дней

Сегодня я использовал его и теперь получаю:

Соединение с сервером было прервано ненормально

Код:

 reqBody = "description=" & desc & _
        "&name=" & pName & _
        "&phone=" & pPhone & _
        "&address[line1=" & pAdd & _
        "&address[city=" & pSuburb & _
        "&address[country=AU" & _
        "&address[postal_code=" & pPCode & _
        "&address[state=Western Australia"




        Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
        httpReq.Open "POST", "https://api.stripe.com/v1/customers", False

        httpReq.setRequestHeader "Authorization", "Bearer " & api_key
        httpReq.send reqBody
        strResponse = httpReq.responseText

        Set parsed = JsonConverter.ParseJson(strResponse)
        'Debug.Print strResponse
        StripeCustID = parsed("id")

Теперь я прочитал несколько других постов и попробовал использовать:

httpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

и все же не повезло,

Я также попробовал:

Dim HTTPRequest As WinHttp.WinHttpRequest

    Set HTTPRequest = New WinHttp.WinHttpRequest
    With HTTPRequest
        .Open "POST", "https://api.stripe.com/v1/customers", True
        .setRequestHeader "Authorization", "Bearer " & api_key
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .Option(WinHttpRequestOption_SecureProtocols) = SecureProtocol_TLS1_2
        '.Option(WinHttpRequestOption_EnableRedirects) = True
        .send reqBody
        If .waitForResponse(3) Then
            strResponse = .responseText
            Debug.Print .responseText
        Else
            MsgBox "Timed out after 3 seconds."
            Exit Sub
        End If
    End With

Но с этим он подходит, поскольку [SecureProtocol_TLS1_2] не определен (у меня есть ссылка на WinHttp)

Моя тестовая среда Windows 10, моя работа над Windows 7, оба - 64x.

Но факт остается фактом: это работало два дня на рабочих компьютерах и теперь выдает мне эту ошибку.

...