ez_paypal 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+ &mdash; 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> &raquo;
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'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item name</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
72
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item code</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
73
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>description</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxx, xxxxxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
74
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
75
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>John Smith</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
81
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>street</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>123 xx Rd</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
82
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>city</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
83
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>state</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
84
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>country</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>US</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
85
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>11234</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
86
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>phone</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1-123-456-7890</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>subtotal</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
92
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tax</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.5</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
93
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>shipping</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
94
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>handling</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
95
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>shipping_discount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>-1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
96
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>insurance</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
97
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>total</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3.5</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>&quot;</span></span>
102
+ <span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>payerid</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>PAYMENTINFO_0_TRANSACTIONID</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item code</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
143
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
145
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>&quot;</span></span>
150
+ <span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>payerid</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
178
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>email</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>EMAIL</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
179
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_NAME0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
180
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
181
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_QTY0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
182
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
183
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>start_date</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</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'>&quot;</span><span class='tstring_content'>period</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Month</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
185
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>frequency</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>PROFILEID</span><span class='tstring_end'>&quot;</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 &quot;Gemfile&quot;</p>
203
+
204
+ <pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ez_paypal</span><span class='tstring_end'>&quot;</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>
@@ -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>
@@ -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>
@@ -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
+ &mdash; 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> &raquo;
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'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item name</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
72
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item code</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
73
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>description</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxx, xxxxxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
74
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
75
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>John Smith</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
81
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>street</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>123 xx Rd</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
82
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>city</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
83
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>state</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
84
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>country</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>US</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
85
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>zip</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>11234</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
86
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>phone</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1-123-456-7890</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>subtotal</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
92
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>tax</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.5</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
93
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>shipping</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
94
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>handling</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
95
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>shipping_discount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>-1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
96
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>insurance</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
97
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>total</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3.5</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>&quot;</span></span>
102
+ <span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>payerid</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>PAYMENTINFO_0_TRANSACTIONID</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Item code</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
143
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
145
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_return</span><span class='tstring_end'>&quot;</span></span>
150
+ <span class='id identifier rubyid_cancel_url'>cancel_url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://127.0.0.1:3000/ec_cancel</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>payerid</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Invalid Purchase</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>token</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TOKEN</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
178
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>email</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>EMAIL</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
179
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>item_code</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_NAME0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
180
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>unit_price</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
181
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quantity</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_QTY0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
182
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>amount</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_checkout_detail'>checkout_detail</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>L_PAYMENTREQUEST_0_AMT0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
183
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>start_date</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</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'>&quot;</span><span class='tstring_content'>period</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Month</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
185
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>frequency</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>PROFILEID</span><span class='tstring_end'>&quot;</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 &quot;Gemfile&quot;</p>
203
+
204
+ <pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ez_paypal</span><span class='tstring_end'>&quot;</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>