paypal-sdk-rest 1.2.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/data/DigiCertHighAssuranceEVRootCA.pem +23 -0
- data/data/DigiCertSHA2ExtendedValidationServerCA.pem +28 -0
- data/lib/paypal-sdk/rest/data_types.rb +59 -0
- data/lib/paypal-sdk/rest/version.rb +1 -1
- data/spec/log/http.log +43 -449
- data/spec/webhooks_examples_spec.rb +60 -18
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1369829fd94d5e5c88efc0b2eb125d831530db5c
|
4
|
+
data.tar.gz: 4edb7a761901ad85b11d9f4bb1c088dbefec5a08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a71e40ce13cca8caed3e4baa7b69f74b3b7c3a86bb642a5bed156674ad8046d8959a5f16c83366f4692beecaccc5a143739df6f5b19c562b41c40719e88d5df
|
7
|
+
data.tar.gz: b59fcd91ee22538d89df29297b990286dc89df150fc111864ef55019c2781bcfa7306266848c741dfd52f582d078d6c1faa4960ce9126aae03be7040c1e64fd3
|
data/README.md
CHANGED
@@ -193,6 +193,9 @@ end
|
|
193
193
|
## Create Future Payment
|
194
194
|
[Future Payments](https://developer.paypal.com/docs/integration/mobile/make-future-payment/) sample is available [here](https://github.com/paypal/rest-api-sdk-ruby/blob/master/spec/payments_examples_spec.rb#L149)
|
195
195
|
|
196
|
+
## Webhook event validation
|
197
|
+
See [webhook event validation code sample](https://github.com/paypal/PayPal-Ruby-SDK/blob/master/samples/notifications/verify_webhook_event.rb) and [webhook event validation docs](https://developer.paypal.com/docs/integration/direct/rest-webhooks-overview/#event-signature)
|
198
|
+
|
196
199
|
## OpenID Connect
|
197
200
|
|
198
201
|
```ruby
|
@@ -0,0 +1,23 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
3
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
4
|
+
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
5
|
+
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
6
|
+
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
7
|
+
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
8
|
+
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
9
|
+
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
10
|
+
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
11
|
+
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
12
|
+
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
13
|
+
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
14
|
+
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
15
|
+
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
16
|
+
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
17
|
+
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
18
|
+
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
19
|
+
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
20
|
+
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
21
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
22
|
+
+OkuE6N36B9K
|
23
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,28 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIEtjCCA56gAwIBAgIQDHmpRLCMEZUgkmFf4msdgzANBgkqhkiG9w0BAQsFADBs
|
3
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
4
|
+
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
5
|
+
ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowdTEL
|
6
|
+
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
7
|
+
LmRpZ2ljZXJ0LmNvbTE0MDIGA1UEAxMrRGlnaUNlcnQgU0hBMiBFeHRlbmRlZCBW
|
8
|
+
YWxpZGF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
9
|
+
ggEBANdTpARR+JmmFkhLZyeqk0nQOe0MsLAAh/FnKIaFjI5j2ryxQDji0/XspQUY
|
10
|
+
uD0+xZkXMuwYjPrxDKZkIYXLBxA0sFKIKx9om9KxjxKws9LniB8f7zh3VFNfgHk/
|
11
|
+
LhqqqB5LKw2rt2O5Nbd9FLxZS99RStKh4gzikIKHaq7q12TWmFXo/a8aUGxUvBHy
|
12
|
+
/Urynbt/DvTVvo4WiRJV2MBxNO723C3sxIclho3YIeSwTQyJ3DkmF93215SF2AQh
|
13
|
+
cJ1vb/9cuhnhRctWVyh+HA1BV6q3uCe7seT6Ku8hI3UarS2bhjWMnHe1c63YlC3k
|
14
|
+
8wyd7sFOYn4XwHGeLN7x+RAoGTMCAwEAAaOCAUkwggFFMBIGA1UdEwEB/wQIMAYB
|
15
|
+
Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
|
16
|
+
BQcDAjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
|
17
|
+
Z2ljZXJ0LmNvbTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2Vy
|
18
|
+
dC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMD0GA1UdIAQ2
|
19
|
+
MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j
|
20
|
+
b20vQ1BTMB0GA1UdDgQWBBQ901Cl1qCt7vNKYApl0yHU+PjWDzAfBgNVHSMEGDAW
|
21
|
+
gBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEAnbbQkIbh
|
22
|
+
hgLtxaDwNBx0wY12zIYKqPBKikLWP8ipTa18CK3mtlC4ohpNiAexKSHc59rGPCHg
|
23
|
+
4xFJcKx6HQGkyhE6V6t9VypAdP3THYUYUN9XR3WhfVUgLkc3UHKMf4Ib0mKPLQNa
|
24
|
+
2sPIoc4sUqIAY+tzunHISScjl2SFnjgOrWNoPLpSgVh5oywM395t6zHyuqB8bPEs
|
25
|
+
1OG9d4Q3A84ytciagRpKkk47RpqF/oOi+Z6Mo8wNXrM9zwR4jxQUezKcxwCmXMS1
|
26
|
+
oVWNWlZopCJwqjyBcdmdqEU79OX2olHdx3ti6G8MdOu42vi/hw15UJGQmxg7kVkn
|
27
|
+
8TUoE6smftX3eg==
|
28
|
+
-----END CERTIFICATE-----
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'paypal-sdk-core'
|
2
2
|
require 'uuidtools'
|
3
3
|
require 'multi_json'
|
4
|
+
require 'open-uri'
|
5
|
+
require 'zlib'
|
6
|
+
require "base64"
|
4
7
|
|
5
8
|
module PayPal::SDK
|
6
9
|
module REST
|
@@ -1085,6 +1088,62 @@ module PayPal::SDK
|
|
1085
1088
|
|
1086
1089
|
class << self
|
1087
1090
|
|
1091
|
+
def get_cert(cert_url)
|
1092
|
+
data = open(cert_url).read()
|
1093
|
+
cert = OpenSSL::X509::Certificate.new data
|
1094
|
+
end
|
1095
|
+
|
1096
|
+
def get_cert_chain()
|
1097
|
+
root_cert = "data/DigiCertHighAssuranceEVRootCA.pem"
|
1098
|
+
intermediate_cert = "data/DigiCertSHA2ExtendedValidationServerCA.pem"
|
1099
|
+
|
1100
|
+
cert_store = OpenSSL::X509::Store.new
|
1101
|
+
cert_store.add_file(root_cert)
|
1102
|
+
cert_store.add_file(intermediate_cert)
|
1103
|
+
|
1104
|
+
cert_store
|
1105
|
+
end
|
1106
|
+
|
1107
|
+
def get_expected_sig(transmission_id, timestamp, webhook_id, event_body)
|
1108
|
+
crc = Zlib::crc32(event_body).to_s
|
1109
|
+
transmission_id + "|" + timestamp + "|" + webhook_id + "|" + crc
|
1110
|
+
end
|
1111
|
+
|
1112
|
+
def verify_common_name(cert)
|
1113
|
+
common_name = cert.subject.to_a.select{|name, _, _| name == 'CN' }.first[1]
|
1114
|
+
|
1115
|
+
common_name.start_with?("messageverificationcerts.") && common_name.end_with?("paypal.com")
|
1116
|
+
end
|
1117
|
+
|
1118
|
+
def verify_signature(transmission_id, timestamp, webhook_id, event_body, cert, actual_sig_encoded, algo)
|
1119
|
+
expected_sig = get_expected_sig(transmission_id, timestamp, webhook_id, event_body)
|
1120
|
+
|
1121
|
+
digest = OpenSSL::Digest.new(algo)
|
1122
|
+
digest.update(expected_sig)
|
1123
|
+
actual_sig = Base64.decode64(actual_sig_encoded).force_encoding('UTF-8')
|
1124
|
+
|
1125
|
+
cert.public_key.verify(digest, actual_sig, expected_sig)
|
1126
|
+
end
|
1127
|
+
|
1128
|
+
def verify_expiration(cert)
|
1129
|
+
cert.not_after >= Time.now
|
1130
|
+
end
|
1131
|
+
|
1132
|
+
def verify_cert_chain(cert_store, cert)
|
1133
|
+
cert_store.verify(cert)
|
1134
|
+
end
|
1135
|
+
|
1136
|
+
def verify_cert(cert)
|
1137
|
+
cert_store = get_cert_chain()
|
1138
|
+
|
1139
|
+
verify_cert_chain(cert_store, cert) && verify_common_name(cert) && verify_expiration(cert)
|
1140
|
+
end
|
1141
|
+
|
1142
|
+
def verify(transmission_id, timestamp, webhook_id, event_body, cert_url, sig, algo='sha256')
|
1143
|
+
cert = get_cert(cert_url)
|
1144
|
+
verify_signature(transmission_id, timestamp, webhook_id, event_body, cert, sig, algo) && verify_cert(cert)
|
1145
|
+
end
|
1146
|
+
|
1088
1147
|
def get_resource_class(name)
|
1089
1148
|
class_array = PayPal::SDK::REST.constants.select {|c| Class === PayPal::SDK::REST.const_get(c)}
|
1090
1149
|
class_array.each do |classname|
|
data/spec/log/http.log
CHANGED
@@ -2,512 +2,106 @@ opening connection to api.sandbox.paypal.com:443...
|
|
2
2
|
opened
|
3
3
|
starting SSL for api.sandbox.paypal.com:443...
|
4
4
|
SSL established
|
5
|
-
<- "POST /v1/
|
6
|
-
<- "{\"
|
7
|
-
-> "HTTP/1.1
|
8
|
-
-> "Date:
|
9
|
-
-> "Server: Apache\r\n"
|
10
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=205618\r\n"
|
11
|
-
-> "Paypal-Debug-Id: cc3c3ae9bd7e2\r\n"
|
12
|
-
-> "Connection: close\r\n"
|
13
|
-
-> "Content-Length: 145\r\n"
|
14
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D3889398101; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
15
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
16
|
-
-> "Vary: Authorization\r\n"
|
17
|
-
-> "Content-Type: application/json\r\n"
|
18
|
-
-> "\r\n"
|
19
|
-
reading 145 bytes...
|
20
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"cc3c3ae9bd7e2\"}"
|
21
|
-
read 145 bytes
|
22
|
-
Conn close
|
23
|
-
opening connection to api.sandbox.paypal.com:443...
|
24
|
-
opened
|
25
|
-
starting SSL for api.sandbox.paypal.com:443...
|
26
|
-
SSL established
|
27
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: de1e1d88-0425-4dbc-b3e9-3784d5e7f279\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 473\r\n\r\n"
|
28
|
-
<- "{\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
29
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
30
|
-
-> "Date: Wed, 17 Jun 2015 20:09:41 GMT\r\n"
|
31
|
-
-> "Server: Apache\r\n"
|
32
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=1343\r\n"
|
33
|
-
-> "Paypal-Debug-Id: bfefcb49c5fc9\r\n"
|
34
|
-
-> "Connection: close\r\n"
|
35
|
-
-> "Content-Length: 145\r\n"
|
36
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D97812821; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
37
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
38
|
-
-> "Vary: Authorization\r\n"
|
39
|
-
-> "Content-Type: application/json\r\n"
|
40
|
-
-> "\r\n"
|
41
|
-
reading 145 bytes...
|
42
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"bfefcb49c5fc9\"}"
|
43
|
-
read 145 bytes
|
44
|
-
Conn close
|
45
|
-
opening connection to api.sandbox.paypal.com:443...
|
46
|
-
opened
|
47
|
-
starting SSL for api.sandbox.paypal.com:443...
|
48
|
-
SSL established
|
49
|
-
<- "GET /v1/payments/payment?count=5 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
50
|
-
-> "HTTP/1.1 200 OK\r\n"
|
51
|
-
-> "Date: Wed, 17 Jun 2015 20:11:17 GMT\r\n"
|
52
|
-
-> "Server: Apache\r\n"
|
53
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=143924\r\n"
|
54
|
-
-> "Paypal-Debug-Id: 8d142c0adc73a\r\n"
|
55
|
-
-> "Content-Language: *\r\n"
|
56
|
-
-> "Content-Length: 7531\r\n"
|
57
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1708425557; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
58
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
59
|
-
-> "Vary: Authorization\r\n"
|
60
|
-
-> "Connection: close\r\n"
|
61
|
-
-> "Content-Type: application/json\r\n"
|
62
|
-
-> "\r\n"
|
63
|
-
reading 7531 bytes...
|
64
|
-
-> "{\"payments\":[{\"id\":\"PAY-1L064882YM848125EKWA2KNY\",\"create_time\":\"2015-06-17T16:49:59Z\",\"update_time\":\"2015-06-17T16:50:01Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581a536538b2\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"84X3439975017913M\",\"create_time\":\"2015-06-17T16:49:59Z\",\"update_time\":\"2015-06-17T16:50:01Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-1L064882YM848125EKWA2KNY\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/84X3439975017913M\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/84X3439975017913M/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1L064882YM848125EKWA2KNY\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1L064882YM848125EKWA2KNY\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-5P879024BL580121AKWA2KLY\",\"create_time\":\"2015-06-17T16:49:51Z\",\"update_time\":\"2015-06-17T16:49:52Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581a52e66f48\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"7139905619919533H\",\"create_time\":\"2015-06-17T16:49:51Z\",\"update_time\":\"2015-06-17T16:49:53Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-5P879024BL580121AKWA2KLY\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7139905619919533H\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7139905619919533H/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-5P879024BL580121AKWA2KLY\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-5P879024BL580121AKWA2KLY\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-71588288N5609270KKWA2KDQ\",\"create_time\":\"2015-06-17T16:49:18Z\",\"update_time\":\"2015-06-17T16:49:20Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581a50dc0772\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"11L23280EN666033H\",\"create_time\":\"2015-06-17T16:49:18Z\",\"update_time\":\"2015-06-17T16:49:20Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-71588288N5609270KKWA2KDQ\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/11L23280EN666033H\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/11L23280EN666033H/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-71588288N5609270KKWA2KDQ\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-71588288N5609270KKWA2KDQ\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-5JV234464B4587748KWA2KCY\",\"create_time\":\"2015-06-17T16:49:15Z\",\"update_time\":\"2015-06-17T16:49:19Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx7004\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"12.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"12.00\"}},\"description\":\"creating a payment with saved credit card\",\"related_resources\":[{\"sale\":{\"id\":\"0BM42811PC1943402\",\"create_time\":\"2015-06-17T16:49:15Z\",\"update_time\":\"2015-06-17T16:49:19Z\",\"amount\":{\"total\":\"12.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-5JV234464B4587748KWA2KCY\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0BM42811PC1943402\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0BM42811PC1943402/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-5JV234464B4587748KWA2KCY\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-5JV234464B4587748KWA2KCY\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-8A782675LK9634848KWA2KAQ\",\"create_time\":\"2015-06-17T16:49:06Z\",\"update_time\":\"2015-06-17T16:49:08Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581a50190151\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"26C6249590321562V\",\"create_time\":\"2015-06-17T16:49:06Z\",\"update_time\":\"2015-06-17T16:49:08Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-8A782675LK9634848KWA2KAQ\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/26C6249590321562V\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/26C6249590321562V/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-8A782675LK9634848KWA2KAQ\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-8A782675LK9634848KWA2KAQ\",\"rel\":\"self\",\"method\":\"GET\"}]}],\"count\":5,\"next_id\":\"PAY-9CN47781W2102693AKWA2J2Y\"}"
|
65
|
-
read 7531 bytes
|
66
|
-
Conn close
|
67
|
-
opening connection to api.sandbox.paypal.com:443...
|
68
|
-
opened
|
69
|
-
starting SSL for api.sandbox.paypal.com:443...
|
70
|
-
SSL established
|
71
|
-
<- "GET /v1/payments/payment?count=1 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
72
|
-
-> "HTTP/1.1 200 OK\r\n"
|
73
|
-
-> "Date: Wed, 17 Jun 2015 20:11:22 GMT\r\n"
|
5
|
+
<- "POST /v1/notifications/webhooks HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 18a117b6-aa14-4705-bf80-d9fe6552a133\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 161\r\n\r\n"
|
6
|
+
<- "{\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\"}]}"
|
7
|
+
-> "HTTP/1.1 201 Created\r\n"
|
8
|
+
-> "Date: Mon, 29 Jun 2015 00:16:47 GMT\r\n"
|
74
9
|
-> "Server: Apache\r\n"
|
75
|
-
-> "PROXY_SERVER_INFO: host=
|
76
|
-
-> "Paypal-Debug-Id:
|
10
|
+
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=199\r\n"
|
11
|
+
-> "Paypal-Debug-Id: ca3b32418d9db\r\n"
|
77
12
|
-> "Content-Language: *\r\n"
|
78
|
-
-> "Content-Length:
|
79
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%
|
13
|
+
-> "Content-Length: 650\r\n"
|
14
|
+
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1871614037; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
80
15
|
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
81
16
|
-> "Vary: Authorization\r\n"
|
82
17
|
-> "Connection: close\r\n"
|
83
18
|
-> "Content-Type: application/json\r\n"
|
84
19
|
-> "\r\n"
|
85
|
-
reading
|
86
|
-
-> "{\"
|
87
|
-
read
|
20
|
+
reading 650 bytes...
|
21
|
+
-> "{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}"
|
22
|
+
read 650 bytes
|
88
23
|
Conn close
|
89
24
|
opening connection to api.sandbox.paypal.com:443...
|
90
25
|
opened
|
91
26
|
starting SSL for api.sandbox.paypal.com:443...
|
92
27
|
SSL established
|
93
|
-
<- "GET /v1/
|
28
|
+
<- "GET /v1/notifications/webhooks/50T98599JH617711K HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
94
29
|
-> "HTTP/1.1 200 OK\r\n"
|
95
|
-
-> "Date:
|
96
|
-
-> "Server: Apache\r\n"
|
97
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=45759\r\n"
|
98
|
-
-> "Paypal-Debug-Id: 4ed852f5da53f\r\n"
|
99
|
-
-> "Content-Language: *\r\n"
|
100
|
-
-> "Content-Length: 1556\r\n"
|
101
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1859420501; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
102
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
103
|
-
-> "Vary: Authorization\r\n"
|
104
|
-
-> "Connection: close\r\n"
|
105
|
-
-> "Content-Type: application/json\r\n"
|
106
|
-
-> "\r\n"
|
107
|
-
reading 1556 bytes...
|
108
|
-
-> "{\"id\":\"PAY-1L064882YM848125EKWA2KNY\",\"create_time\":\"2015-06-17T16:49:59Z\",\"update_time\":\"2015-06-17T16:50:01Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581a536538b2\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"84X3439975017913M\",\"create_time\":\"2015-06-17T16:49:59Z\",\"update_time\":\"2015-06-17T16:50:01Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-1L064882YM848125EKWA2KNY\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/84X3439975017913M\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/84X3439975017913M/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1L064882YM848125EKWA2KNY\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1L064882YM848125EKWA2KNY\",\"rel\":\"self\",\"method\":\"GET\"}]}"
|
109
|
-
read 1556 bytes
|
110
|
-
Conn close
|
111
|
-
opening connection to api.sandbox.paypal.com:443...
|
112
|
-
opened
|
113
|
-
starting SSL for api.sandbox.paypal.com:443...
|
114
|
-
SSL established
|
115
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: de7dec6c-fd77-459d-9a23-c412f995adc2\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 2\r\n\r\n"
|
116
|
-
<- "{}"
|
117
|
-
-> "HTTP/1.1 400 Bad Request\r\n"
|
118
|
-
-> "Date: Wed, 17 Jun 2015 20:11:27 GMT\r\n"
|
119
|
-
-> "Server: Apache\r\n"
|
120
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=204826\r\n"
|
121
|
-
-> "Paypal-Debug-Id: fffd0333dbfd5\r\n"
|
122
|
-
-> "Content-Language: *\r\n"
|
123
|
-
-> "Connection: close\r\n"
|
124
|
-
-> "Connection: close\r\n"
|
125
|
-
-> "Content-Length: 306\r\n"
|
126
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1876197717; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
127
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
128
|
-
-> "Vary: Authorization\r\n"
|
129
|
-
-> "Content-Type: application/json\r\n"
|
130
|
-
-> "\r\n"
|
131
|
-
reading 306 bytes...
|
132
|
-
-> "{\"name\":\"VALIDATION_ERROR\",\"details\":[{\"field\":\"intent\",\"issue\":\"Required field missing\"},{\"field\":\"payer\",\"issue\":\"Required field missing\"}],\"message\":\"Invalid request - see details\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#VALIDATION_ERROR\",\"debug_id\":\"fffd0333dbfd5\"}"
|
133
|
-
read 306 bytes
|
134
|
-
Conn close
|
135
|
-
opening connection to api.sandbox.paypal.com:443...
|
136
|
-
opened
|
137
|
-
starting SSL for api.sandbox.paypal.com:443...
|
138
|
-
SSL established
|
139
|
-
<- "GET /v1/payments/payment/Invalid HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
140
|
-
-> "HTTP/1.1 404 Not Found\r\n"
|
141
|
-
-> "Date: Wed, 17 Jun 2015 20:11:29 GMT\r\n"
|
30
|
+
-> "Date: Mon, 29 Jun 2015 00:16:47 GMT\r\n"
|
142
31
|
-> "Server: Apache\r\n"
|
143
|
-
-> "PROXY_SERVER_INFO: host=
|
144
|
-
-> "Paypal-Debug-Id:
|
32
|
+
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=528494\r\n"
|
33
|
+
-> "Paypal-Debug-Id: 655c05e28d8fa\r\n"
|
145
34
|
-> "Content-Language: *\r\n"
|
146
|
-
-> "Content-Length:
|
147
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%
|
148
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
149
|
-
-> "Vary: Authorization\r\n"
|
150
|
-
-> "Connection: close\r\n"
|
151
|
-
-> "Content-Type: application/json\r\n"
|
152
|
-
-> "\r\n"
|
153
|
-
reading 207 bytes...
|
154
|
-
-> "{\"name\":\"INVALID_RESOURCE_ID\",\"message\":\"The requested resource ID was not found\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID\",\"debug_id\":\"02b24159db056\"}"
|
155
|
-
read 207 bytes
|
156
|
-
Conn close
|
157
|
-
opening connection to api.sandbox.paypal.com:443...
|
158
|
-
opened
|
159
|
-
starting SSL for api.sandbox.paypal.com:443...
|
160
|
-
SSL established
|
161
|
-
<- "GET /v1/payments/payment?count=1 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer ExpiredA015HHkSlZUmJlc4CzvCpL5xjeqPY-KteqkQLrnWoUy7AaY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
162
|
-
-> "HTTP/1.1 401 Unauthorized\r\n"
|
163
|
-
-> "Date: Wed, 17 Jun 2015 20:11:30 GMT\r\n"
|
164
|
-
-> "Server: Apache\r\n"
|
165
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=27110\r\n"
|
166
|
-
-> "Paypal-Debug-Id: 653102f2db7ab\r\n"
|
167
|
-
-> "Content-Length: 0\r\n"
|
168
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1926529365; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
35
|
+
-> "Content-Length: 650\r\n"
|
36
|
+
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1871614037; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
169
37
|
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
170
38
|
-> "Vary: Authorization\r\n"
|
171
39
|
-> "Connection: close\r\n"
|
172
40
|
-> "Content-Type: application/json\r\n"
|
173
41
|
-> "\r\n"
|
174
|
-
reading
|
175
|
-
-> ""
|
176
|
-
read
|
42
|
+
reading 650 bytes...
|
43
|
+
-> "{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}"
|
44
|
+
read 650 bytes
|
177
45
|
Conn close
|
178
46
|
opening connection to api.sandbox.paypal.com:443...
|
179
47
|
opened
|
180
48
|
starting SSL for api.sandbox.paypal.com:443...
|
181
49
|
SSL established
|
182
|
-
<- "GET /v1/
|
50
|
+
<- "GET /v1/notifications/webhooks HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
183
51
|
-> "HTTP/1.1 200 OK\r\n"
|
184
|
-
-> "Date:
|
52
|
+
-> "Date: Mon, 29 Jun 2015 00:16:48 GMT\r\n"
|
185
53
|
-> "Server: Apache\r\n"
|
186
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=
|
187
|
-
-> "Paypal-Debug-Id:
|
54
|
+
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=600\r\n"
|
55
|
+
-> "Paypal-Debug-Id: 666c52848db49\r\n"
|
188
56
|
-> "Content-Language: *\r\n"
|
189
|
-
-> "Content-Length:
|
190
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%
|
57
|
+
-> "Content-Length: 1311\r\n"
|
58
|
+
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1888391253; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
191
59
|
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
192
60
|
-> "Vary: Authorization\r\n"
|
193
61
|
-> "Connection: close\r\n"
|
194
62
|
-> "Content-Type: application/json\r\n"
|
195
63
|
-> "\r\n"
|
196
|
-
reading
|
197
|
-
-> "{\"
|
198
|
-
read
|
64
|
+
reading 1311 bytes...
|
65
|
+
-> "{\"webhooks\":[{\"id\":\"8VM94926UH399150D\",\"url\":\"https://requestb.in/10ujt3c1?uniqid=558f54001056e\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"delete\",\"method\":\"DELETE\"}]},{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}]}"
|
66
|
+
read 1311 bytes
|
199
67
|
Conn close
|
200
68
|
opening connection to api.sandbox.paypal.com:443...
|
201
69
|
opened
|
202
70
|
starting SSL for api.sandbox.paypal.com:443...
|
203
71
|
SSL established
|
204
|
-
<- "
|
205
|
-
<- "{\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
206
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
207
|
-
-> "Date: Wed, 17 Jun 2015 20:11:35 GMT\r\n"
|
208
|
-
-> "Server: Apache\r\n"
|
209
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=208333\r\n"
|
210
|
-
-> "Paypal-Debug-Id: 15de632ed9e0c\r\n"
|
211
|
-
-> "Connection: close\r\n"
|
212
|
-
-> "Content-Length: 145\r\n"
|
213
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D2010415445; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
214
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
215
|
-
-> "Vary: Authorization\r\n"
|
216
|
-
-> "Content-Type: application/json\r\n"
|
217
|
-
-> "\r\n"
|
218
|
-
reading 145 bytes...
|
219
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"15de632ed9e0c\"}"
|
220
|
-
read 145 bytes
|
221
|
-
Conn close
|
222
|
-
opening connection to api.sandbox.paypal.com:443...
|
223
|
-
opened
|
224
|
-
starting SSL for api.sandbox.paypal.com:443...
|
225
|
-
SSL established
|
226
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: b403c5b5-0cb1-4249-8995-f293afcec1e7\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 473\r\n\r\n"
|
227
|
-
<- "{\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
228
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
229
|
-
-> "Date: Wed, 17 Jun 2015 20:12:06 GMT\r\n"
|
230
|
-
-> "Server: Apache\r\n"
|
231
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=207623\r\n"
|
232
|
-
-> "Paypal-Debug-Id: 1e0f54f2e075b\r\n"
|
233
|
-
-> "Connection: close\r\n"
|
234
|
-
-> "Content-Length: 145\r\n"
|
235
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D2530509141; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
236
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
237
|
-
-> "Vary: Authorization\r\n"
|
238
|
-
-> "Content-Type: application/json\r\n"
|
239
|
-
-> "\r\n"
|
240
|
-
reading 145 bytes...
|
241
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"1e0f54f2e075b\"}"
|
242
|
-
read 145 bytes
|
243
|
-
Conn close
|
244
|
-
opening connection to api.sandbox.paypal.com:443...
|
245
|
-
opened
|
246
|
-
starting SSL for api.sandbox.paypal.com:443...
|
247
|
-
SSL established
|
248
|
-
<- "GET /v1/payments/orders/O-2HT09787H36911800 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
72
|
+
<- "GET /v1/notifications/webhooks/50T98599JH617711K/event-types HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
249
73
|
-> "HTTP/1.1 200 OK\r\n"
|
250
|
-
-> "Date:
|
74
|
+
-> "Date: Mon, 29 Jun 2015 00:16:49 GMT\r\n"
|
251
75
|
-> "Server: Apache\r\n"
|
252
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=
|
253
|
-
-> "Paypal-Debug-Id:
|
76
|
+
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=526559\r\n"
|
77
|
+
-> "Paypal-Debug-Id: 748c1aeb8d5ba\r\n"
|
254
78
|
-> "Content-Language: *\r\n"
|
255
|
-
-> "Content-Length:
|
256
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%
|
79
|
+
-> "Content-Length: 201\r\n"
|
80
|
+
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1905168469; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
257
81
|
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
258
82
|
-> "Vary: Authorization\r\n"
|
259
83
|
-> "Connection: close\r\n"
|
260
84
|
-> "Content-Type: application/json\r\n"
|
261
85
|
-> "\r\n"
|
262
|
-
reading
|
263
|
-
-> "{\"
|
264
|
-
read
|
86
|
+
reading 201 bytes...
|
87
|
+
-> "{\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}]}"
|
88
|
+
read 201 bytes
|
265
89
|
Conn close
|
266
90
|
opening connection to api.sandbox.paypal.com:443...
|
267
91
|
opened
|
268
92
|
starting SSL for api.sandbox.paypal.com:443...
|
269
93
|
SSL established
|
270
|
-
<- "
|
271
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
272
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
273
|
-
-> "Date: Wed, 17 Jun 2015 20:12:37 GMT\r\n"
|
274
|
-
-> "Server: Apache\r\n"
|
275
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=29832\r\n"
|
276
|
-
-> "Paypal-Debug-Id: 30559063e8e98\r\n"
|
277
|
-
-> "Connection: close\r\n"
|
278
|
-
-> "Content-Length: 145\r\n"
|
279
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D3050602837; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
280
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
281
|
-
-> "Vary: Authorization\r\n"
|
282
|
-
-> "Content-Type: application/json\r\n"
|
283
|
-
-> "\r\n"
|
284
|
-
reading 145 bytes...
|
285
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"30559063e8e98\"}"
|
286
|
-
read 145 bytes
|
287
|
-
Conn close
|
288
|
-
opening connection to api.sandbox.paypal.com:443...
|
289
|
-
opened
|
290
|
-
starting SSL for api.sandbox.paypal.com:443...
|
291
|
-
SSL established
|
292
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: fbb23612-c816-466e-b2c0-a4f5743c90a0\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 478\r\n\r\n"
|
293
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
294
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
295
|
-
-> "Date: Wed, 17 Jun 2015 20:13:08 GMT\r\n"
|
296
|
-
-> "Server: Apache\r\n"
|
297
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=56508\r\n"
|
298
|
-
-> "Paypal-Debug-Id: aaf9158af337f\r\n"
|
299
|
-
-> "Connection: close\r\n"
|
300
|
-
-> "Content-Length: 145\r\n"
|
301
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D3570696533; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
302
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
303
|
-
-> "Vary: Authorization\r\n"
|
304
|
-
-> "Content-Type: application/json\r\n"
|
305
|
-
-> "\r\n"
|
306
|
-
reading 145 bytes...
|
307
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"aaf9158af337f\"}"
|
308
|
-
read 145 bytes
|
309
|
-
Conn close
|
310
|
-
opening connection to api.sandbox.paypal.com:443...
|
311
|
-
opened
|
312
|
-
starting SSL for api.sandbox.paypal.com:443...
|
313
|
-
SSL established
|
314
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 18a4f81f-39ad-4134-88fa-a8b1f716b350\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 478\r\n\r\n"
|
315
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
316
|
-
-> "HTTP/1.1 503 Service Unavailable\r\n"
|
317
|
-
-> "Date: Wed, 17 Jun 2015 20:13:39 GMT\r\n"
|
318
|
-
-> "Server: Apache\r\n"
|
319
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=205628\r\n"
|
320
|
-
-> "Paypal-Debug-Id: fde8c434fba7e\r\n"
|
321
|
-
-> "Connection: close\r\n"
|
322
|
-
-> "Content-Length: 145\r\n"
|
323
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D4090790229; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
324
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
325
|
-
-> "Vary: Authorization\r\n"
|
326
|
-
-> "Content-Type: application/json\r\n"
|
327
|
-
-> "\r\n"
|
328
|
-
reading 145 bytes...
|
329
|
-
-> "{\"name\":\"INTERNAL_SERVICE_ERROR\",\"information_link\":\"https://api.sandbox.paypal.com/docs/api/#INTERNAL_SERVICE_ERROR\",\"debug_id\":\"fde8c434fba7e\"}"
|
330
|
-
read 145 bytes
|
331
|
-
Conn close
|
332
|
-
opening connection to api.sandbox.paypal.com:443...
|
333
|
-
opened
|
334
|
-
starting SSL for api.sandbox.paypal.com:443...
|
335
|
-
SSL established
|
336
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 6afb668d-2740-44a9-9f0d-bba5b9dc9311\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 478\r\n\r\n"
|
337
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
338
|
-
-> "HTTP/1.1 400 Bad Request\r\n"
|
339
|
-
-> "Date: Wed, 17 Jun 2015 20:14:10 GMT\r\n"
|
340
|
-
-> "Server: Apache\r\n"
|
341
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=27084\r\n"
|
342
|
-
-> "Paypal-Debug-Id: 7de59c0202387\r\n"
|
343
|
-
-> "Content-Language: *\r\n"
|
344
|
-
-> "Connection: close\r\n"
|
345
|
-
-> "Connection: close\r\n"
|
346
|
-
-> "Content-Length: 185\r\n"
|
347
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D315982165; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
348
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
349
|
-
-> "Vary: Authorization\r\n"
|
350
|
-
-> "Content-Type: application/json\r\n"
|
351
|
-
-> "\r\n"
|
352
|
-
reading 185 bytes...
|
353
|
-
-> "{\"name\":\"UNKNOWN_ERROR\",\"message\":\"An unknown error has occurred\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#UNKNOWN_ERROR\",\"debug_id\":\"7de59c0202387\"}"
|
354
|
-
read 185 bytes
|
355
|
-
Conn close
|
356
|
-
opening connection to api.sandbox.paypal.com:443...
|
357
|
-
opened
|
358
|
-
starting SSL for api.sandbox.paypal.com:443...
|
359
|
-
SSL established
|
360
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 5a2d0e01-cdf3-4265-826e-b4bb937b6c98\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 478\r\n\r\n"
|
361
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
362
|
-
-> "HTTP/1.1 400 Bad Request\r\n"
|
363
|
-
-> "Date: Wed, 17 Jun 2015 20:14:22 GMT\r\n"
|
364
|
-
-> "Server: Apache\r\n"
|
365
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=393\r\n"
|
366
|
-
-> "Paypal-Debug-Id: 4763000c01268\r\n"
|
367
|
-
-> "Content-Language: *\r\n"
|
368
|
-
-> "Connection: close\r\n"
|
369
|
-
-> "Connection: close\r\n"
|
370
|
-
-> "Content-Length: 185\r\n"
|
371
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D517308757; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
372
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
373
|
-
-> "Vary: Authorization\r\n"
|
374
|
-
-> "Content-Type: application/json\r\n"
|
375
|
-
-> "\r\n"
|
376
|
-
reading 185 bytes...
|
377
|
-
-> "{\"name\":\"UNKNOWN_ERROR\",\"message\":\"An unknown error has occurred\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#UNKNOWN_ERROR\",\"debug_id\":\"4763000c01268\"}"
|
378
|
-
read 185 bytes
|
379
|
-
Conn close
|
380
|
-
opening connection to api.sandbox.paypal.com:443...
|
381
|
-
opened
|
382
|
-
starting SSL for api.sandbox.paypal.com:443...
|
383
|
-
SSL established
|
384
|
-
<- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 01d61ec9-50a7-49ef-9bb3-bac4e8c24c4e\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 478\r\n\r\n"
|
385
|
-
<- "{\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}}]},\"transactions\":[{\"amount\":{\"currency\":\"USD\",\"total\":\"1.00\"},\"description\":\"This is the payment transaction description.\"}]}"
|
386
|
-
-> "HTTP/1.1 400 Bad Request\r\n"
|
387
|
-
-> "Date: Wed, 17 Jun 2015 20:14:34 GMT\r\n"
|
388
|
-
-> "Server: Apache\r\n"
|
389
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=205641\r\n"
|
390
|
-
-> "Paypal-Debug-Id: dde28a5a0c370\r\n"
|
391
|
-
-> "Content-Language: *\r\n"
|
392
|
-
-> "Connection: close\r\n"
|
393
|
-
-> "Connection: close\r\n"
|
394
|
-
-> "Content-Length: 185\r\n"
|
395
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D718635349; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
396
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
397
|
-
-> "Vary: Authorization\r\n"
|
398
|
-
-> "Content-Type: application/json\r\n"
|
399
|
-
-> "\r\n"
|
400
|
-
reading 185 bytes...
|
401
|
-
-> "{\"name\":\"UNKNOWN_ERROR\",\"message\":\"An unknown error has occurred\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#UNKNOWN_ERROR\",\"debug_id\":\"dde28a5a0c370\"}"
|
402
|
-
read 185 bytes
|
403
|
-
Conn close
|
404
|
-
opening connection to api.sandbox.paypal.com:443...
|
405
|
-
opened
|
406
|
-
starting SSL for api.sandbox.paypal.com:443...
|
407
|
-
SSL established
|
408
|
-
<- "POST /v1/vault/credit-cards HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: cef03a78-5511-48cc-988f-14166c952be0\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 251\r\n\r\n"
|
409
|
-
<- "{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018,\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"country_code\":\"US\",\"postal_code\":\"43210\",\"state\":\"OH\"}}"
|
410
|
-
-> "HTTP/1.1 201 Created\r\n"
|
411
|
-
-> "Date: Wed, 17 Jun 2015 20:14:47 GMT\r\n"
|
412
|
-
-> "Server: Apache\r\n"
|
413
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=14776\r\n"
|
414
|
-
-> "Paypal-Debug-Id: 17fb99800b284\r\n"
|
415
|
-
-> "Content-Language: *\r\n"
|
416
|
-
-> "Content-Length: 787\r\n"
|
417
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D936739157; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
418
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
419
|
-
-> "Vary: Authorization\r\n"
|
420
|
-
-> "Connection: close\r\n"
|
421
|
-
-> "Content-Type: application/json\r\n"
|
422
|
-
-> "\r\n"
|
423
|
-
reading 787 bytes...
|
424
|
-
-> "{\"id\":\"CARD-1CM385517H585641GKWA5KNY\",\"state\":\"ok\",\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx0331\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"state\":\"OH\",\"postal_code\":\"43210\",\"country_code\":\"US\"},\"valid_until\":\"2018-06-16T00:00:00Z\",\"create_time\":\"2015-06-17T20:14:47Z\",\"update_time\":\"2015-06-17T20:14:47Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"delete\",\"method\":\"DELETE\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"patch\",\"method\":\"PATCH\"}]}"
|
425
|
-
read 787 bytes
|
426
|
-
Conn close
|
427
|
-
opening connection to api.sandbox.paypal.com:443...
|
428
|
-
opened
|
429
|
-
starting SSL for api.sandbox.paypal.com:443...
|
430
|
-
SSL established
|
431
|
-
<- "GET /v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
432
|
-
-> "HTTP/1.1 200 OK\r\n"
|
433
|
-
-> "Date: Wed, 17 Jun 2015 20:14:47 GMT\r\n"
|
434
|
-
-> "Server: Apache\r\n"
|
435
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=27095\r\n"
|
436
|
-
-> "Paypal-Debug-Id: 235fdf1708f2e\r\n"
|
437
|
-
-> "Content-Language: *\r\n"
|
438
|
-
-> "Content-Length: 787\r\n"
|
439
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D936739157; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
440
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
441
|
-
-> "Vary: Authorization\r\n"
|
442
|
-
-> "Connection: close\r\n"
|
443
|
-
-> "Content-Type: application/json\r\n"
|
444
|
-
-> "\r\n"
|
445
|
-
reading 787 bytes...
|
446
|
-
-> "{\"id\":\"CARD-1CM385517H585641GKWA5KNY\",\"state\":\"ok\",\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx0331\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"state\":\"OH\",\"postal_code\":\"43210\",\"country_code\":\"US\"},\"valid_until\":\"2018-06-16T00:00:00Z\",\"create_time\":\"2015-06-17T20:14:47Z\",\"update_time\":\"2015-06-17T20:14:47Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"delete\",\"method\":\"DELETE\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-1CM385517H585641GKWA5KNY\",\"rel\":\"patch\",\"method\":\"PATCH\"}]}"
|
447
|
-
read 787 bytes
|
448
|
-
Conn close
|
449
|
-
opening connection to api.sandbox.paypal.com:443...
|
450
|
-
opened
|
451
|
-
starting SSL for api.sandbox.paypal.com:443...
|
452
|
-
SSL established
|
453
|
-
<- "POST /v1/vault/credit-cards HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 4efb1026-492e-4244-874a-0298f81c841f\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 80\r\n\r\n"
|
454
|
-
<- "{\"number\":\"4417119669820331\",\"type\":\"visa\",\"expire_month\":11,\"expire_year\":2018}"
|
455
|
-
-> "HTTP/1.1 201 Created\r\n"
|
456
|
-
-> "Date: Wed, 17 Jun 2015 20:14:48 GMT\r\n"
|
457
|
-
-> "Server: Apache\r\n"
|
458
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=29379\r\n"
|
459
|
-
-> "Paypal-Debug-Id: d224a66908bb0\r\n"
|
460
|
-
-> "Content-Language: *\r\n"
|
461
|
-
-> "Content-Length: 629\r\n"
|
462
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D953516373; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
463
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
464
|
-
-> "Vary: Authorization\r\n"
|
465
|
-
-> "Connection: close\r\n"
|
466
|
-
-> "Content-Type: application/json\r\n"
|
467
|
-
-> "\r\n"
|
468
|
-
reading 629 bytes...
|
469
|
-
-> "{\"id\":\"CARD-6XM88206FX669024YKWA5KOA\",\"state\":\"ok\",\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx0331\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"valid_until\":\"2018-06-16T00:00:00Z\",\"create_time\":\"2015-06-17T20:14:48Z\",\"update_time\":\"2015-06-17T20:14:48Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-6XM88206FX669024YKWA5KOA\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-6XM88206FX669024YKWA5KOA\",\"rel\":\"delete\",\"method\":\"DELETE\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-cards/CARD-6XM88206FX669024YKWA5KOA\",\"rel\":\"patch\",\"method\":\"PATCH\"}]}"
|
470
|
-
read 629 bytes
|
471
|
-
Conn close
|
472
|
-
opening connection to api.sandbox.paypal.com:443...
|
473
|
-
opened
|
474
|
-
starting SSL for api.sandbox.paypal.com:443...
|
475
|
-
SSL established
|
476
|
-
<- "DELETE /v1/vault/credit-cards/CARD-6XM88206FX669024YKWA5KOA HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
94
|
+
<- "DELETE /v1/notifications/webhooks/50T98599JH617711K HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
|
477
95
|
-> "HTTP/1.1 204 No Content\r\n"
|
478
|
-
-> "Date:
|
96
|
+
-> "Date: Mon, 29 Jun 2015 00:16:49 GMT\r\n"
|
479
97
|
-> "Server: Apache\r\n"
|
480
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=
|
481
|
-
-> "Paypal-Debug-Id:
|
98
|
+
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=624\r\n"
|
99
|
+
-> "Paypal-Debug-Id: 594920158d7fe\r\n"
|
482
100
|
-> "Content-Language: *\r\n"
|
483
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%
|
101
|
+
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1905168469; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
484
102
|
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
485
103
|
-> "Vary: Authorization\r\n"
|
486
104
|
-> "Connection: close\r\n"
|
487
105
|
-> "Content-Type: text/plain; charset=ISO-8859-1\r\n"
|
488
106
|
-> "\r\n"
|
489
107
|
Conn close
|
490
|
-
opening connection to api.sandbox.paypal.com:443...
|
491
|
-
opened
|
492
|
-
starting SSL for api.sandbox.paypal.com:443...
|
493
|
-
SSL established
|
494
|
-
<- "POST /v1/vault/credit-cards HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A0152gtigi4qv0lFob0S8hbXow3DGalNrlwWUZm4eK5TZuY\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 2c6472a5-714e-4eb4-984f-d666404c313d\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 43\r\n\r\n"
|
495
|
-
<- "{\"number\":\"4111111111111111\",\"type\":\"visa\"}"
|
496
|
-
-> "HTTP/1.1 400 Bad Request\r\n"
|
497
|
-
-> "Date: Wed, 17 Jun 2015 20:14:49 GMT\r\n"
|
498
|
-
-> "Server: Apache\r\n"
|
499
|
-
-> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=143967\r\n"
|
500
|
-
-> "Paypal-Debug-Id: bab11b63084c7\r\n"
|
501
|
-
-> "Content-Language: *\r\n"
|
502
|
-
-> "Connection: close\r\n"
|
503
|
-
-> "Connection: close\r\n"
|
504
|
-
-> "Content-Length: 300\r\n"
|
505
|
-
-> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D970293589; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
|
506
|
-
-> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
|
507
|
-
-> "Vary: Authorization\r\n"
|
508
|
-
-> "Content-Type: application/json\r\n"
|
509
|
-
-> "\r\n"
|
510
|
-
reading 300 bytes...
|
511
|
-
-> "{\"name\":\"VALIDATION_ERROR\",\"details\":[{\"field\":\"expire_year\",\"issue\":\"Required field missing\"},{\"field\":\"expire_month\",\"issue\":\"Required field missing\"}],\"message\":\"Invalid request - see details\",\"information_link\":\"https://developer.paypal.com/docs/api/#VALIDATION_ERROR\",\"debug_id\":\"bab11b63084c7\"}"
|
512
|
-
read 300 bytes
|
513
|
-
Conn close
|
@@ -15,28 +15,70 @@ describe "Webhooks", :integration => true do
|
|
15
15
|
]
|
16
16
|
}
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
describe "Notifications" do
|
19
|
+
it "create webhook" do
|
20
|
+
$webhook = PayPal::SDK::REST::Webhook.new(webhookAttributes)
|
21
|
+
expect($webhook.create).to be_truthy
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
it "get webhook" do
|
25
|
+
$result = PayPal::SDK::REST::Webhook.get($webhook.id)
|
26
|
+
expect($result).to be_a PayPal::SDK::REST::Webhook
|
27
|
+
expect($result.id).to eql $webhook.id
|
28
|
+
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
it "get all webhooks" do
|
31
|
+
$webhooks_list = PayPal::SDK::REST::Webhook.all()
|
32
|
+
expect($webhooks_list.webhooks.length).not_to be_nil
|
33
|
+
end
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
35
|
+
it "get subscribed webhook event types" do
|
36
|
+
$webhook_event_types = PayPal::SDK::REST::Webhook.get_event_types($webhook.id)
|
37
|
+
expect($webhook_event_types.event_types.length).to eql $webhook.event_types.length
|
38
|
+
end
|
39
|
+
|
40
|
+
it "delete webhook" do
|
41
|
+
expect($webhook.delete).to be_truthy
|
42
|
+
end
|
37
43
|
end
|
38
44
|
|
39
|
-
|
40
|
-
|
45
|
+
describe "Validation" do
|
46
|
+
|
47
|
+
transmission_id = "dfb3be50-fd74-11e4-8bf3-77339302725b"
|
48
|
+
timestamp = "2015-05-18T15:45:13Z"
|
49
|
+
webhook_id = "4JH86294D6297924G"
|
50
|
+
actual_signature = "thy4/U002quzxFavHPwbfJGcc46E8rc5jzgyeafWm5mICTBdY/8rl7WJpn8JA0GKA+oDTPsSruqusw+XXg5RLAP7ip53Euh9Xu3UbUhQFX7UgwzE2FeYoY6lyRMiiiQLzy9BvHfIzNIVhPad4KnC339dr6y2l+mN8ALgI4GCdIh3/SoJO5wE64Bh/ueWtt8EVuvsvXfda2Le5a2TrOI9vLEzsm9GS79hAR/5oLexNz8UiZr045Mr5ObroH4w4oNfmkTaDk9Rj0G19uvISs5QzgmBpauKr7Nw++JI0pr/v5mFctQkoWJSGfBGzPRXawrvIIVHQ9Wer48GR2g9ZiApWg=="
|
51
|
+
event_body = '{"id":"WH-0G2756385H040842W-5Y612302CV158622M","create_time":"2015-05-18T15:45:13Z","resource_type":"sale","event_type":"PAYMENT.SALE.COMPLETED","summary":"Payment completed for $ 20.0 USD","resource":{"id":"4EU7004268015634R","create_time":"2015-05-18T15:44:02Z","update_time":"2015-05-18T15:44:21Z","amount":{"total":"20.00","currency":"USD"},"payment_mode":"INSTANT_TRANSFER","state":"completed","protection_eligibility":"ELIGIBLE","protection_eligibility_type":"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE","parent_payment":"PAY-86C81811X5228590KKVNARQQ","transaction_fee":{"value":"0.88","currency":"USD"},"links":[{"href":"https://api.sandbox.paypal.com/v1/payments/sale/4EU7004268015634R","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/payments/sale/4EU7004268015634R/refund","rel":"refund","method":"POST"},{"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-86C81811X5228590KKVNARQQ","rel":"parent_payment","method":"GET"}]},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-0G2756385H040842W-5Y612302CV158622M","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-0G2756385H040842W-5Y612302CV158622M/resend","rel":"resend","method":"POST"}]}'
|
52
|
+
cert_url = "https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-a5cafa77"
|
53
|
+
cert = PayPal::SDK::REST::WebhookEvent.get_cert(cert_url)
|
54
|
+
|
55
|
+
it "verify common name" do
|
56
|
+
cert = PayPal::SDK::REST::WebhookEvent.get_cert(cert_url)
|
57
|
+
valid = PayPal::SDK::REST::WebhookEvent.verify_common_name(cert)
|
58
|
+
expect(valid).to be_truthy
|
59
|
+
end
|
60
|
+
|
61
|
+
it "verify get expected signature" do
|
62
|
+
expected_sig = PayPal::SDK::REST::WebhookEvent.get_expected_sig(transmission_id, timestamp, webhook_id, event_body)
|
63
|
+
expect(expected_sig).eql?("dfb3be50-fd74-11e4-8bf3-77339302725b|2015-05-18T15:45:13Z|4JH86294D6297924G|2771810304")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "verify expiry" do
|
67
|
+
valid = PayPal::SDK::REST::WebhookEvent.verify_expiration(cert)
|
68
|
+
expect(valid).to be_truthy
|
69
|
+
end
|
70
|
+
|
71
|
+
it "verify cert chain" do
|
72
|
+
cert_store = PayPal::SDK::REST::WebhookEvent.get_cert_chain
|
73
|
+
valid = PayPal::SDK::REST::WebhookEvent.verify_cert_chain(cert_store, cert)
|
74
|
+
expect(valid).to be_truthy
|
75
|
+
end
|
76
|
+
|
77
|
+
it "verify" do
|
78
|
+
valid = PayPal::SDK::REST::WebhookEvent.verify(transmission_id, timestamp, webhook_id, event_body, cert_url, actual_signature)
|
79
|
+
expect(valid).to be_truthy
|
80
|
+
end
|
41
81
|
end
|
82
|
+
|
83
|
+
|
42
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paypal-sdk-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- PayPal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|
@@ -77,6 +77,8 @@ files:
|
|
77
77
|
- Gemfile
|
78
78
|
- README.md
|
79
79
|
- Rakefile
|
80
|
+
- data/DigiCertHighAssuranceEVRootCA.pem
|
81
|
+
- data/DigiCertSHA2ExtendedValidationServerCA.pem
|
80
82
|
- data/paypal.crt
|
81
83
|
- lib/generators/paypal/sdk/USAGE
|
82
84
|
- lib/generators/paypal/sdk/install_generator.rb
|