C Запрос OpenSSL HTTPS PayPal - PullRequest
       19

C Запрос OpenSSL HTTPS PayPal

0 голосов
/ 05 мая 2020

Я пытаюсь протестировать платежи PayPal, используя C и OpenSSL. Каждый раз, когда я запускаю код, я получаю ошибку аутентификации клиента, а также неверный запрос 400:

 ssl connection using ECDHE-RSA-AES128-GCM-SHA256
HTTP/1.1 401 Unauthorized
Content-Type: application/json
Content-Length: 77
Connection: keep-alive
Date: Tue, 05 May 2020 07:32:01 GMT
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Paypal-Debug-Id: 5c6d707b2e10b
X-Paypal-Token-Service: IAAS
Strict-Transport-Security: max-age=31536000; includeSubDomains

{"error":"invalid_client","error_description":"Client Authentication failed"}HTTP/1.1 400 Bad Request
Content-Type: text/html
Content-Length: 173
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>Avi Vantage/</center>
</body>
</html>

Мой запрос HTP основан на фрагменте кода Curl от PayPal:

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
   -H "Accept: application/json" \
   -H "Accept-Language: en_US" \
   -u "client_id:secret" \
   -d "grant_type=client_credentials"

Код основной функции содержит строку с сообщением запроса:

int main(int argc, char *argv[])
{
    char address[] = "64.4.249.23";
    char request[] = "POST /v1/oauth2/token HTTP/1.1\r\nHost: api.sandbox.paypal.com\r\nAccept: application/json\r\nAccept-Language: en_US\r\nAuthorization: Basic base64encodedcredentials\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\ngrant_type=client_credentials\r\n";

    open_connections(address, request);

    exit(0);
}

Я знаю, что могу попробовать использовать Curl, но я уже зашел так далеко, поэтому хотел бы увидеть его через

...