ez_paypal 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +41 -0
- data/README.md +136 -0
- data/doc/EZPaypal.html +124 -0
- data/doc/EZPaypal/Cart.html +125 -0
- data/doc/EZPaypal/Cart/OneTimePurchaseCart.html +621 -0
- data/doc/EZPaypal/Cart/RecurringProfile.html +278 -0
- data/doc/EZPaypal/Cart/RecurringPurchaseCart.html +434 -0
- data/doc/EZPaypal/Config.html +353 -0
- data/doc/EZPaypal/Helper.html +296 -0
- data/doc/EZPaypal/Request.html +926 -0
- data/doc/EZPaypal/Response.html +678 -0
- data/doc/_index.html +93 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +55 -0
- data/doc/css/style.css +322 -0
- data/doc/file.README.html +226 -0
- data/doc/file_list.html +49 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +226 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +46 -0
- data/doc/top-level-namespace.html +95 -0
- data/ez_paypal.gemspec +32 -0
- data/lib/config.rb +55 -0
- data/lib/core/data.rb +241 -0
- data/lib/core/helper.rb +34 -0
- data/lib/core/request.rb +159 -0
- data/lib/core/response.rb +76 -0
- data/lib/ez_paypal.rb +5 -0
- data/lib/ez_paypal/version.rb +3 -0
- metadata +129 -0
@@ -0,0 +1,226 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.7.5
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
relpath = '';
|
19
|
+
if (relpath != '') relpath += '/';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
25
|
+
|
26
|
+
|
27
|
+
</head>
|
28
|
+
<body>
|
29
|
+
<script type="text/javascript" charset="utf-8">
|
30
|
+
if (window.top.frames.main) document.body.className = 'frames';
|
31
|
+
</script>
|
32
|
+
|
33
|
+
<div id="header">
|
34
|
+
<div id="menu">
|
35
|
+
|
36
|
+
<a href="_index.html" title="Index">Index</a> »
|
37
|
+
<span class="title">File: README</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a id="class_list_link" href="#">Class List</a>
|
46
|
+
|
47
|
+
<a id="method_list_link" href="#">Method List</a>
|
48
|
+
|
49
|
+
<a id="file_list_link" href="#">File List</a>
|
50
|
+
|
51
|
+
</div>
|
52
|
+
<div class="clear"></div>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<iframe id="search_frame"></iframe>
|
56
|
+
|
57
|
+
<div id="content"><div id='filecontents'><h1>EZPaypal</h1>
|
58
|
+
|
59
|
+
<p>Paypal express checkout plugin. </p>
|
60
|
+
|
61
|
+
<h2>How to use it</h2>
|
62
|
+
|
63
|
+
<h3>Non-recurring purchase</h3>
|
64
|
+
|
65
|
+
<h4>Request for token</h4>
|
66
|
+
|
67
|
+
<pre class="code ruby"><code><span class='comment'># create cart and add items to it
|
68
|
+
</span><span class='id identifier rubyid_cart_onetime'>cart_onetime</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>OneTimePurchaseCart</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
69
|
+
|
70
|
+
<span class='id identifier rubyid_item_onetime'>item_onetime</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
71
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item name</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
72
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item code</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
73
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>description</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xxx, xxxxxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
74
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
75
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span>
|
76
|
+
<span class='rbrace'>}</span>
|
77
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_addItem'>addItem</span><span class='lparen'>(</span><span class='id identifier rubyid_item_onetime'>item_onetime</span><span class='rparen'>)</span>
|
78
|
+
|
79
|
+
<span class='id identifier rubyid_shipping'>shipping</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
80
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>John Smith</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
81
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>street</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>123 xx Rd</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
82
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>city</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xxxxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
83
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>state</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
84
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>country</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>US</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
85
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>zip</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>11234</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
86
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>phone</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1-123-456-7890</span><span class='tstring_end'>"</span></span>
|
87
|
+
<span class='rbrace'>}</span>
|
88
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_setupShippingInfo'>setupShippingInfo</span><span class='lparen'>(</span><span class='id identifier rubyid_shipping'>shipping</span><span class='rparen'>)</span>
|
89
|
+
|
90
|
+
<span class='id identifier rubyid_summary_onetime'>summary_onetime</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
91
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>subtotal</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
92
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>tax</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0.5</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
93
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>shipping</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
94
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>handling</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
95
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>shipping_discount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>-1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
96
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>insurance</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
97
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>total</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3.5</span><span class='tstring_end'>"</span></span>
|
98
|
+
<span class='rbrace'>}</span>
|
99
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_setupSummary'>setupSummary</span><span class='lparen'>(</span><span class='id identifier rubyid_summary_onetime'>summary_onetime</span><span class='rparen'>)</span>
|
100
|
+
|
101
|
+
<span class='id identifier rubyid_return_url'>return_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>"</span></span>
|
102
|
+
<span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>"</span></span>
|
103
|
+
|
104
|
+
<span class='comment'># send cart to request for token
|
105
|
+
</span> <span class='id identifier rubyid_response_origin'>response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>SetupExpressCheckout</span><span class='lparen'>(</span><span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='comma'>,</span> <span class='id identifier rubyid_return_url'>return_url</span><span class='comma'>,</span> <span class='id identifier rubyid_cancel_url'>cancel_url</span><span class='rparen'>)</span>
|
106
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_response_origin'>response_origin</span><span class='rparen'>)</span>
|
107
|
+
|
108
|
+
<span class='comment'># get checkout url
|
109
|
+
</span><span class='id identifier rubyid_checkout_url'>checkout_url</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_getCheckoutURL'>getCheckoutURL</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
110
|
+
</code></pre>
|
111
|
+
|
112
|
+
<h4>Handle success purchase</h4>
|
113
|
+
|
114
|
+
<pre class="code ruby"><code><span class='comment'># verify query string
|
115
|
+
</span><span class='id identifier rubyid_d_token'>d_token</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
116
|
+
<span class='id identifier rubyid_d_payerid'>d_payerid</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>payerid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
117
|
+
|
118
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
119
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>"</span></span>
|
120
|
+
<span class='kw'>end</span>
|
121
|
+
|
122
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
|
123
|
+
|
124
|
+
<span class='comment'># confirm purchase
|
125
|
+
</span><span class='id identifier rubyid_confirm_purchase_origin'>confirm_purchase_origin</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_confirmPurchase'>confirmPurchase</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
126
|
+
<span class='id identifier rubyid_confirm_response'>confirm_response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_confirm_purchase_origin'>confirm_purchase_origin</span><span class='rparen'>)</span>
|
127
|
+
|
128
|
+
<span class='comment'># access to purchase property
|
129
|
+
</span><span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='period'>.</span><span class='id identifier rubyid_success?'>success?</span><span class='rparen'>)</span>
|
130
|
+
<span class='id identifier rubyid_transaction_id'>transaction_id</span> <span class='op'>=</span> <span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PAYMENTINFO_0_TRANSACTIONID</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
131
|
+
<span class='comment'># .....
|
132
|
+
</span><span class='kw'>end</span>
|
133
|
+
</code></pre>
|
134
|
+
|
135
|
+
<h3>Recurring purchase</h3>
|
136
|
+
|
137
|
+
<h4>Request for token</h4>
|
138
|
+
|
139
|
+
<pre class="code ruby"><code><span class='comment'># create cart and add item to it
|
140
|
+
</span><span class='id identifier rubyid_cart_recur'>cart_recur</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>RecurringPurchaseCart</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
141
|
+
<span class='id identifier rubyid_item_recurring'>item_recurring</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
142
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item code</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
143
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>4</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
144
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
145
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>4</span><span class='tstring_end'>"</span></span>
|
146
|
+
<span class='rbrace'>}</span>
|
147
|
+
<span class='id identifier rubyid_cart_recur'>cart_recur</span><span class='period'>.</span><span class='id identifier rubyid_setupAgreement'>setupAgreement</span><span class='lparen'>(</span><span class='id identifier rubyid_item_recurring'>item_recurring</span><span class='rparen'>)</span>
|
148
|
+
|
149
|
+
<span class='id identifier rubyid_return_url'>return_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>"</span></span>
|
150
|
+
<span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>"</span></span>
|
151
|
+
|
152
|
+
<span class='comment'># send cart to request for token
|
153
|
+
</span> <span class='id identifier rubyid_response_origin'>response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>SetupExpressCheckout</span><span class='lparen'>(</span><span class='id identifier rubyid_cart_recur'>cart_recur</span><span class='comma'>,</span> <span class='id identifier rubyid_return_url'>return_url</span><span class='comma'>,</span> <span class='id identifier rubyid_cancel_url'>cancel_url</span><span class='rparen'>)</span>
|
154
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_response_origin'>response_origin</span><span class='rparen'>)</span>
|
155
|
+
|
156
|
+
<span class='comment'># get checkout url
|
157
|
+
</span> <span class='id identifier rubyid_checkout_url'>checkout_url</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_getCheckoutURL'>getCheckoutURL</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
158
|
+
</code></pre>
|
159
|
+
|
160
|
+
<h4>Handle success purchase</h4>
|
161
|
+
|
162
|
+
<pre class="code ruby"><code><span class='comment'># verify query string
|
163
|
+
</span> <span class='id identifier rubyid_d_token'>d_token</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
164
|
+
<span class='id identifier rubyid_d_payerid'>d_payerid</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>payerid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
165
|
+
|
166
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
167
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>"</span></span>
|
168
|
+
<span class='kw'>end</span>
|
169
|
+
|
170
|
+
<span class='comment'># get checkout details
|
171
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
|
172
|
+
<span class='id identifier rubyid_checkout_detail_origin'>checkout_detail_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>GetCheckoutDetails</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
173
|
+
<span class='id identifier rubyid_checkout_detail'>checkout_detail</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_checkout_detail_origin'>checkout_detail_origin</span><span class='rparen'>)</span>
|
174
|
+
|
175
|
+
<span class='comment'># create profile
|
176
|
+
</span> <span class='id identifier rubyid_profile'>profile</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
177
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
178
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>email</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EMAIL</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
179
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_NAME0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
180
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
181
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_QTY0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
182
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
183
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>start_date</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='comma'>,</span>
|
184
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>period</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Month</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
185
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>frequency</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span>
|
186
|
+
<span class='rbrace'>}</span>
|
187
|
+
|
188
|
+
<span class='id identifier rubyid_profile'>profile</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>RecurringProfile</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_profile'>profile</span><span class='rparen'>)</span>
|
189
|
+
|
190
|
+
<span class='comment'># confirm recurring profile
|
191
|
+
</span> <span class='id identifier rubyid_profile_response_origin'>profile_response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>CreateRecurringProfile</span><span class='lparen'>(</span><span class='id identifier rubyid_profile'>profile</span><span class='rparen'>)</span>
|
192
|
+
<span class='id identifier rubyid_profile_response'>profile_response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_profile_response_origin'>profile_response_origin</span><span class='rparen'>)</span>
|
193
|
+
|
194
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_profile_response'>profile_response</span><span class='period'>.</span><span class='id identifier rubyid_success?'>success?</span><span class='rparen'>)</span>
|
195
|
+
<span class='id identifier rubyid_profile_id'>profile_id</span> <span class='op'>=</span> <span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PROFILEID</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
196
|
+
<span class='comment'>#......
|
197
|
+
</span> <span class='kw'>end</span>
|
198
|
+
</code></pre>
|
199
|
+
|
200
|
+
<h2>Installation</h2>
|
201
|
+
|
202
|
+
<p>Add the following line to rails "Gemfile"</p>
|
203
|
+
|
204
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ez_paypal</span><span class='tstring_end'>"</span></span>
|
205
|
+
</code></pre>
|
206
|
+
|
207
|
+
<p>then execute</p>
|
208
|
+
|
209
|
+
<pre class="code ruby"><code>$ bundle install
|
210
|
+
</code></pre>
|
211
|
+
|
212
|
+
<p>See <a href="http://rubygems.org/gems/ez_paypal" title="EZPaypal RubyGem Page">http://rubygems.org/gems/ez_paypal</a> for more details</p>
|
213
|
+
|
214
|
+
<h2>Authors</h2>
|
215
|
+
|
216
|
+
<p>Tianyu Huang</p>
|
217
|
+
</div></div>
|
218
|
+
|
219
|
+
<div id="footer">
|
220
|
+
Generated on Sat Apr 21 02:54:43 2012 by
|
221
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
222
|
+
0.7.5 (ruby-1.9.3).
|
223
|
+
</div>
|
224
|
+
|
225
|
+
</body>
|
226
|
+
</html>
|
data/doc/file_list.html
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
|
16
|
+
|
17
|
+
|
18
|
+
<base id="base_target" target="_parent" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<script type="text/javascript" charset="utf-8">
|
22
|
+
if (window.top.frames.main) {
|
23
|
+
document.getElementById('base_target').target = 'main';
|
24
|
+
document.body.className = 'frames';
|
25
|
+
}
|
26
|
+
</script>
|
27
|
+
<div id="content">
|
28
|
+
<h1 id="full_list_header">File List</h1>
|
29
|
+
<div id="nav">
|
30
|
+
|
31
|
+
<a target="_self" href="class_list.html">Classes</a>
|
32
|
+
|
33
|
+
<a target="_self" href="method_list.html">Methods</a>
|
34
|
+
|
35
|
+
<a target="_self" href="file_list.html">Files</a>
|
36
|
+
|
37
|
+
</div>
|
38
|
+
<div id="search">Search: <input type="text" /></div>
|
39
|
+
|
40
|
+
<ul id="full_list" class="files">
|
41
|
+
|
42
|
+
|
43
|
+
<li class="r1"><a href="index.html" title="README">README</a></li>
|
44
|
+
|
45
|
+
|
46
|
+
</ul>
|
47
|
+
</div>
|
48
|
+
</body>
|
49
|
+
</html>
|
data/doc/frames.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
+
<title>Documentation by YARD 0.7.5</title>
|
8
|
+
</head>
|
9
|
+
<frameset cols="20%,*">
|
10
|
+
<frame name="list" src="class_list.html" />
|
11
|
+
<frame name="main" src="index.html" />
|
12
|
+
</frameset>
|
13
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.7.5
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
relpath = '';
|
19
|
+
if (relpath != '') relpath += '/';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
25
|
+
|
26
|
+
|
27
|
+
</head>
|
28
|
+
<body>
|
29
|
+
<script type="text/javascript" charset="utf-8">
|
30
|
+
if (window.top.frames.main) document.body.className = 'frames';
|
31
|
+
</script>
|
32
|
+
|
33
|
+
<div id="header">
|
34
|
+
<div id="menu">
|
35
|
+
|
36
|
+
<a href="_index.html" title="Index">Index</a> »
|
37
|
+
<span class="title">File: README</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a id="class_list_link" href="#">Class List</a>
|
46
|
+
|
47
|
+
<a id="method_list_link" href="#">Method List</a>
|
48
|
+
|
49
|
+
<a id="file_list_link" href="#">File List</a>
|
50
|
+
|
51
|
+
</div>
|
52
|
+
<div class="clear"></div>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<iframe id="search_frame"></iframe>
|
56
|
+
|
57
|
+
<div id="content"><div id='filecontents'><h1>EZPaypal</h1>
|
58
|
+
|
59
|
+
<p>Paypal express checkout plugin. </p>
|
60
|
+
|
61
|
+
<h2>How to use it</h2>
|
62
|
+
|
63
|
+
<h3>Non-recurring purchase</h3>
|
64
|
+
|
65
|
+
<h4>Request for token</h4>
|
66
|
+
|
67
|
+
<pre class="code ruby"><code><span class='comment'># create cart and add items to it
|
68
|
+
</span><span class='id identifier rubyid_cart_onetime'>cart_onetime</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>OneTimePurchaseCart</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
69
|
+
|
70
|
+
<span class='id identifier rubyid_item_onetime'>item_onetime</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
71
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item name</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
72
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item code</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
73
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>description</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xxx, xxxxxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
74
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
75
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span>
|
76
|
+
<span class='rbrace'>}</span>
|
77
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_addItem'>addItem</span><span class='lparen'>(</span><span class='id identifier rubyid_item_onetime'>item_onetime</span><span class='rparen'>)</span>
|
78
|
+
|
79
|
+
<span class='id identifier rubyid_shipping'>shipping</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
80
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>John Smith</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
81
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>street</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>123 xx Rd</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
82
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>city</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xxxxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
83
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>state</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
84
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>country</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>US</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
85
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>zip</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>11234</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
86
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>phone</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1-123-456-7890</span><span class='tstring_end'>"</span></span>
|
87
|
+
<span class='rbrace'>}</span>
|
88
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_setupShippingInfo'>setupShippingInfo</span><span class='lparen'>(</span><span class='id identifier rubyid_shipping'>shipping</span><span class='rparen'>)</span>
|
89
|
+
|
90
|
+
<span class='id identifier rubyid_summary_onetime'>summary_onetime</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
91
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>subtotal</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
92
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>tax</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0.5</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
93
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>shipping</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
94
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>handling</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
95
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>shipping_discount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>-1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
96
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>insurance</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>0</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
97
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>total</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>3.5</span><span class='tstring_end'>"</span></span>
|
98
|
+
<span class='rbrace'>}</span>
|
99
|
+
<span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='period'>.</span><span class='id identifier rubyid_setupSummary'>setupSummary</span><span class='lparen'>(</span><span class='id identifier rubyid_summary_onetime'>summary_onetime</span><span class='rparen'>)</span>
|
100
|
+
|
101
|
+
<span class='id identifier rubyid_return_url'>return_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>"</span></span>
|
102
|
+
<span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>"</span></span>
|
103
|
+
|
104
|
+
<span class='comment'># send cart to request for token
|
105
|
+
</span> <span class='id identifier rubyid_response_origin'>response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>SetupExpressCheckout</span><span class='lparen'>(</span><span class='id identifier rubyid_cart_onetime'>cart_onetime</span><span class='comma'>,</span> <span class='id identifier rubyid_return_url'>return_url</span><span class='comma'>,</span> <span class='id identifier rubyid_cancel_url'>cancel_url</span><span class='rparen'>)</span>
|
106
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_response_origin'>response_origin</span><span class='rparen'>)</span>
|
107
|
+
|
108
|
+
<span class='comment'># get checkout url
|
109
|
+
</span><span class='id identifier rubyid_checkout_url'>checkout_url</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_getCheckoutURL'>getCheckoutURL</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
110
|
+
</code></pre>
|
111
|
+
|
112
|
+
<h4>Handle success purchase</h4>
|
113
|
+
|
114
|
+
<pre class="code ruby"><code><span class='comment'># verify query string
|
115
|
+
</span><span class='id identifier rubyid_d_token'>d_token</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
116
|
+
<span class='id identifier rubyid_d_payerid'>d_payerid</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>payerid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
117
|
+
|
118
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
119
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>"</span></span>
|
120
|
+
<span class='kw'>end</span>
|
121
|
+
|
122
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
|
123
|
+
|
124
|
+
<span class='comment'># confirm purchase
|
125
|
+
</span><span class='id identifier rubyid_confirm_purchase_origin'>confirm_purchase_origin</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_confirmPurchase'>confirmPurchase</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
126
|
+
<span class='id identifier rubyid_confirm_response'>confirm_response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_confirm_purchase_origin'>confirm_purchase_origin</span><span class='rparen'>)</span>
|
127
|
+
|
128
|
+
<span class='comment'># access to purchase property
|
129
|
+
</span><span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='period'>.</span><span class='id identifier rubyid_success?'>success?</span><span class='rparen'>)</span>
|
130
|
+
<span class='id identifier rubyid_transaction_id'>transaction_id</span> <span class='op'>=</span> <span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PAYMENTINFO_0_TRANSACTIONID</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
131
|
+
<span class='comment'># .....
|
132
|
+
</span><span class='kw'>end</span>
|
133
|
+
</code></pre>
|
134
|
+
|
135
|
+
<h3>Recurring purchase</h3>
|
136
|
+
|
137
|
+
<h4>Request for token</h4>
|
138
|
+
|
139
|
+
<pre class="code ruby"><code><span class='comment'># create cart and add item to it
|
140
|
+
</span><span class='id identifier rubyid_cart_recur'>cart_recur</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>RecurringPurchaseCart</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
141
|
+
<span class='id identifier rubyid_item_recurring'>item_recurring</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
142
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Item code</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
143
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>4</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
144
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
145
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>4</span><span class='tstring_end'>"</span></span>
|
146
|
+
<span class='rbrace'>}</span>
|
147
|
+
<span class='id identifier rubyid_cart_recur'>cart_recur</span><span class='period'>.</span><span class='id identifier rubyid_setupAgreement'>setupAgreement</span><span class='lparen'>(</span><span class='id identifier rubyid_item_recurring'>item_recurring</span><span class='rparen'>)</span>
|
148
|
+
|
149
|
+
<span class='id identifier rubyid_return_url'>return_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>"</span></span>
|
150
|
+
<span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>"</span></span>
|
151
|
+
|
152
|
+
<span class='comment'># send cart to request for token
|
153
|
+
</span> <span class='id identifier rubyid_response_origin'>response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>SetupExpressCheckout</span><span class='lparen'>(</span><span class='id identifier rubyid_cart_recur'>cart_recur</span><span class='comma'>,</span> <span class='id identifier rubyid_return_url'>return_url</span><span class='comma'>,</span> <span class='id identifier rubyid_cancel_url'>cancel_url</span><span class='rparen'>)</span>
|
154
|
+
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_response_origin'>response_origin</span><span class='rparen'>)</span>
|
155
|
+
|
156
|
+
<span class='comment'># get checkout url
|
157
|
+
</span> <span class='id identifier rubyid_checkout_url'>checkout_url</span> <span class='op'>=</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_getCheckoutURL'>getCheckoutURL</span><span class='lparen'>(</span><span class='rparen'>)</span>
|
158
|
+
</code></pre>
|
159
|
+
|
160
|
+
<h4>Handle success purchase</h4>
|
161
|
+
|
162
|
+
<pre class="code ruby"><code><span class='comment'># verify query string
|
163
|
+
</span> <span class='id identifier rubyid_d_token'>d_token</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
164
|
+
<span class='id identifier rubyid_d_payerid'>d_payerid</span> <span class='op'>=</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>payerid</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
165
|
+
|
166
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='lparen'>(</span><span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_token'>d_token</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_d_payerid'>d_payerid</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
167
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>"</span></span>
|
168
|
+
<span class='kw'>end</span>
|
169
|
+
|
170
|
+
<span class='comment'># get checkout details
|
171
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
|
172
|
+
<span class='id identifier rubyid_checkout_detail_origin'>checkout_detail_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>GetCheckoutDetails</span><span class='lparen'>(</span><span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
173
|
+
<span class='id identifier rubyid_checkout_detail'>checkout_detail</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_checkout_detail_origin'>checkout_detail_origin</span><span class='rparen'>)</span>
|
174
|
+
|
175
|
+
<span class='comment'># create profile
|
176
|
+
</span> <span class='id identifier rubyid_profile'>profile</span> <span class='op'>=</span> <span class='lbrace'>{</span>
|
177
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>token</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
178
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>email</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>EMAIL</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
179
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>item_code</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_NAME0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
180
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
181
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>quantity</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_QTY0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
182
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>amount</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
|
183
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>start_date</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='comma'>,</span>
|
184
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>period</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Month</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
185
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>frequency</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1</span><span class='tstring_end'>"</span></span>
|
186
|
+
<span class='rbrace'>}</span>
|
187
|
+
|
188
|
+
<span class='id identifier rubyid_profile'>profile</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Cart</span><span class='op'>::</span><span class='const'>RecurringProfile</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_profile'>profile</span><span class='rparen'>)</span>
|
189
|
+
|
190
|
+
<span class='comment'># confirm recurring profile
|
191
|
+
</span> <span class='id identifier rubyid_profile_response_origin'>profile_response_origin</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Request</span><span class='period'>.</span><span class='const'>CreateRecurringProfile</span><span class='lparen'>(</span><span class='id identifier rubyid_profile'>profile</span><span class='rparen'>)</span>
|
192
|
+
<span class='id identifier rubyid_profile_response'>profile_response</span> <span class='op'>=</span> <span class='const'>EZPaypal</span><span class='op'>::</span><span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_profile_response_origin'>profile_response_origin</span><span class='rparen'>)</span>
|
193
|
+
|
194
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_profile_response'>profile_response</span><span class='period'>.</span><span class='id identifier rubyid_success?'>success?</span><span class='rparen'>)</span>
|
195
|
+
<span class='id identifier rubyid_profile_id'>profile_id</span> <span class='op'>=</span> <span class='id identifier rubyid_confirm_response'>confirm_response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>PROFILEID</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span>
|
196
|
+
<span class='comment'>#......
|
197
|
+
</span> <span class='kw'>end</span>
|
198
|
+
</code></pre>
|
199
|
+
|
200
|
+
<h2>Installation</h2>
|
201
|
+
|
202
|
+
<p>Add the following line to rails "Gemfile"</p>
|
203
|
+
|
204
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ez_paypal</span><span class='tstring_end'>"</span></span>
|
205
|
+
</code></pre>
|
206
|
+
|
207
|
+
<p>then execute</p>
|
208
|
+
|
209
|
+
<pre class="code ruby"><code>$ bundle install
|
210
|
+
</code></pre>
|
211
|
+
|
212
|
+
<p>See <a href="http://rubygems.org/gems/ez_paypal" title="EZPaypal RubyGem Page">http://rubygems.org/gems/ez_paypal</a> for more details</p>
|
213
|
+
|
214
|
+
<h2>Authors</h2>
|
215
|
+
|
216
|
+
<p>Tianyu Huang</p>
|
217
|
+
</div></div>
|
218
|
+
|
219
|
+
<div id="footer">
|
220
|
+
Generated on Sat Apr 21 02:54:43 2012 by
|
221
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
222
|
+
0.7.5 (ruby-1.9.3).
|
223
|
+
</div>
|
224
|
+
|
225
|
+
</body>
|
226
|
+
</html>
|