magpie 0.8.8 → 0.8.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,888 @@
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 name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>Module: Magpie::Utils</title>
7
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '..';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="../_index.html">Index (U)</a> &raquo;
27
+ <span class='title'><span class='object_link'><a href="../Magpie.html" title="Magpie (module)">Magpie</a></span></span>
28
+ &raquo;
29
+ <span class="title">Utils</span>
30
+
31
+
32
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
33
+ </div>
34
+
35
+ <div id="search">
36
+ <a id="class_list_link" href="#">Class List</a>
37
+ <a id="method_list_link" href="#">Method List</a>
38
+ <a id ="file_list_link" href="#">File List</a>
39
+ </div>
40
+
41
+ <div class="clear"></div>
42
+ </div>
43
+
44
+ <iframe id="search_frame"></iframe>
45
+
46
+ <div id="content"><h1>Module: Magpie::Utils
47
+
48
+
49
+
50
+ </h1>
51
+
52
+ <dl class="box">
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+ <dt class="r1">Included in:</dt>
61
+ <dd class="r1"><span class='object_link'><a href="Alipay.html" title="Magpie::Alipay (class)">Alipay</a></span>, <span class='object_link'><a href="Chinabank.html" title="Magpie::Chinabank (class)">Chinabank</a></span>, <span class='object_link'><a href="Snake.html" title="Magpie::Snake (class)">Snake</a></span>, <span class='object_link'><a href="Tenpay.html" title="Magpie::Tenpay (class)">Tenpay</a></span></dd>
62
+
63
+
64
+
65
+ <dt class="r2 last">Defined in:</dt>
66
+ <dd class="r2 last">lib/magpie/utils.rb</dd>
67
+
68
+ </dl>
69
+ <div class="clear"></div>
70
+
71
+
72
+
73
+
74
+
75
+ <h2>
76
+ Instance Method Summary
77
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
78
+ </h2>
79
+
80
+ <ul class="summary">
81
+
82
+ <li class="public ">
83
+ <span class="summary_signature">
84
+
85
+ <a href="#build_xml-instance_method" title="#build_xml (instance method)">- (Object) <strong>build_xml</strong>(h = { }) </a>
86
+
87
+
88
+
89
+ </span>
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+ <span class="summary_desc"><div class='inline'></div></span>
99
+
100
+ </li>
101
+
102
+
103
+ <li class="public ">
104
+ <span class="summary_signature">
105
+
106
+ <a href="#dig-instance_method" title="#dig (instance method)">- (Object) <strong>dig</strong>(env) </a>
107
+
108
+
109
+
110
+ </span>
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ <span class="summary_desc"><div class='inline'></div></span>
120
+
121
+ </li>
122
+
123
+
124
+ <li class="public ">
125
+ <span class="summary_signature">
126
+
127
+ <a href="#get_notify_res-instance_method" title="#get_notify_res (instance method)">- (Object) <strong>get_notify_res</strong>(am) </a>
128
+
129
+
130
+
131
+ </span>
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ <span class="summary_desc"><div class='inline'></div></span>
141
+
142
+ </li>
143
+
144
+
145
+ <li class="public ">
146
+ <span class="summary_signature">
147
+
148
+ <a href="#get_query-instance_method" title="#get_query (instance method)">- (Object) <strong>get_query</strong>(url, q_string) </a>
149
+
150
+
151
+
152
+ </span>
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ <span class="summary_desc"><div class='inline'></div></span>
162
+
163
+ </li>
164
+
165
+
166
+ <li class="public ">
167
+ <span class="summary_signature">
168
+
169
+ <a href="#get_xml_body-instance_method" title="#get_xml_body (instance method)">- (Object) <strong>get_xml_body</strong>(env, am, red_text) </a>
170
+
171
+
172
+
173
+ </span>
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+ <span class="summary_desc"><div class='inline'></div></span>
183
+
184
+ </li>
185
+
186
+
187
+ <li class="public ">
188
+ <span class="summary_signature">
189
+
190
+ <a href="#hash_to_xml-instance_method" title="#hash_to_xml (instance method)">- (Object) <strong>hash_to_xml</strong>(h = { }) </a>
191
+
192
+
193
+
194
+ </span>
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+ <span class="summary_desc"><div class='inline'></div></span>
204
+
205
+ </li>
206
+
207
+
208
+ <li class="public ">
209
+ <span class="summary_signature">
210
+
211
+ <a href="#log_errors-instance_method" title="#log_errors (instance method)">- (Object) <strong>log_errors</strong>(errors = { }) </a>
212
+
213
+
214
+
215
+ </span>
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+ <span class="summary_desc"><div class='inline'></div></span>
225
+
226
+ </li>
227
+
228
+
229
+ <li class="public ">
230
+ <span class="summary_signature">
231
+
232
+ <a href="#log_notify-instance_method" title="#log_notify (instance method)">- (Object) <strong>log_notify</strong>(method, notify_url, notify_params, notify_res) </a>
233
+
234
+
235
+
236
+ </span>
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+ <span class="summary_desc"><div class='inline'></div></span>
246
+
247
+ </li>
248
+
249
+
250
+ <li class="public ">
251
+ <span class="summary_signature">
252
+
253
+ <a href="#post_query-instance_method" title="#post_query (instance method)">- (Object) <strong>post_query</strong>(url, params) </a>
254
+
255
+
256
+
257
+ </span>
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+ <span class="summary_desc"><div class='inline'></div></span>
267
+
268
+ </li>
269
+
270
+
271
+ <li class="public ">
272
+ <span class="summary_signature">
273
+
274
+ <a href="#send_notify-instance_method" title="#send_notify (instance method)">- (String) <strong>send_notify</strong>(method, url, notify) </a>
275
+
276
+
277
+
278
+ </span>
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+ <span class="summary_desc"><div class='inline'><p>
288
+ 向商户系统发送通知.
289
+ </p>
290
+ </div></span>
291
+
292
+ </li>
293
+
294
+
295
+ <li class="public ">
296
+ <span class="summary_signature">
297
+
298
+ <a href="#send_req_to-instance_method" title="#send_req_to (instance method)">- (Object) <strong>send_req_to</strong>(gw, req) </a>
299
+
300
+
301
+
302
+ </span>
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+ <span class="summary_desc"><div class='inline'></div></span>
312
+
313
+ </li>
314
+
315
+
316
+ <li class="public ">
317
+ <span class="summary_signature">
318
+
319
+ <a href="#start_http-instance_method" title="#start_http (instance method)">- (Object) <strong>start_http</strong>(url, req) </a>
320
+
321
+
322
+
323
+ </span>
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+ <span class="summary_desc"><div class='inline'></div></span>
333
+
334
+ </li>
335
+
336
+
337
+ </ul>
338
+
339
+
340
+
341
+
342
+ <div id="instance_method_details" class="method_details_list">
343
+ <h2>Instance Method Details</h2>
344
+
345
+
346
+ <div class="method_details first">
347
+ <p class="signature first" id="build_xml-instance_method">
348
+
349
+ - (<tt>Object</tt>) <strong>build_xml</strong>(h = { })
350
+
351
+
352
+
353
+ </p><table class="source_code">
354
+ <tr>
355
+ <td>
356
+ <pre class="lines">
357
+
358
+
359
+ 29
360
+ 30
361
+ 31
362
+ 32
363
+ 33
364
+ 34</pre>
365
+ </td>
366
+ <td>
367
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 29</span>
368
+
369
+ <span class='def def kw'>def</span> <span class='build_xml identifier id'>build_xml</span><span class='lparen token'>(</span><span class='h identifier id'>h</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span> <span class='rbrace token'>}</span><span class='rparen token'>)</span>
370
+ <span class='string val'>&quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;UTF-8\&quot;?&gt;&quot;</span> <span class='plus op'>+</span>
371
+ <span class='string val'>&quot;&lt;result&gt;&quot;</span> <span class='plus op'>+</span>
372
+ <span class='hash_to_xml identifier id'>hash_to_xml</span><span class='lparen token'>(</span><span class='h identifier id'>h</span><span class='rparen token'>)</span> <span class='plus op'>+</span>
373
+ <span class='string val'>&quot;&lt;/result&gt;&quot;</span>
374
+ <span class='end end kw'>end</span>
375
+ </pre>
376
+ </td>
377
+ </tr>
378
+ </table>
379
+ </div>
380
+
381
+ <div class="method_details ">
382
+ <p class="signature " id="dig-instance_method">
383
+
384
+ - (<tt>Object</tt>) <strong>dig</strong>(env)
385
+
386
+
387
+
388
+ </p><table class="source_code">
389
+ <tr>
390
+ <td>
391
+ <pre class="lines">
392
+
393
+
394
+ 11
395
+ 12
396
+ 13
397
+ 14
398
+ 15
399
+ 16
400
+ 17
401
+ 18
402
+ 19</pre>
403
+ </td>
404
+ <td>
405
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 11</span>
406
+
407
+ <span class='def def kw'>def</span> <span class='dig identifier id'>dig</span><span class='lparen token'>(</span><span class='env identifier id'>env</span><span class='rparen token'>)</span>
408
+ <span class='status identifier id'>status</span><span class='comma token'>,</span> <span class='header identifier id'>header</span><span class='comma token'>,</span> <span class='body identifier id'>body</span> <span class='assign token'>=</span> <span class='@app ivar id'>@app</span><span class='dot token'>.</span><span class='call identifier id'>call</span> <span class='env identifier id'>env</span>
409
+ <span class='req identifier id'>req</span> <span class='assign token'>=</span> <span class='Rack constant id'>Rack</span><span class='colon2 op'>::</span><span class='Request constant id'>Request</span><span class='dot token'>.</span><span class='new identifier id'>new</span> <span class='env identifier id'>env</span>
410
+ <span class='doc identifier id'>doc</span> <span class='assign token'>=</span> <span class='send_req_to identifier id'>send_req_to</span> <span class='@pay_gateway ivar id'>@pay_gateway</span><span class='comma token'>,</span> <span class='req identifier id'>req</span>
411
+ <span class='red_text identifier id'>red_text</span> <span class='assign token'>=</span> <span class='lparen token'>(</span><span class='doc identifier id'>doc</span><span class='div op'>/</span><span class='@red_xpath ivar id'>@red_xpath</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='inner_text identifier id'>inner_text</span>
412
+ <span class='red_text identifier id'>red_text</span> <span class='assign token'>=</span> <span class='lparen token'>(</span><span class='doc identifier id'>doc</span><span class='div op'>/</span><span class='@error_xpath ivar id'>@error_xpath</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='inner_text identifier id'>inner_text</span> <span class='if if_mod kw'>if</span> <span class='red_text identifier id'>red_text</span><span class='dot token'>.</span><span class='blank? fid id'>blank?</span> <span class='and and kw'>and</span> <span class='@error_xpath ivar id'>@error_xpath</span>
413
+ <span class='red_text identifier id'>red_text</span> <span class='assign token'>=</span> <span class='Iconv constant id'>Iconv</span><span class='dot token'>.</span><span class='iconv identifier id'>iconv</span><span class='lparen token'>(</span><span class='string val'>&quot;UTF-8//IGNORE&quot;</span><span class='comma token'>,</span><span class='string val'>&quot;GBK//IGNORE&quot;</span><span class='comma token'>,</span> <span class='red_text identifier id'>red_text</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='to_s identifier id'>to_s</span>
414
+ <span class='return return kw'>return</span> <span class='status identifier id'>status</span><span class='comma token'>,</span> <span class='header identifier id'>header</span><span class='comma token'>,</span> <span class='body identifier id'>body</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='comma token'>,</span> <span class='red_text identifier id'>red_text</span>
415
+ <span class='end end kw'>end</span>
416
+ </pre>
417
+ </td>
418
+ </tr>
419
+ </table>
420
+ </div>
421
+
422
+ <div class="method_details ">
423
+ <p class="signature " id="get_notify_res-instance_method">
424
+
425
+ - (<tt>Object</tt>) <strong>get_notify_res</strong>(am)
426
+
427
+
428
+
429
+ </p><table class="source_code">
430
+ <tr>
431
+ <td>
432
+ <pre class="lines">
433
+
434
+
435
+ 63
436
+ 64
437
+ 65
438
+ 66
439
+ 67
440
+ 68
441
+ 69
442
+ 70
443
+ 71
444
+ 72
445
+ 73
446
+ 74</pre>
447
+ </td>
448
+ <td>
449
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 63</span>
450
+
451
+ <span class='def def kw'>def</span> <span class='get_notify_res identifier id'>get_notify_res</span><span class='lparen token'>(</span><span class='am identifier id'>am</span><span class='rparen token'>)</span>
452
+ <span class='case case kw'>case</span> <span class='am identifier id'>am</span>
453
+ <span class='when when kw'>when</span> <span class='AlipayModel constant id'>AlipayModel</span><span class='comma token'>,</span> <span class='ChinabankModel constant id'>ChinabankModel</span>
454
+ <span class='notify_res identifier id'>notify_res</span> <span class='assign token'>=</span> <span class='send_notify identifier id'>send_notify</span><span class='lparen token'>(</span><span class='string val'>&quot;POST&quot;</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify_url identifier id'>notify_url</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify identifier id'>notify</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='gsub identifier id'>gsub</span><span class='lparen token'>(</span><span class='regexp val'>/&lt;[^&gt;]*&gt;|&lt;\/[^&gt;]*&gt; |\s/</span><span class='m identifier id'>m</span><span class='comma token'>,</span> <span class='string val'>''</span><span class='rparen token'>)</span>
455
+ <span class='method identifier id'>method</span> <span class='assign token'>=</span> <span class='string val'>&quot;POST&quot;</span>
456
+ <span class='when when kw'>when</span> <span class='TenpayModel constant id'>TenpayModel</span>
457
+ <span class='notify_res identifier id'>notify_res</span> <span class='assign token'>=</span> <span class='send_notify identifier id'>send_notify</span><span class='lparen token'>(</span><span class='string val'>&quot;GET&quot;</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify_url identifier id'>notify_url</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify_string identifier id'>notify_string</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='gsub identifier id'>gsub</span><span class='lparen token'>(</span><span class='regexp val'>/&lt;[^&gt;]*&gt;|&lt;\/[^&gt;]*&gt;|\s/</span><span class='m identifier id'>m</span><span class='comma token'>,</span> <span class='string val'>''</span><span class='rparen token'>)</span>
458
+ <span class='method identifier id'>method</span> <span class='assign token'>=</span> <span class='string val'>&quot;GET&quot;</span>
459
+ <span class='end end kw'>end</span>
460
+ <span class='log_notify identifier id'>log_notify</span><span class='lparen token'>(</span><span class='method identifier id'>method</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify_url identifier id'>notify_url</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='notify identifier id'>notify</span><span class='comma token'>,</span> <span class='notify_res identifier id'>notify_res</span><span class='rparen token'>)</span>
461
+ <span class='notify_res identifier id'>notify_res</span>
462
+ <span class='end end kw'>end</span>
463
+ </pre>
464
+ </td>
465
+ </tr>
466
+ </table>
467
+ </div>
468
+
469
+ <div class="method_details ">
470
+ <p class="signature " id="get_query-instance_method">
471
+
472
+ - (<tt>Object</tt>) <strong>get_query</strong>(url, q_string)
473
+
474
+
475
+
476
+ </p><table class="source_code">
477
+ <tr>
478
+ <td>
479
+ <pre class="lines">
480
+
481
+
482
+ 93
483
+ 94
484
+ 95
485
+ 96
486
+ 97</pre>
487
+ </td>
488
+ <td>
489
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 93</span>
490
+
491
+ <span class='def def kw'>def</span> <span class='get_query identifier id'>get_query</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='q_string identifier id'>q_string</span><span class='rparen token'>)</span>
492
+ <span class='url identifier id'>url</span> <span class='assign token'>=</span> <span class='URI constant id'>URI</span><span class='dot token'>.</span><span class='parse identifier id'>parse</span><span class='lparen token'>(</span><span class='url identifier id'>url</span> <span class='plus op'>+</span> <span class='string val'>&quot;?&quot;</span> <span class='plus op'>+</span> <span class='q_string identifier id'>q_string</span><span class='rparen token'>)</span>
493
+ <span class='req identifier id'>req</span> <span class='assign token'>=</span> <span class='Net constant id'>Net</span><span class='colon2 op'>::</span><span class='HTTP constant id'>HTTP</span><span class='colon2 op'>::</span><span class='Get constant id'>Get</span><span class='dot token'>.</span><span class='new identifier id'>new</span><span class='lparen token'>(</span><span class='dstring node'>&quot;#{url.path}?#{url.query}&quot;</span><span class='rparen token'>)</span>
494
+ <span class='res identifier id'>res</span> <span class='assign token'>=</span> <span class='start_http identifier id'>start_http</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='rparen token'>)</span>
495
+ <span class='end end kw'>end</span>
496
+ </pre>
497
+ </td>
498
+ </tr>
499
+ </table>
500
+ </div>
501
+
502
+ <div class="method_details ">
503
+ <p class="signature " id="get_xml_body-instance_method">
504
+
505
+ - (<tt>Object</tt>) <strong>get_xml_body</strong>(env, am, red_text)
506
+
507
+
508
+
509
+ </p><table class="source_code">
510
+ <tr>
511
+ <td>
512
+ <pre class="lines">
513
+
514
+
515
+ 51
516
+ 52
517
+ 53
518
+ 54
519
+ 55
520
+ 56
521
+ 57
522
+ 58
523
+ 59
524
+ 60
525
+ 61</pre>
526
+ </td>
527
+ <td>
528
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 51</span>
529
+
530
+ <span class='def def kw'>def</span> <span class='get_xml_body identifier id'>get_xml_body</span><span class='lparen token'>(</span><span class='env identifier id'>env</span><span class='comma token'>,</span> <span class='am identifier id'>am</span><span class='comma token'>,</span> <span class='red_text identifier id'>red_text</span><span class='rparen token'>)</span>
531
+ <span class='if if kw'>if</span> <span class='red_text identifier id'>red_text</span><span class='dot token'>.</span><span class='blank? fid id'>blank?</span>
532
+ <span class='notify_res identifier id'>notify_res</span> <span class='assign token'>=</span> <span class='get_notify_res identifier id'>get_notify_res</span><span class='lparen token'>(</span><span class='am identifier id'>am</span><span class='rparen token'>)</span>
533
+ <span class='xml_body identifier id'>xml_body</span> <span class='assign token'>=</span> <span class='build_xml identifier id'>build_xml</span><span class='lparen token'>(</span><span class='symbol val'>:payment_success</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;Yes&quot;</span><span class='comma token'>,</span> <span class='symbol val'>:business</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='notify_res identifier id'>notify_res</span> <span class='rparen token'>)</span>
534
+ <span class='else else kw'>else</span>
535
+ <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='valid? fid id'>valid?</span>
536
+ <span class='xml_body identifier id'>xml_body</span> <span class='assign token'>=</span> <span class='build_xml identifier id'>build_xml</span><span class='lparen token'>(</span><span class='symbol val'>:payment_success</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;No&quot;</span><span class='comma token'>,</span> <span class='symbol val'>:errors</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='am identifier id'>am</span><span class='dot token'>.</span><span class='errors identifier id'>errors</span><span class='dot token'>.</span><span class='merge identifier id'>merge</span><span class='lparen token'>(</span><span class='symbol val'>:final</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='red_text identifier id'>red_text</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
537
+ <span class='log_errors identifier id'>log_errors</span><span class='lparen token'>(</span><span class='am identifier id'>am</span><span class='dot token'>.</span><span class='errors identifier id'>errors</span><span class='dot token'>.</span><span class='merge identifier id'>merge</span><span class='lparen token'>(</span><span class='symbol val'>:final</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='red_text identifier id'>red_text</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
538
+ <span class='end end kw'>end</span>
539
+ <span class='xml_body identifier id'>xml_body</span>
540
+ <span class='end end kw'>end</span>
541
+ </pre>
542
+ </td>
543
+ </tr>
544
+ </table>
545
+ </div>
546
+
547
+ <div class="method_details ">
548
+ <p class="signature " id="hash_to_xml-instance_method">
549
+
550
+ - (<tt>Object</tt>) <strong>hash_to_xml</strong>(h = { })
551
+
552
+
553
+
554
+ </p><table class="source_code">
555
+ <tr>
556
+ <td>
557
+ <pre class="lines">
558
+
559
+
560
+ 36
561
+ 37
562
+ 38
563
+ 39
564
+ 40
565
+ 41
566
+ 42
567
+ 43
568
+ 44
569
+ 45
570
+ 46
571
+ 47
572
+ 48
573
+ 49</pre>
574
+ </td>
575
+ <td>
576
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 36</span>
577
+
578
+ <span class='def def kw'>def</span> <span class='hash_to_xml identifier id'>hash_to_xml</span><span class='lparen token'>(</span><span class='h identifier id'>h</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span> <span class='rbrace token'>}</span><span class='rparen token'>)</span>
579
+ <span class='h identifier id'>h</span><span class='dot token'>.</span><span class='inject identifier id'>inject</span><span class='lparen token'>(</span><span class='string val'>&quot;&quot;</span><span class='rparen token'>)</span><span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='xml identifier id'>xml</span><span class='comma token'>,</span> <span class='lparen token'>(</span><span class='k identifier id'>k</span><span class='comma token'>,</span> <span class='v identifier id'>v</span><span class='rparen token'>)</span><span class='bitor op'>|</span>
580
+ <span class='case case kw'>case</span> <span class='v identifier id'>v</span>
581
+ <span class='when when kw'>when</span> <span class='Hash constant id'>Hash</span><span class='comma token'>,</span> <span class='String constant id'>String</span>
582
+ <span class='xml identifier id'>xml</span> <span class='lshft op'>&lt;&lt;</span> <span class='dstring node'>&quot;&lt;#{k}&gt;&quot;</span>
583
+ <span class='xml identifier id'>xml</span> <span class='lshft op'>&lt;&lt;</span> <span class='lparen token'>(</span><span class='Hash constant id'>Hash</span> <span class='eqq op'>===</span> <span class='v identifier id'>v</span> <span class='integer val'>? </span><span class='hash_to_xml identifier id'>hash_to_xml</span><span class='lparen token'>(</span><span class='v identifier id'>v</span><span class='rparen token'>)</span> <span class='colon op'>:</span> <span class='v identifier id'>v</span><span class='rparen token'>)</span>
584
+ <span class='xml identifier id'>xml</span> <span class='lshft op'>&lt;&lt;</span> <span class='dstring node'>&quot;&lt;/#{k}&gt;&quot;</span>
585
+ <span class='when when kw'>when</span> <span class='Array constant id'>Array</span>
586
+ <span class='v identifier id'>v</span><span class='dot token'>.</span><span class='each identifier id'>each</span><span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='vv identifier id'>vv</span><span class='bitor op'>|</span> <span class='xml identifier id'>xml</span> <span class='lshft op'>&lt;&lt;</span> <span class='hash_to_xml identifier id'>hash_to_xml</span><span class='lparen token'>(</span><span class='k identifier id'>k</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='vv identifier id'>vv</span><span class='rparen token'>)</span><span class='rbrace token'>}</span>
587
+ <span class='xml identifier id'>xml</span>
588
+ <span class='end end kw'>end</span>
589
+
590
+ <span class='rbrace token'>}</span>
591
+ <span class='end end kw'>end</span>
592
+ </pre>
593
+ </td>
594
+ </tr>
595
+ </table>
596
+ </div>
597
+
598
+ <div class="method_details ">
599
+ <p class="signature " id="log_errors-instance_method">
600
+
601
+ - (<tt>Object</tt>) <strong>log_errors</strong>(errors = { })
602
+
603
+
604
+
605
+ </p><table class="source_code">
606
+ <tr>
607
+ <td>
608
+ <pre class="lines">
609
+
610
+
611
+ 80
612
+ 81
613
+ 82</pre>
614
+ </td>
615
+ <td>
616
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 80</span>
617
+
618
+ <span class='def def kw'>def</span> <span class='log_errors identifier id'>log_errors</span><span class='lparen token'>(</span><span class='errors identifier id'>errors</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span> <span class='rbrace token'>}</span><span class='rparen token'>)</span>
619
+ <span class='Magpie constant id'>Magpie</span><span class='dot token'>.</span><span class='logger identifier id'>logger</span><span class='dot token'>.</span><span class='info identifier id'>info</span><span class='lparen token'>(</span><span class='errors identifier id'>errors</span><span class='dot token'>.</span><span class='map identifier id'>map</span><span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='kv identifier id'>kv</span><span class='bitor op'>|</span> <span class='string val'>&quot;%s: %s&quot;</span> <span class='mod op'>%</span> <span class='kv identifier id'>kv</span> <span class='rbrace token'>}</span><span class='dot token'>.</span><span class='join identifier id'>join</span><span class='lparen token'>(</span><span class='string val'>&quot;\n&quot;</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
620
+ <span class='end end kw'>end</span>
621
+ </pre>
622
+ </td>
623
+ </tr>
624
+ </table>
625
+ </div>
626
+
627
+ <div class="method_details ">
628
+ <p class="signature " id="log_notify-instance_method">
629
+
630
+ - (<tt>Object</tt>) <strong>log_notify</strong>(method, notify_url, notify_params, notify_res)
631
+
632
+
633
+
634
+ </p><table class="source_code">
635
+ <tr>
636
+ <td>
637
+ <pre class="lines">
638
+
639
+
640
+ 76
641
+ 77
642
+ 78</pre>
643
+ </td>
644
+ <td>
645
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 76</span>
646
+
647
+ <span class='def def kw'>def</span> <span class='log_notify identifier id'>log_notify</span><span class='lparen token'>(</span><span class='method identifier id'>method</span><span class='comma token'>,</span> <span class='notify_url identifier id'>notify_url</span><span class='comma token'>,</span> <span class='notify_params identifier id'>notify_params</span><span class='comma token'>,</span> <span class='notify_res identifier id'>notify_res</span><span class='rparen token'>)</span>
648
+ <span class='Magpie constant id'>Magpie</span><span class='dot token'>.</span><span class='logger identifier id'>logger</span><span class='dot token'>.</span><span class='info identifier id'>info</span><span class='lparen token'>(</span><span class='FORMAT_NOTIFY constant id'>FORMAT_NOTIFY</span> <span class='mod op'>%</span> <span class='lbrack token'>[</span><span class='method identifier id'>method</span><span class='comma token'>,</span> <span class='notify_url identifier id'>notify_url</span><span class='comma token'>,</span> <span class='Time constant id'>Time</span><span class='dot token'>.</span><span class='now identifier id'>now</span><span class='dot token'>.</span><span class='strftime identifier id'>strftime</span><span class='lparen token'>(</span><span class='string val'>&quot;%d/%b/%Y %H:%M:%S&quot;</span><span class='rparen token'>)</span><span class='comma token'>,</span> <span class='notify_params identifier id'>notify_params</span><span class='dot token'>.</span><span class='inspect identifier id'>inspect</span><span class='comma token'>,</span> <span class='notify_res identifier id'>notify_res</span><span class='rbrack token'>]</span><span class='rparen token'>)</span>
649
+ <span class='end end kw'>end</span>
650
+ </pre>
651
+ </td>
652
+ </tr>
653
+ </table>
654
+ </div>
655
+
656
+ <div class="method_details ">
657
+ <p class="signature " id="post_query-instance_method">
658
+
659
+ - (<tt>Object</tt>) <strong>post_query</strong>(url, params)
660
+
661
+
662
+
663
+ </p><table class="source_code">
664
+ <tr>
665
+ <td>
666
+ <pre class="lines">
667
+
668
+
669
+ 99
670
+ 100
671
+ 101
672
+ 102
673
+ 103
674
+ 104</pre>
675
+ </td>
676
+ <td>
677
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 99</span>
678
+
679
+ <span class='def def kw'>def</span> <span class='post_query identifier id'>post_query</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='params identifier id'>params</span><span class='rparen token'>)</span>
680
+ <span class='url identifier id'>url</span> <span class='assign token'>=</span> <span class='URI constant id'>URI</span><span class='dot token'>.</span><span class='parse identifier id'>parse</span> <span class='url identifier id'>url</span>
681
+ <span class='req identifier id'>req</span> <span class='assign token'>=</span> <span class='Net constant id'>Net</span><span class='colon2 op'>::</span><span class='HTTP constant id'>HTTP</span><span class='colon2 op'>::</span><span class='Post constant id'>Post</span><span class='dot token'>.</span><span class='new identifier id'>new</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='dot token'>.</span><span class='path identifier id'>path</span><span class='rparen token'>)</span>
682
+ <span class='req identifier id'>req</span><span class='dot token'>.</span><span class='set_form_data identifier id'>set_form_data</span> <span class='params identifier id'>params</span>
683
+ <span class='res identifier id'>res</span> <span class='assign token'>=</span> <span class='start_http identifier id'>start_http</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='rparen token'>)</span>
684
+ <span class='end end kw'>end</span>
685
+ </pre>
686
+ </td>
687
+ </tr>
688
+ </table>
689
+ </div>
690
+
691
+ <div class="method_details ">
692
+ <p class="signature " id="send_notify-instance_method">
693
+
694
+ - (<tt>String</tt>) <strong>send_notify</strong>(method, url, notify)
695
+
696
+
697
+
698
+ </p><div class="docstring">
699
+ <div class="discussion">
700
+ <p>
701
+ 向商户系统发送通知
702
+ </p>
703
+
704
+
705
+ </div>
706
+ </div>
707
+ <div class="tags">
708
+ <h3>Parameters:</h3>
709
+ <ul class="param">
710
+
711
+ <li>
712
+
713
+ <span class='type'>(<tt>String</tt>, <tt>String</tt>, <tt>Hash</tt>)</span>
714
+
715
+
716
+ <span class='name'>url是商户系统用来接收通知的url,</span>
717
+
718
+
719
+
720
+ &mdash;
721
+ <div class='inline'><p>
722
+ notify是支付平台发过来的参数
723
+ </p>
724
+ </div>
725
+
726
+ </li>
727
+
728
+ </ul>
729
+ <h3>Returns:</h3>
730
+ <ul class="return">
731
+
732
+ <li>
733
+
734
+ <span class='type'>(<tt>String</tt>)</span>
735
+
736
+
737
+
738
+
739
+ &mdash;
740
+ <div class='inline'><p>
741
+ 如果有异常需要你确认url是否有效
742
+ </p>
743
+ </div>
744
+
745
+ </li>
746
+
747
+ </ul>
748
+
749
+ </div><table class="source_code">
750
+ <tr>
751
+ <td>
752
+ <pre class="lines">
753
+
754
+
755
+ 109
756
+ 110
757
+ 111
758
+ 112
759
+ 113
760
+ 114
761
+ 115
762
+ 116
763
+ 117
764
+ 118
765
+ 119
766
+ 120
767
+ 121
768
+ 122
769
+ 123
770
+ 124
771
+ 125
772
+ 126</pre>
773
+ </td>
774
+ <td>
775
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 109</span>
776
+
777
+ <span class='def def kw'>def</span> <span class='send_notify identifier id'>send_notify</span><span class='lparen token'>(</span><span class='method identifier id'>method</span><span class='comma token'>,</span> <span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='notify identifier id'>notify</span><span class='rparen token'>)</span>
778
+ <span class='times identifier id'>times</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='integer val'>4</span><span class='comma token'>,</span> <span class='integer val'>6</span><span class='comma token'>,</span> <span class='integer val'>2</span><span class='rbrack token'>]</span>
779
+ <span class='Rubber constant id'>Rubber</span><span class='dot token'>.</span><span class='try identifier id'>try</span><span class='lparen token'>(</span><span class='integer val'>3</span><span class='rparen token'>)</span><span class='lbrace token'>{</span><span class='bitor op'>|</span><span class='i identifier id'>i</span><span class='bitor op'>|</span>
780
+ <span class='timeout identifier id'>timeout</span><span class='lparen token'>(</span><span class='times identifier id'>times</span><span class='lbrack token'>[</span><span class='integer val'>3</span><span class='minus op'>-</span><span class='i identifier id'>i</span><span class='rbrack token'>]</span><span class='rparen token'>)</span> <span class='do do kw'>do</span>
781
+ <span class='res identifier id'>res</span> <span class='assign token'>=</span> <span class='case case kw'>case</span> <span class='method identifier id'>method</span><span class='dot token'>.</span><span class='to_s identifier id'>to_s</span><span class='dot token'>.</span><span class='upcase identifier id'>upcase</span>
782
+ <span class='when when kw'>when</span> <span class='string val'>&quot;GET&quot;</span><span class='semicolon token'>;</span> <span class='get_query identifier id'>get_query</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='notify identifier id'>notify</span><span class='rparen token'>)</span>
783
+ <span class='when when kw'>when</span> <span class='string val'>&quot;POST&quot;</span><span class='semicolon token'>;</span> <span class='post_query identifier id'>post_query</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='notify identifier id'>notify</span><span class='rparen token'>)</span>
784
+ <span class='end end kw'>end</span>
785
+ <span class='case case kw'>case</span> <span class='res identifier id'>res</span>
786
+ <span class='when when kw'>when</span> <span class='Net constant id'>Net</span><span class='colon2 op'>::</span><span class='HTTPSuccess constant id'>HTTPSuccess</span><span class='comma token'>,</span> <span class='Net constant id'>Net</span><span class='colon2 op'>::</span><span class='HTTPRedirection constant id'>HTTPRedirection</span><span class='semicolon token'>;</span> <span class='res identifier id'>res</span><span class='dot token'>.</span><span class='body identifier id'>body</span>
787
+ <span class='else else kw'>else</span>
788
+ <span class='raise identifier id'>raise</span> <span class='dstring node'>&quot;#{res.class}@#{res.code}&quot;</span>
789
+ <span class='end end kw'>end</span>
790
+ <span class='end end kw'>end</span>
791
+ <span class='rbrace token'>}</span>
792
+ <span class='rescue rescue kw'>rescue</span> <span class='Exception constant id'>Exception</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='e identifier id'>e</span>
793
+ <span class='dstring node'>&quot;发送通知时出现异常#{e}, 请确认#{url}在你的商户系统中可用, 比如#{url}是否可以#{method.upcase}方式接收其他应用的请求&quot;</span>
794
+ <span class='end end kw'>end</span>
795
+ </pre>
796
+ </td>
797
+ </tr>
798
+ </table>
799
+ </div>
800
+
801
+ <div class="method_details ">
802
+ <p class="signature " id="send_req_to-instance_method">
803
+
804
+ - (<tt>Object</tt>) <strong>send_req_to</strong>(gw, req)
805
+
806
+
807
+
808
+ </p><table class="source_code">
809
+ <tr>
810
+ <td>
811
+ <pre class="lines">
812
+
813
+
814
+ 21
815
+ 22
816
+ 23
817
+ 24
818
+ 25
819
+ 26
820
+ 27</pre>
821
+ </td>
822
+ <td>
823
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 21</span>
824
+
825
+ <span class='def def kw'>def</span> <span class='send_req_to identifier id'>send_req_to</span><span class='lparen token'>(</span><span class='gw identifier id'>gw</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='rparen token'>)</span>
826
+ <span class='text identifier id'>text</span> <span class='assign token'>=</span> <span class='case case kw'>case</span> <span class='req identifier id'>req</span><span class='dot token'>.</span><span class='request_method identifier id'>request_method</span>
827
+ <span class='when when kw'>when</span> <span class='string val'>&quot;GET&quot;</span><span class='semicolon token'>;</span> <span class='get_query identifier id'>get_query</span><span class='lparen token'>(</span><span class='gw identifier id'>gw</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='dot token'>.</span><span class='query_string identifier id'>query_string</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='body identifier id'>body</span>
828
+ <span class='when when kw'>when</span> <span class='string val'>&quot;POST&quot;</span><span class='semicolon token'>;</span> <span class='post_query identifier id'>post_query</span><span class='lparen token'>(</span><span class='gw identifier id'>gw</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='dot token'>.</span><span class='params identifier id'>params</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='body identifier id'>body</span>
829
+ <span class='end end kw'>end</span>
830
+ <span class='doc identifier id'>doc</span> <span class='assign token'>=</span> <span class='Hpricot constant id'>Hpricot</span> <span class='text identifier id'>text</span>
831
+ <span class='end end kw'>end</span>
832
+ </pre>
833
+ </td>
834
+ </tr>
835
+ </table>
836
+ </div>
837
+
838
+ <div class="method_details ">
839
+ <p class="signature " id="start_http-instance_method">
840
+
841
+ - (<tt>Object</tt>) <strong>start_http</strong>(url, req)
842
+
843
+
844
+
845
+ </p><table class="source_code">
846
+ <tr>
847
+ <td>
848
+ <pre class="lines">
849
+
850
+
851
+ 84
852
+ 85
853
+ 86
854
+ 87
855
+ 88
856
+ 89
857
+ 90
858
+ 91</pre>
859
+ </td>
860
+ <td>
861
+ <pre class="code"><span class="info file"># File 'lib/magpie/utils.rb', line 84</span>
862
+
863
+ <span class='def def kw'>def</span> <span class='start_http identifier id'>start_http</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='comma token'>,</span> <span class='req identifier id'>req</span><span class='rparen token'>)</span>
864
+ <span class='http identifier id'>http</span> <span class='assign token'>=</span> <span class='Net constant id'>Net</span><span class='colon2 op'>::</span><span class='HTTP constant id'>HTTP</span><span class='dot token'>.</span><span class='new identifier id'>new</span><span class='lparen token'>(</span><span class='url identifier id'>url</span><span class='dot token'>.</span><span class='host identifier id'>host</span><span class='comma token'>,</span> <span class='url identifier id'>url</span><span class='dot token'>.</span><span class='port identifier id'>port</span><span class='rparen token'>)</span>
865
+ <span class='if if kw'>if</span> <span class='url identifier id'>url</span><span class='dot token'>.</span><span class='scheme identifier id'>scheme</span> <span class='eq op'>==</span> <span class='string val'>&quot;https&quot;</span>
866
+ <span class='http identifier id'>http</span><span class='dot token'>.</span><span class='use_ssl identifier id'>use_ssl</span> <span class='assign token'>=</span> <span class='true true kw'>true</span>
867
+ <span class='http identifier id'>http</span><span class='dot token'>.</span><span class='verify_mode identifier id'>verify_mode</span> <span class='assign token'>=</span> <span class='OpenSSL constant id'>OpenSSL</span><span class='colon2 op'>::</span><span class='SSL constant id'>SSL</span><span class='colon2 op'>::</span><span class='VERIFY_NONE constant id'>VERIFY_NONE</span>
868
+ <span class='end end kw'>end</span>
869
+ <span class='http identifier id'>http</span><span class='dot token'>.</span><span class='start identifier id'>start</span><span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='hp identifier id'>hp</span><span class='bitor op'>|</span> <span class='hp identifier id'>hp</span><span class='dot token'>.</span><span class='request identifier id'>request</span> <span class='req identifier id'>req</span> <span class='rbrace token'>}</span>
870
+ <span class='end end kw'>end</span>
871
+ </pre>
872
+ </td>
873
+ </tr>
874
+ </table>
875
+ </div>
876
+
877
+ </div>
878
+
879
+ </div>
880
+
881
+ <div id="footer">
882
+ Generated on Mon Nov 8 16:21:45 2010 by
883
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
884
+ 0.6.1 (ruby-1.8.7).
885
+ </div>
886
+
887
+ </body>
888
+ </html>