SSL Error in adaptive paypal Preapproval API in Sandbox mod - paypal

I have used Sandbox App credentials
APIUsername
APIPassword
APISignature
Error is coming in curl APi:-
Verbose information:
* Adding handle: conn: 0x37c7ef8
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x37c7ef8) send_pipe: 1, recv_pipe: 0
* About to connect() to svcs.sandbox.paypal.com port 443 (#0)
* Trying 173.0.82.89...
* Connected to svcs.sandbox.paypal.com (173.0.82.89) port 443 (#0)
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection 0
My question is can i use adaptive paypal API's without SSL
how can i solve this problem?

PayPal are removing support for TLS v1.0 and v1.1 this year. It won't be rolled out to production until June 2016 but is now live on Sandbox.
You'll need to update curl to at least version 7.34 to get TLS v1.2 support.
Sources:
https://github.com/paypal/TLS-update#php
https://devblog.paypal.com/upcoming-security-changes-notice/

Related

curl request to cluster node port hangs on initializing NSS with certpath

I am attempting to make a local request to the kubernetes cluster that is hosted on my server, the cluster's NodePort is listening at the following address 172.20.120.1:30280. External client in production are required to make requests to 172.20.0.1:8000 (this cannot change), so I am attempting to add a DNAT rule to nat the traffic from:
172.20.0.1:8000 -> 172.20.120.1:30280 (k8s NodePort)
I am able to make curl request to 172.20.120.1:30280 directly and get a successful response back. However, when I make a curl request to 172.20.0.1:8000 it just hangs with the following message:
# curl -vvvk https://172.20.0.1:8000/v1/my-api
* About to connect() to 172.20.0.1 port 8000 (#0)
* Trying 172.20.0.1...
* Connected to 172.20.0.1 (172.20.0.1) port 8000 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
And then it eventually times out with the following error:
...
* NSS error -5961 (PR_CONNECT_RESET_ERROR)
* TCP connection reset by peer
* Closing connection 0
curl: (35) TCP connection reset by peer
When I make a request directly to 172.20.120.1:30280 I don't get that cert error and it works. I get a successful response back.
Does anyone know why I am getting that cert error?

Filter by hostname is not working in my WireShark

I am using RESTFul client Insomnia to test my GET request.
I get 500 internal server error as shown below
* Preparing request to https://sample.azure-api.net/masterData/carTypes
* Using libcurl/7.57.0-DEV OpenSSL/1.0.2o zlib/1.2.11 libssh2/1.7.0_DEV
* Current time is 2019-08-30T05:03:09.029Z
* Disable timeout
* Enable automatic URL encoding
* Enable SSL validation
* Enable cookie sending with jar of 0 cookies
* Found bundle for host sample.azure-api.net: 0x205d69260b0 [can pipeline]
* Re-using existing connection! (#7) with host sample.azure-api.net
* Connected to sample.azure-api.net (XX.XXX.XXX.XX) port 443 (#7)
> GET /masterData/carTypes HTTP/1.1
> Host: sample.azure-api.net
> User-Agent: insomnia/6.6.2
> Accept: */*
< HTTP/1.1 500 Internal Server Error
< Content-Length: 111
< Content-Type: application/json
< Date: Fri, 30 Aug 2019 05:03:09 GMT
To troubleshoot, I opened wireshark, selected Ethernet2 interface and started to capture the traffic. also added a filter as follow
http.host == "sample.azure-api.net"
But I do not see any traffic filtered when I apply the above filter.
But when I try to filter like IP Destination, I get to see the traffic.
ip.dst == XX.XXX.XXX.XX && tcp.port == 443
Why filter by hostname is not working?
What I am trying to solve? Root Issue
When I try same request from c# code using rest client, I get below error
{"The request was aborted: Could not create SSL/TLS secure channel."}
So basically I am trying to find where exactly is request is failing!

curl gnutls_handshake failed TLS connection was non-properly terminated

I would like to get the info from my custom Haystack service with the command
curl -v -X GET https://<myIP>:8443/api/haystack/about and it fails, the following is the log from above command
Note: Unnecessary use of -X or --request, GET is already inferred.
* Trying <myproxy-ip>...
* Connected to proxy.example.com (myproxy-ip) port 911 (#0)
* Establish HTTP proxy tunnel to <myIP>:8443
> CONNECT <myIP>:8443 HTTP/1.1
> Host: <myIP>:8443
> User-Agent: curl/7.47.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* Proxy replied OK to CONNECT request
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 597 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: The TLS connection was non-properly terminated.
* Closing connection 0
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
At the same time, the Haystack service is having a front end web portal, when I access with Chrome, I can see the warning Privacy Error and NET::ERR_CERT_AUTHORITY_INVALID, but i still can proceed on the browser. I guess this might be the reason causing my curl fail.
Any idea?
Thanks

Is Paypal Sandbox offline?

Sorry for asking here, but this is a bit of an emergency and I know from past experience, it could take more than 7 days to get a response from Paypal.
I am working on a project that, about 10 days ago, was working fine. 2 Days ago I returned to the PP portion and all of a sudden, I am getting no response from Paypal.
This is the URL I am calling:
https://api.sandbox.paypal.com/v1/payments/payment
And absolutely no response is being returned. I'm certain that before it at least returned an error if no parameters are included. But now, nothing at all with or without parameters.
Paypal does have a status page for the live site. Not sure if it still extends to the sandbox, tho. There was a major outage on the live end yesterday.
Which API are you using?
Do you still have issues with this? It's working fine for me. I don't believe we had an outage either.
$ curl -v https://api.sandbox.paypal.com/v1/payments/payment
* About to connect() to api.sandbox.paypal.com port 443 (#0)
* Trying 23.43.75.39...
* connected
* Connected to api.sandbox.paypal.com (23.43.75.39) port 443 (#0)
*a lot of SSL stuff*
> GET /v1/payments/payment HTTP/1.1
> User-Agent: curl/7.28.1
> Host: api.sandbox.paypal.com
> Accept: */*
>
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 401 Unauthorized
< Server: Apache-Coyote/1.1
< Paypal-Debug-Id: 7177ce39c4142
< Content-Type: application/json
< Content-Length: 0
< DC: origin1-api.sandbox.paypal.com
< Date: Sun, 03 Nov 2013 12:07:31 GMT
< Connection: keep-alive
< Set-Cookie: DC=origin1-api.sandbox.paypal.com; secure
<
* Connection #0 to host api.sandbox.paypal.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
Note the HTTP 401 response (because I didn't specify a valid Authorization header with an access token for the request).

Paypal Refund Transaction Refused

I making refund option with PayPal REST API on my site.
I make order with Paypal test account all taht works great, but when I try to refund i get "Transaction refused". I try refunding full amount, part amount, currency changes... nothing helped me. I also try with new orders and some older orders ( 2 days old) same.
Here what I run and what I get
curl -v https://api.sandbox.paypal.com/v1/payments/sale/*******/refund -H 'Content-Type:application/json' -H 'Authorization: Bearer ***********' -d '{"amount":{"total":"5.00","currency":"JPY"}}'
* About to connect() to api.sandbox.paypal.com port 443 (#0)
* Trying 173.0.82.78...
* Connected to api.sandbox.paypal.com (173.0.82.78) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* NSS: client certificate not found (nickname not specified)
* SSL connection using SSL_RSA_WITH_3DES_EDE_CBC_SHA
* Server certificate:
* subject: CN=api.sandbox.paypal.com,OU=PayPal Production,O="PayPal, Inc.",L=San Jose,ST=California,C=US
* start date: Dec 06 00:00:00 2012 GMT
* expire date: Dec 06 23:59:59 2016 GMT
* common name: api.sandbox.paypal.com
* issuer: CN=VeriSign Class 3 Secure Server CA - G3,OU=Terms of use at https:// www.verisign.com/rpa (c)10,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
> POST /v1/payments/sale/**********/refund HTTP/1.1
> User-Agent: curl/7.29.0
> Host: api.sandbox.paypal.com
> Accept: */*
> Content-Type:application/json
> Authorization: Bearer ******************
> Content-Length: 44
>
* upload completely sent off: 44 out of 44 bytes
< HTTP/1.1 400 Bad Request
< Server: Apache-Coyote/1.1
< Date: Sun, 25 Aug 2013 21:35:55 GMT
< Connection: close
< PayPal-Debug-Id: 6ccd19f66d117
< Content-Type: application/json
< Content-Length: 171
< Connection: close
<
* Closing connection 0
{"name":"TRANSACTION_REFUSED","message":"{0}","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#TRANSACTION_REFUSED","debug_id":"6ccd19f66d117"}
So what can be problem? I check link about that PayPal give me and he didnt help me at all.
I need to make refund option working ASAP.
The original transactions were run in Japanese Yen (JPY), but you don't have a JPY balance in your PayPal account -- hence, all of the transactions you've run in JPY are sitting in 'unclaimed' status. Log in to the seller's account (https://www.sandbox.paypal.com) and go to Profile->My Money. Under More (next to PayPal balance), click Currencies. Then, under the Select new currency drop-down, choose Japanese Yen and click Add Currency. The transactions you've previously taken should begin funneling into the account within a few minutes, after which you should be able to process your refund.