didil-paypal-recurring 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +46 -0
- data/README.rdoc +144 -0
- data/Rakefile +5 -0
- data/docs/PP_NVPAPI_DeveloperGuide.pdf +0 -0
- data/docs/PP_WPP_IntegrationGuide.pdf +0 -0
- data/lib/paypal-recurring.rb +1 -0
- data/lib/paypal/recurring.rb +110 -0
- data/lib/paypal/recurring/base.rb +286 -0
- data/lib/paypal/recurring/cacert.pem +3987 -0
- data/lib/paypal/recurring/notification.rb +84 -0
- data/lib/paypal/recurring/request.rb +211 -0
- data/lib/paypal/recurring/response.rb +29 -0
- data/lib/paypal/recurring/response/base.rb +62 -0
- data/lib/paypal/recurring/response/checkout.rb +11 -0
- data/lib/paypal/recurring/response/details.rb +26 -0
- data/lib/paypal/recurring/response/manage_profile.rb +12 -0
- data/lib/paypal/recurring/response/payment.rb +24 -0
- data/lib/paypal/recurring/response/profile.rb +71 -0
- data/lib/paypal/recurring/response/refund.rb +23 -0
- data/lib/paypal/recurring/utils.rb +26 -0
- data/lib/paypal/recurring/version.rb +10 -0
- data/paypal-recurring.gemspec +27 -0
- data/spec/fixtures/checkout/failure.yml +38 -0
- data/spec/fixtures/checkout/success.yml +38 -0
- data/spec/fixtures/create_profile/failure.yml +38 -0
- data/spec/fixtures/create_profile/success.yml +38 -0
- data/spec/fixtures/details/cancelled.yml +38 -0
- data/spec/fixtures/details/failure.yml +38 -0
- data/spec/fixtures/details/success.yml +38 -0
- data/spec/fixtures/ipn/express_checkout.json +35 -0
- data/spec/fixtures/ipn/recurring_payment.json +44 -0
- data/spec/fixtures/ipn/recurring_payment_profile_created.json +31 -0
- data/spec/fixtures/ipn/recurring_payment_profile_created_with_initial_amount.json +33 -0
- data/spec/fixtures/ipn/recurring_payment_skipped.json +30 -0
- data/spec/fixtures/ipn/recurring_payment_with_initial_amount.json +44 -0
- data/spec/fixtures/notification/failure.yml +50 -0
- data/spec/fixtures/notification/success.yml +50 -0
- data/spec/fixtures/payment/failure.yml +38 -0
- data/spec/fixtures/payment/success.yml +38 -0
- data/spec/fixtures/profile/cancel/failure.yml +38 -0
- data/spec/fixtures/profile/cancel/success.yml +38 -0
- data/spec/fixtures/profile/failure.yml +38 -0
- data/spec/fixtures/profile/reactivate/failure.yml +38 -0
- data/spec/fixtures/profile/reactivate/success.yml +38 -0
- data/spec/fixtures/profile/success.yml +38 -0
- data/spec/fixtures/profile/suspend/failure.yml +38 -0
- data/spec/fixtures/profile/suspend/success.yml +38 -0
- data/spec/fixtures/refund/failure.yml +38 -0
- data/spec/fixtures/refund/success.yml +38 -0
- data/spec/fixtures/update_profile/failure.yml +38 -0
- data/spec/fixtures/update_profile/profile.yml +38 -0
- data/spec/fixtures/update_profile/success.yml +38 -0
- data/spec/paypal/notification_spec.rb +106 -0
- data/spec/paypal/recurring_spec.rb +81 -0
- data/spec/paypal/request_spec.rb +136 -0
- data/spec/paypal/response/base_spec.rb +19 -0
- data/spec/paypal/response/checkout_details_spec.rb +50 -0
- data/spec/paypal/response/checkout_spec.rb +32 -0
- data/spec/paypal/response/create_recurring_profile_spec.rb +41 -0
- data/spec/paypal/response/manage_profile_spec.rb +62 -0
- data/spec/paypal/response/profile_spec.rb +43 -0
- data/spec/paypal/response/refund_spec.rb +33 -0
- data/spec/paypal/response/request_payment_spec.rb +35 -0
- data/spec/paypal/response/update_recurring_profile_spec.rb +48 -0
- data/spec/spec_helper.rb +27 -0
- metadata +209 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&PROFILEID=invalid&METHOD=GetRecurringPaymentsProfileDetails
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:04:16 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '254'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=invalid&TIMESTAMP=2012%2d04%2d23T04%3a04%3a16Z&CORRELATIONID=ba85c84dacdef&ACK=Failure&VERSION=72%2e0&BUILD=2764190&L_ERRORCODE0=11552&L_SHORTMESSAGE0=Invalid%20profile%20ID&L_LONGMESSAGE0=The%20profile%20ID%20is%20invalid&L_SEVERITYCODE0=Error
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:04:17 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&ACTION=Reactivate&PROFILEID=I-W4FNTE6EXJ2W&METHOD=ManageRecurringPaymentsProfileStatus
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:00:29 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '367'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: TIMESTAMP=2012%2d04%2d23T04%3a00%3a31Z&CORRELATIONID=2ddcc75ddcad1&ACK=Failure&VERSION=72%2e0&BUILD=2764190&L_ERRORCODE0=11558&L_SHORTMESSAGE0=Invalid%20profile%20status%20for%20reactivate%20action%3b%20profile%20should%20be%20suspended&L_LONGMESSAGE0=Invalid%20profile%20status%20for%20reactivate%20action%3b%20profile%20should%20be%20suspended&L_SEVERITYCODE0=Error
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:00:31 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&ACTION=Reactivate&PROFILEID=I-W4FNTE6EXJ2W&METHOD=ManageRecurringPaymentsProfileStatus
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:00:22 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '134'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2dW4FNTE6EXJ2W&TIMESTAMP=2012%2d04%2d23T04%3a00%3a25Z&CORRELATIONID=77bc3271b82a8&ACK=Success&VERSION=72%2e0&BUILD=2764190
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:00:26 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&PROFILEID=I-W4FNTE6EXJ2W&METHOD=GetRecurringPaymentsProfileDetails
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:01:53 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '939'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2dW4FNTE6EXJ2W&STATUS=Cancelled&AUTOBILLOUTAMT=AddToNextBilling&DESC=Awesome%20%2d%20Monthly%20Subscription&MAXFAILEDPAYMENTS=1&SUBSCRIBERNAME=Jos%c3%a9%20da%20Silva&PROFILESTARTDATE=2012%2d04%2d23T03%3a00%3a00Z&PROFILEREFERENCE=1234&NUMCYCLESCOMPLETED=0&NUMCYCLESREMAINING=0&OUTSTANDINGBALANCE=0%2e00&FAILEDPAYMENTCOUNT=0&LASTPAYMENTDATE=2012%2d04%2d23T03%3a57%3a58Z&LASTPAYMENTAMT=9%2e00&TRIALAMTPAID=0%2e00®ULARAMTPAID=0%2e00&AGGREGATEAMT=0%2e00&AGGREGATEOPTIONALAMT=9%2e00&FINALPAYMENTDUEDATE=1970%2d01%2d01T00%3a00%3a00Z&TIMESTAMP=2012%2d04%2d23T04%3a01%3a55Z&CORRELATIONID=61fe2dc19c6f4&ACK=Success&VERSION=72%2e0&BUILD=2764190&BILLINGPERIOD=Month&BILLINGFREQUENCY=1&TOTALBILLINGCYCLES=0&CURRENCYCODE=BRL&AMT=9%2e00&SHIPPINGAMT=0%2e00&TAXAMT=0%2e00®ULARBILLINGPERIOD=Month®ULARBILLINGFREQUENCY=1®ULARTOTALBILLINGCYCLES=0®ULARCURRENCYCODE=BRL®ULARAMT=9%2e00®ULARSHIPPINGAMT=0%2e00®ULARTAXAMT=0%2e00
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:01:55 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&ACTION=Suspend&PROFILEID=I-W4FNTE6EXJ2W&METHOD=ManageRecurringPaymentsProfileStatus
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:00:19 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '354'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: TIMESTAMP=2012%2d04%2d23T04%3a00%3a19Z&CORRELATIONID=50b4f36ae94e&ACK=Failure&VERSION=72%2e0&BUILD=2764190&L_ERRORCODE0=11557&L_SHORTMESSAGE0=Invalid%20profile%20status%20for%20suspend%20action%3b%20profile%20should%20be%20active&L_LONGMESSAGE0=Invalid%20profile%20status%20for%20suspend%20action%3b%20profile%20should%20be%20active&L_SEVERITYCODE0=Error
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:00:20 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&ACTION=Suspend&PROFILEID=I-W4FNTE6EXJ2W&METHOD=ManageRecurringPaymentsProfileStatus
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:00:13 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '134'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2dW4FNTE6EXJ2W&TIMESTAMP=2012%2d04%2d23T04%3a00%3a16Z&CORRELATIONID=ccc87f01d6607&ACK=Success&VERSION=72%2e0&BUILD=2764190
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:00:16 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&TRANSACTIONID=4GP25924UB013401J&PROFILEREFERENCE=12345&PAYMENTREQUEST_0_CUSTOM=12345&PAYMENTREQUEST_0_INVNUM=12345&REFUNDTYPE=Full&PAYMENTREQUEST_0_AMT=9.00&AMT=9.00&PAYMENTREQUEST_0_CURRENCYCODE=BRL&CURRENCYCODE=BRL&METHOD=RefundTransaction
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/1.0.0
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 10:55:15 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '262'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: TIMESTAMP=2012%2d04%2d23T10%3a55%3a17Z&CORRELATIONID=89f1590a7f107&ACK=Failure&VERSION=72%2e0&BUILD=2808426&L_ERRORCODE0=10009&L_SHORTMESSAGE0=Transaction%20refused&L_LONGMESSAGE0=This%20transaction%20has%20already%20been%20fully%20refunded&L_SEVERITYCODE0=Error
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 10:55:17 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&TRANSACTIONID=4GP25924UB013401J&PROFILEREFERENCE=12345&PAYMENTREQUEST_0_CUSTOM=12345&PAYMENTREQUEST_0_INVNUM=12345&REFUNDTYPE=Full&PAYMENTREQUEST_0_AMT=9.00&AMT=9.00&PAYMENTREQUEST_0_CURRENCYCODE=BRL&CURRENCYCODE=BRL&METHOD=RefundTransaction
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/1.0.0
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 10:53:04 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '251'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: REFUNDTRANSACTIONID=5MM61417CA010574T&FEEREFUNDAMT=0%2e71&GROSSREFUNDAMT=9%2e00&NETREFUNDAMT=8%2e29&CURRENCYCODE=BRL&TOTALREFUNDEDAMOUNT=9%2e00&TIMESTAMP=2012%2d04%2d23T10%3a53%3a10Z&CORRELATIONID=b902163c2d526&ACK=Success&VERSION=72%2e0&BUILD=2808426
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 10:53:10 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&PAYMENTREQUEST_0_AMT=10.00&AMT=10.00&PROFILEID=I-W4FNTE6EXJ2W&METHOD=UpdateRecurringPaymentsProfile
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:37:48 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '276'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2dW4FNTE6EXJ2W&TIMESTAMP=2012%2d04%2d23T04%3a37%3a49Z&CORRELATIONID=64801d3bcdb4&ACK=Failure&VERSION=72%2e0&BUILD=2764190&L_ERRORCODE0=11531&L_SHORTMESSAGE0=Invalid%20profile%20status%2e&L_LONGMESSAGE0=The%20profile%20status%20is%20invalid%2e&L_SEVERITYCODE0=Error
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:37:49 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&PROFILEID=I-6BWVV63V49JT&METHOD=GetRecurringPaymentsProfileDetails
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:34:46 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '989'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2d6BWVV63V49JT&STATUS=Active&AUTOBILLOUTAMT=NoAutoBill&DESC=Awesome%20%2d%20Monthly%20Subscription%20%28Updated%29&MAXFAILEDPAYMENTS=0&SUBSCRIBERNAME=Jos%c3%a9%20da%20Silva&PROFILESTARTDATE=2012%2d07%2d23T03%3a00%3a00Z&PROFILEREFERENCE=1234&NEXTBILLINGDATE=2012%2d07%2d23T10%3a00%3a00Z&NUMCYCLESCOMPLETED=0&NUMCYCLESREMAINING=0&OUTSTANDINGBALANCE=0%2e00&FAILEDPAYMENTCOUNT=0&LASTPAYMENTDATE=2012%2d04%2d23T04%3a31%3a15Z&LASTPAYMENTAMT=9%2e00&TRIALAMTPAID=0%2e00®ULARAMTPAID=0%2e00&AGGREGATEAMT=0%2e00&AGGREGATEOPTIONALAMT=9%2e00&FINALPAYMENTDUEDATE=1970%2d01%2d01T00%3a00%3a00Z&TIMESTAMP=2012%2d04%2d23T04%3a34%3a47Z&CORRELATIONID=39a69e9af3257&ACK=Success&VERSION=72%2e0&BUILD=2764190&BILLINGPERIOD=Day&BILLINGFREQUENCY=1&TOTALBILLINGCYCLES=0&CURRENCYCODE=BRL&AMT=10%2e00&SHIPPINGAMT=0%2e00&TAXAMT=0%2e00®ULARBILLINGPERIOD=Day®ULARBILLINGFREQUENCY=1®ULARTOTALBILLINGCYCLES=0®ULARCURRENCYCODE=BRL®ULARAMT=10%2e00®ULARSHIPPINGAMT=0%2e00®ULARTAXAMT=0%2e00
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:34:47 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api-3t.sandbox.paypal.com/nvp
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: USER=fnando.vieira%2Bseller_api1.gmail.com&PWD=PRTZZX6JDACB95SA&SIGNATURE=AJnjtLN0ozBP-BF2ZJrj5sfbmGAxAnf5tev1-MgK5Z8IASmtj-Fw.5pt&VERSION=72.0&PAYMENTREQUEST_0_AMT=10.00&AMT=10.00&PAYMENTREQUEST_0_CURRENCYCODE=BRL&CURRENCYCODE=BRL&DESC=Awesome+-+Monthly+Subscription+%28Updated%29&PAYMENTREQUEST_0_DESC=Awesome+-+Monthly+Subscription+%28Updated%29&L_BILLINGAGREEMENTDESCRIPTION0=Awesome+-+Monthly+Subscription+%28Updated%29&NOTE=Changed+Plan&PROFILEID=I-6BWVV63V49JT&METHOD=UpdateRecurringPaymentsProfile
|
9
|
+
headers:
|
10
|
+
accept:
|
11
|
+
- ! '*/*'
|
12
|
+
user-agent:
|
13
|
+
- PayPal::Recurring/0.1.8
|
14
|
+
content-type:
|
15
|
+
- application/x-www-form-urlencoded
|
16
|
+
connection:
|
17
|
+
- close
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
date:
|
24
|
+
- Mon, 23 Apr 2012 04:33:19 GMT
|
25
|
+
server:
|
26
|
+
- Apache
|
27
|
+
content-length:
|
28
|
+
- '134'
|
29
|
+
connection:
|
30
|
+
- close
|
31
|
+
content-type:
|
32
|
+
- text/plain; charset=utf-8
|
33
|
+
body:
|
34
|
+
encoding: US-ASCII
|
35
|
+
string: PROFILEID=I%2d6BWVV63V49JT&TIMESTAMP=2012%2d04%2d23T04%3a33%3a25Z&CORRELATIONID=31b9058f89254&ACK=Success&VERSION=72%2e0&BUILD=2764190
|
36
|
+
http_version: '1.1'
|
37
|
+
recorded_at: Mon, 23 Apr 2012 04:33:25 GMT
|
38
|
+
recorded_with: VCR 2.1.0
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe PayPal::Recurring::Notification do
|
4
|
+
it "detects express checkout" do
|
5
|
+
subject.params[:txn_type] = "express_checkout"
|
6
|
+
subject.should be_express_checkout
|
7
|
+
end
|
8
|
+
|
9
|
+
it "detects recurring payment" do
|
10
|
+
subject.params[:txn_type] = "recurring_payment"
|
11
|
+
subject.should be_recurring_payment
|
12
|
+
end
|
13
|
+
|
14
|
+
it "detects recurring payment profile" do
|
15
|
+
subject.params[:txn_type] = "recurring_payment_profile_created"
|
16
|
+
subject.should be_recurring_payment_profile
|
17
|
+
end
|
18
|
+
|
19
|
+
it "normalizes payment date" do
|
20
|
+
subject.params[:payment_date] = "20:37:06 Jul 04, 2011 PDT" # PDT = -0700
|
21
|
+
subject.paid_at.strftime("%Y-%m-%d %H:%M:%S").should == "2011-07-05 03:37:06"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "normalizes creation date" do
|
25
|
+
subject.params[:time_created] = "20:37:06 Jul 04, 2011 PDT" # PDT = -0700
|
26
|
+
subject.created_at.strftime("%Y-%m-%d %H:%M:%S").should == "2011-07-05 03:37:06"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns currency" do
|
30
|
+
subject.params[:mc_currency] = "BRL"
|
31
|
+
subject.currency.should == "BRL"
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#payment_date" do
|
35
|
+
it "returns date from payment_date field" do
|
36
|
+
subject.params[:payment_date] = "2011-07-05"
|
37
|
+
subject.payment_date.should == "2011-07-05"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#fee" do
|
42
|
+
it "returns fee from mc_fee field" do
|
43
|
+
subject.params[:mc_fee] = "0.56"
|
44
|
+
subject.fee.should == "0.56"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "returns fee from payment_fee field" do
|
48
|
+
subject.params[:payment_fee] = "0.56"
|
49
|
+
subject.fee.should == "0.56"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#amount" do
|
54
|
+
it "returns amount from amount field" do
|
55
|
+
subject.params[:amount] = "9.00"
|
56
|
+
subject.amount.should == "9.00"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns amount from mc_gross field" do
|
60
|
+
subject.params[:mc_gross] = "9.00"
|
61
|
+
subject.amount.should == "9.00"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "returns amount from payment_gross field" do
|
65
|
+
subject.params[:payment_gross] = "9.00"
|
66
|
+
subject.amount.should == "9.00"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#reference" do
|
71
|
+
it "returns from recurring IPN" do
|
72
|
+
subject.params[:rp_invoice_id] = "abc"
|
73
|
+
subject.reference.should == "abc"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "returns from custom field" do
|
77
|
+
subject.params[:custom] = "abc"
|
78
|
+
subject.reference.should == "abc"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "returns from invoice field" do
|
82
|
+
subject.params[:invoice] = "abc"
|
83
|
+
subject.reference.should == "abc"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when successful" do
|
88
|
+
use_vcr_cassette "notification/success"
|
89
|
+
|
90
|
+
it "verifies notification" do
|
91
|
+
subject.params = {"test_ipn"=>"1", "payment_type"=>"echeck", "payment_date"=>"06:16:11 Jun 27, 2011 PDT", "payment_status"=>"Completed", "pending_reason"=>"echeck", "address_status"=>"confirmed", "payer_status"=>"verified", "first_name"=>"John", "last_name"=>"Smith", "payer_email"=>"buyer@paypalsandbox.com", "payer_id"=>"TESTBUYERID01", "address_name"=>"John Smith", "address_country"=>"United States", "address_country_code"=>"US", "address_zip"=>"95131", "address_state"=>"CA", "address_city"=>"San Jose", "address_street"=>"123, any street", "business"=>"seller@paypalsandbox.com", "receiver_email"=>"seller@paypalsandbox.com", "receiver_id"=>"TESTSELLERID1", "residence_country"=>"US", "item_name"=>"something", "item_number"=>"AK-1234", "quantity"=>"1", "shipping"=>"3.04", "tax"=>"2.02", "mc_currency"=>"USD", "mc_fee"=>"0.44", "mc_gross"=>"12.34", "txn_type"=>"web_accept", "txn_id"=>"116271316", "notify_version"=>"2.1", "custom"=>"xyz123", "invoice"=>"abc1234", "charset"=>"windows-1252", "verify_sign"=>"A12AYqq6LElPcpXaQx48GiroLHnMAoQPnK0Z7aRwXUOpg1GfDaE15mFN"}
|
92
|
+
subject.should be_verified
|
93
|
+
subject.should be_completed
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "when failure" do
|
98
|
+
use_vcr_cassette "notification/failure"
|
99
|
+
|
100
|
+
it "verifies notification" do
|
101
|
+
subject.params = {}
|
102
|
+
subject.should_not be_verified
|
103
|
+
subject.should_not be_completed
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|