ecpay_invoice 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Conf>
3
+ <OperatingMode>Test</OperatingMode> <!--Test or Production-->
4
+ <MercProfile>Stage_Account</MercProfile>
5
+ <IsProjectContractor>N</IsProjectContractor>
6
+
7
+ <MerchantInfo>
8
+ <MInfo name="Production_Account">
9
+ <MerchantID></MerchantID>
10
+ <HashKey></HashKey>
11
+ <HashIV></HashIV>
12
+ </MInfo>
13
+ <MInfo name="Stage_Account">
14
+ <MerchantID>2000132</MerchantID>
15
+ <HashKey>ejCk326UnaZWKisg</HashKey>
16
+ <HashIV>q9jcZX8Ib9LM8wYk</HashIV>
17
+ </MInfo>
18
+ </MerchantInfo>
19
+
20
+ <IgnorePayment>
21
+ <!-- <Method>Credit</Method>
22
+ <Method>WebATM</Method>
23
+ <Method>ATM</Method>
24
+ <Method>CVS</Method>
25
+ <Method>Tenpay</Method>
26
+ <Method>TopUpUsed</Method>-->
27
+ </IgnorePayment>
28
+
29
+ </Conf>
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ecpay_invoice/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ecpay_invoice"
8
+ spec.version = EcpayInvoice::VERSION
9
+ spec.authors = ["williamLin"]
10
+ spec.email = ["william.lin@sun-innovation.com"]
11
+
12
+ spec.summary = "綠界電子發票串接用SDK"
13
+ spec.description = ""
14
+ spec.homepage = ""
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "bin"
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.12"
23
+ spec.add_development_dependency "rake", "~> 11.1"
24
+ spec.add_development_dependency "rspec", "~> 3.4"
25
+ end
@@ -0,0 +1,565 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ecpayInvoice>
3
+ <InvoiceIssue>
4
+ <ServiceAddress>
5
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/Issue</url>
6
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/Issue</url>
7
+ </ServiceAddress>
8
+ <Config>
9
+ <switchparam>
10
+ </switchparam>
11
+ <optparam>
12
+ </optparam>
13
+ </Config>
14
+ <Parameters>
15
+ <param type="String" require="1" name="TimeStamp">
16
+ <pattern>^\d{10}$</pattern>
17
+ </param>
18
+ <param type="String" require="1" name="MerchantID">
19
+ <pattern>^\d{7,10}$</pattern>
20
+ </param>
21
+ <param type="String" require="1" name="RelateNumber">
22
+ <pattern>^.{1,30}$</pattern>
23
+ </param>
24
+ <param type="String" require="1" name="CustomerID">
25
+ <pattern>^([\w_]{1,20}|)$</pattern>
26
+ </param>
27
+ <param type="String" require="1" name="CustomerIdentifier">
28
+ <pattern>^(\d{8}|)$</pattern>
29
+ </param>
30
+ <param type="String" require="1" name="CustomerName" urlencode="1">
31
+ <pattern>^.{0,20}$</pattern>
32
+ </param>
33
+ <param type="String" require="1" name="CustomerAddr" urlencode="1">
34
+ <pattern>^.{0,200}$</pattern>
35
+ </param>
36
+ <param type="String" require="1" name="CustomerPhone">
37
+ <pattern>^(\d{10,20}|)$</pattern>
38
+ </param>
39
+ <param type="String" require="1" name="CustomerEmail" urlencode="1">
40
+ <pattern>^.{0,200}$</pattern>
41
+ </param>
42
+ <param type="Opt" require="1" name="ClearanceMark">
43
+ <option>1</option>
44
+ <option>2</option>
45
+ <option></option>
46
+ </param>
47
+ <param type="Opt" require="1" name="Print">
48
+ <option>0</option>
49
+ <option>1</option>
50
+ </param>
51
+ <param type="Opt" require="1" name="Donation">
52
+ <option>1</option>
53
+ <option>2</option>
54
+ </param>
55
+ <param type="String" require="1" name="LoveCode">
56
+ <pattern>^([Xx]\d{2,6}|\d{3,7}|)$</pattern>
57
+ </param>
58
+ <param type="Opt" require="1" name="CarruerType">
59
+ <option>1</option>
60
+ <option>2</option>
61
+ <option>3</option>
62
+ <option></option>
63
+ </param>
64
+ <param type="String" require="1" name="CarruerNum"> <!-- Patten of this column is defined in verification.rb???-->
65
+ </param>
66
+ <param type="Opt" require="1" name="TaxType">
67
+ <option>1</option>
68
+ <option>2</option>
69
+ <option>3</option>
70
+ <option>9</option>
71
+ </param>
72
+ <param type="Int" require="1" name="SalesAmount">
73
+ <mode>GE</mode> <!--BETWEEN, GE, LE, EXCLUDE -->
74
+ <maximum></maximum>
75
+ <minimal>1</minimal>
76
+ </param>
77
+ <param type="String" require="1" name="InvoiceRemark" urlencode="1">
78
+ <pattern>^.{0,4096}$</pattern>
79
+ </param>
80
+ <param type="String" require="1" name="ItemName" urlencode="1">
81
+ <pattern>^.{0,4096}$</pattern>
82
+ </param>
83
+ <param type="String" require="1" name="ItemCount">
84
+ <pattern>^[\d\|]{0,4096}$</pattern>
85
+ </param>
86
+ <param type="String" require="1" name="ItemWord" urlencode="1">
87
+ <pattern>^.{0,4096}$</pattern>
88
+ </param>
89
+ <param type="String" require="1" name="ItemPrice">
90
+ <pattern>^[\d\|]{0,4096}$</pattern>
91
+ </param>
92
+ <param type="String" require="1" name="ItemTaxType">
93
+ <pattern>^([1-3\|]{0,4096}|)$</pattern>
94
+ </param>
95
+ <param type="String" require="1" name="ItemAmount">
96
+ <pattern>^[\d\|\.]{0,4096}$</pattern>
97
+ </param>
98
+ <param type="String" require="1" name="ItemRemark" urlencode="1">
99
+ <pattern>^.{0,4096}$</pattern>
100
+ </param>
101
+ <param type="Opt" require="1" name="InvType">
102
+ <option>07</option>
103
+ <option>08</option>
104
+ </param>
105
+ <param type="Opt" require="1" name="vat">
106
+ <option>0</option>
107
+ <option>1</option>
108
+ </param>
109
+ </Parameters>
110
+ </InvoiceIssue>
111
+ <InvoiceDelayIssue>
112
+ <ServiceAddress>
113
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/DelayIssue</url>
114
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/DelayIssue</url>
115
+ </ServiceAddress>
116
+ <Config>
117
+ <switchparam>
118
+ </switchparam>
119
+ <optparam>
120
+ </optparam>
121
+ </Config>
122
+ <Parameters>
123
+ <param type="String" require="1" name="TimeStamp">
124
+ <pattern>^\d{10}$</pattern>
125
+ </param>
126
+ <param type="String" require="1" name="MerchantID">
127
+ <pattern>^\d{7,10}$</pattern>
128
+ </param>
129
+ <param type="String" require="1" name="RelateNumber">
130
+ <pattern>^.{1,30}$</pattern>
131
+ </param>
132
+ <param type="String" require="1" name="CustomerID">
133
+ <pattern>^([\w_]{1,20}|)$</pattern>
134
+ </param>
135
+ <param type="String" require="1" name="CustomerIdentifier">
136
+ <pattern>^(\d{8}|)$</pattern>
137
+ </param>
138
+ <param type="String" require="1" name="CustomerName" urlencode="1">
139
+ <pattern>^.{0,20}$</pattern>
140
+ </param>
141
+ <param type="String" require="1" name="CustomerAddr" urlencode="1">
142
+ <pattern>^.{0,200}$</pattern>
143
+ </param>
144
+ <param type="String" require="1" name="CustomerPhone">
145
+ <pattern>^(\d{10,20}|)$</pattern>
146
+ </param>
147
+ <param type="String" require="1" name="CustomerEmail" urlencode="1">
148
+ <pattern>^.{0,200}$</pattern>
149
+ </param>
150
+ <param type="Opt" require="1" name="ClearanceMark">
151
+ <option>1</option>
152
+ <option>2</option>
153
+ <option></option>
154
+ </param>
155
+ <param type="Opt" require="1" name="Print">
156
+ <option>0</option>
157
+ <option>1</option>
158
+ </param>
159
+ <param type="Opt" require="1" name="Donation">
160
+ <option>1</option>
161
+ <option>2</option>
162
+ </param>
163
+ <param type="String" require="1" name="LoveCode">
164
+ <pattern>^([Xx]\d{2,6}|\d{3,7}|)$</pattern>
165
+ </param>
166
+ <param type="Opt" require="1" name="CarruerType">
167
+ <option>1</option>
168
+ <option>2</option>
169
+ <option>3</option>
170
+ <option></option>
171
+ </param>
172
+ <param type="String" require="1" name="CarruerNum"> <!-- Patten of this column is defined in verification.rb???-->
173
+ </param>
174
+ <param type="Opt" require="1" name="TaxType">
175
+ <option>1</option>
176
+ <option>2</option>
177
+ <option>3</option>
178
+ <option>9</option>
179
+ </param>
180
+ <param type="Int" require="1" name="SalesAmount">
181
+ <mode>GE</mode> <!--BETWEEN, GE, LE, EXCLUDE -->
182
+ <maximum></maximum>
183
+ <minimal>1</minimal>
184
+ </param>
185
+ <param type="String" require="1" name="InvoiceRemark" urlencode="1">
186
+ <pattern>^.{0,4096}$</pattern>
187
+ </param>
188
+ <param type="String" require="1" name="ItemName" urlencode="1">
189
+ <pattern>^.{0,4096}$$</pattern>
190
+ </param>
191
+ <param type="String" require="1" name="ItemCount">
192
+ <pattern>^[\d\|]{0,4096}$</pattern>
193
+ </param>
194
+ <param type="String" require="1" name="ItemWord" urlencode="1">
195
+ <pattern>^.{0,4096}$</pattern>
196
+ </param>
197
+ <param type="String" require="1" name="ItemPrice">
198
+ <pattern>^[\d\|]{0,4096}$</pattern>
199
+ </param>
200
+ <param type="String" require="1" name="ItemTaxType">
201
+ <pattern>^.{0,4096}$</pattern>
202
+ </param>
203
+ <param type="String" require="1" name="ItemAmount">
204
+ <pattern>^[\d\|]{0,4096}$</pattern>
205
+ </param>
206
+ <param type="Opt" require="1" name="InvType">
207
+ <option>07</option>
208
+ <option>08</option>
209
+ </param>
210
+ <param type="Opt" require="1" name="DelayFlag">
211
+ <option>1</option>
212
+ <option>2</option>
213
+ </param>
214
+ <param type="String" require="1" name="DelayDay">
215
+ <pattern>^\d{1,15}$</pattern>
216
+ </param>
217
+ <param type="String" require="1" name="Tsr">
218
+ <pattern>^.{1,30}$</pattern>
219
+ </param>
220
+ <param type="String" require="1" name="PayType">
221
+ <pattern>^[2]$</pattern>
222
+ </param>
223
+ <param type="String" require="1" name="PayAct">
224
+ <pattern>^ECPAY$</pattern>
225
+ </param>
226
+ <param type="String" require="1" name="NotifyURL">
227
+ <pattern>^.{0,200}$</pattern>
228
+ </param>
229
+ </Parameters>
230
+ </InvoiceDelayIssue>
231
+ <InvoiceTriggerIssue>
232
+ <ServiceAddress>
233
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/TriggerIssue</url>
234
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/TriggerIssue</url>
235
+ </ServiceAddress>
236
+ <Config>
237
+ <switchparam>
238
+ </switchparam>
239
+ <optparam>
240
+ </optparam>
241
+ </Config>
242
+ <Parameters>
243
+ <param type="String" require="1" name="TimeStamp">
244
+ <pattern>^\d{10}$</pattern>
245
+ </param>
246
+ <param type="String" require="1" name="MerchantID">
247
+ <pattern>^\d{7,10}$</pattern>
248
+ </param>
249
+ <param type="String" require="1" name="Tsr">
250
+ <pattern>^.{1,30}$</pattern>
251
+ </param>
252
+ <param type="String" require="1" name="PayType">
253
+ <pattern>^[2]$</pattern>
254
+ </param>
255
+ </Parameters>
256
+ </InvoiceTriggerIssue>
257
+ <InvoiceAllowance>
258
+ <ServiceAddress>
259
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/Allowance</url>
260
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/Allowance</url>
261
+ </ServiceAddress>
262
+ <Config>
263
+ <switchparam>
264
+ </switchparam>
265
+ <optparam>
266
+ </optparam>
267
+ </Config>
268
+ <Parameters>
269
+ <param type="String" require="1" name="TimeStamp">
270
+ <pattern>^\d{10}$</pattern>
271
+ </param>
272
+ <param type="String" require="1" name="MerchantID">
273
+ <pattern>^\d{7,10}$</pattern>
274
+ </param>
275
+ <param type="String" require="1" name="InvoiceNo">
276
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
277
+ </param>
278
+ <param type="Opt" require="1" name="AllowanceNotify">
279
+ <option>S</option>
280
+ <option>E</option>
281
+ <option>A</option>
282
+ <option>N</option>
283
+ </param>
284
+ <param type="String" require="1" name="CustomerName" urlencode="1">
285
+ <pattern>^.{0,20}$</pattern>
286
+ </param>
287
+ <param type="String" require="1" name="NotifyMail" urlencode="1">
288
+ <pattern>^.{0,100}$</pattern>
289
+ </param>
290
+ <param type="String" require="1" name="NotifyPhone">
291
+ <pattern>^(\d{10,20}|)$</pattern>
292
+ </param>
293
+ <param type="Int" require="1" name="AllowanceAmount">
294
+ <mode>GE</mode> <!--BETWEEN, GE, LE, EXCLUDE -->
295
+ <maximum></maximum>
296
+ <minimal>1</minimal>
297
+ </param>
298
+ <param type="String" require="1" name="ItemName" urlencode="1">
299
+ <pattern>^.{0,4096}$</pattern>
300
+ </param>
301
+ <param type="String" require="1" name="ItemCount">
302
+ <pattern>^[\d\|]{0,4096}$</pattern>
303
+ </param>
304
+ <param type="String" require="1" name="ItemWord" urlencode="1">
305
+ <pattern>^.{0,4096}$</pattern>
306
+ </param>
307
+ <param type="String" require="1" name="ItemPrice">
308
+ <pattern>^[\d\|]{0,4096}$</pattern>
309
+ </param>
310
+ <param type="String" require="1" name="ItemTaxType">
311
+ <pattern>^.{0,4096}$$</pattern>
312
+ </param>
313
+ <param type="String" require="1" name="ItemAmount">
314
+ <pattern>^[\d\|]{0,4096}$</pattern>
315
+ </param>
316
+ </Parameters>
317
+ </InvoiceAllowance>
318
+ <InvoiceIssueInvalid>
319
+ <ServiceAddress>
320
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/IssueInvalid</url>
321
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/IssueInvalid</url>
322
+ </ServiceAddress>
323
+ <Config>
324
+ <switchparam>
325
+ </switchparam>
326
+ <optparam>
327
+ </optparam>
328
+ </Config>
329
+ <Parameters>
330
+ <param type="String" require="1" name="TimeStamp">
331
+ <pattern>^\d{10}$</pattern>
332
+ </param>
333
+ <param type="String" require="1" name="MerchantID">
334
+ <pattern>^\d{7,10}$</pattern>
335
+ </param>
336
+ <param type="String" require="1" name="InvoiceNumber">
337
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
338
+ </param>
339
+ <param type="String" require="1" name="Reason" urlencode="1">
340
+ <pattern>^.{0,4096}$</pattern>
341
+ </param>
342
+ </Parameters>
343
+ </InvoiceIssueInvalid>
344
+ <InvoiceAllowanceInvalid>
345
+ <ServiceAddress>
346
+ <url type="Production">https://einvoice.ecpay.com.tw/Invoice/AllowanceInvalid</url>
347
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Invoice/AllowanceInvalid</url>
348
+ </ServiceAddress>
349
+ <Config>
350
+ <switchparam>
351
+ </switchparam>
352
+ <optparam>
353
+ </optparam>
354
+ </Config>
355
+ <Parameters>
356
+ <param type="String" require="1" name="TimeStamp">
357
+ <pattern>^\d{10}$</pattern>
358
+ </param>
359
+ <param type="String" require="1" name="MerchantID">
360
+ <pattern>^\d{7,10}$</pattern>
361
+ </param>
362
+ <param type="String" require="1" name="InvoiceNo">
363
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
364
+ </param>
365
+ <param type="String" require="1" name="AllowanceNo">
366
+ <pattern>^\d{16}$</pattern>
367
+ </param>
368
+ <param type="String" require="1" name="Reason" urlencode="1">
369
+ <pattern>^.{0,4096}$</pattern>
370
+ </param>
371
+ </Parameters>
372
+ </InvoiceAllowanceInvalid>
373
+ <QueryIssue>
374
+ <ServiceAddress>
375
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/Issue</url>
376
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/Issue</url>
377
+ </ServiceAddress>
378
+ <Config>
379
+ <switchparam>
380
+ </switchparam>
381
+ <optparam>
382
+ </optparam>
383
+ </Config>
384
+ <Parameters>
385
+ <param type="String" require="1" name="TimeStamp">
386
+ <pattern>^\d{10}$</pattern>
387
+ </param>
388
+ <param type="String" require="1" name="MerchantID">
389
+ <pattern>^\d{7,10}$</pattern>
390
+ </param>
391
+ <param type="String" require="1" name="RelateNumber">
392
+ <pattern>^.{0,30}$</pattern>
393
+ </param>
394
+ </Parameters>
395
+ </QueryIssue>
396
+ <QueryAllowance>
397
+ <ServiceAddress>
398
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/Allowance</url>
399
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/Allowance</url>
400
+ </ServiceAddress>
401
+ <Config>
402
+ <switchparam>
403
+ </switchparam>
404
+ <optparam>
405
+ </optparam>
406
+ </Config>
407
+ <Parameters>
408
+ <param type="String" require="1" name="TimeStamp">
409
+ <pattern>^\d{10}$</pattern>
410
+ </param>
411
+ <param type="String" require="1" name="MerchantID">
412
+ <pattern>^\d{7,10}$</pattern>
413
+ </param>
414
+ <param type="String" require="1" name="InvoiceNo">
415
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
416
+ </param>
417
+ <param type="String" require="1" name="AllowanceNo">
418
+ <pattern>^\d{16}$</pattern>
419
+ </param>
420
+ </Parameters>
421
+ </QueryAllowance>
422
+ <QueryIssueInvalid>
423
+ <ServiceAddress>
424
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/IssueInvalid</url>
425
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/IssueInvalid</url>
426
+ </ServiceAddress>
427
+ <Config>
428
+ <switchparam>
429
+ </switchparam>
430
+ <optparam>
431
+ </optparam>
432
+ </Config>
433
+ <Parameters>
434
+ <param type="String" require="1" name="TimeStamp">
435
+ <pattern>^\d{10}$</pattern>
436
+ </param>
437
+ <param type="String" require="1" name="MerchantID">
438
+ <pattern>^\d{7,10}$</pattern>
439
+ </param>
440
+ <param type="String" require="1" name="RelateNumber">
441
+ <pattern>^.{0,30}$</pattern>
442
+ </param>
443
+ </Parameters>
444
+ </QueryIssueInvalid>
445
+ <QueryAllowanceInvalid>
446
+ <ServiceAddress>
447
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/AllowanceInvalid</url>
448
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/AllowanceInvalid</url>
449
+ </ServiceAddress>
450
+ <Config>
451
+ <switchparam>
452
+ </switchparam>
453
+ <optparam>
454
+ </optparam>
455
+ </Config>
456
+ <Parameters>
457
+ <param type="String" require="1" name="TimeStamp">
458
+ <pattern>^\d{10}$</pattern>
459
+ </param>
460
+ <param type="String" require="1" name="MerchantID">
461
+ <pattern>^\d{7,10}$</pattern>
462
+ </param>
463
+ <param type="String" require="1" name="InvoiceNo">
464
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
465
+ </param>
466
+ <param type="String" require="1" name="AllowanceNo">
467
+ <pattern>^\d{16}$</pattern>
468
+ </param>
469
+ </Parameters>
470
+ </QueryAllowanceInvalid>
471
+ <CheckMobileBarCode>
472
+ <ServiceAddress>
473
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/CheckMobileBarCode</url>
474
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/CheckMobileBarCode</url>
475
+ </ServiceAddress>
476
+ <Config>
477
+ <switchparam>
478
+ </switchparam>
479
+ <optparam>
480
+ </optparam>
481
+ </Config>
482
+ <Parameters>
483
+ <param type="String" require="1" name="TimeStamp">
484
+ <pattern>^\d{10}$</pattern>
485
+ </param>
486
+ <param type="String" require="1" name="MerchantID">
487
+ <pattern>^\d{7,10}$</pattern>
488
+ </param>
489
+ <param type="String" require="1" name="BarCode">
490
+ <pattern>^\/[A-Za-z0-9\ \-\+]{7}$</pattern>
491
+ </param>
492
+ </Parameters>
493
+ </CheckMobileBarCode>
494
+ <CheckLoveCode>
495
+ <ServiceAddress>
496
+ <url type="Production">https://einvoice.ecpay.com.tw/Query/CheckLoveCode</url>
497
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Query/CheckLoveCode</url>
498
+ </ServiceAddress>
499
+ <Config>
500
+ <switchparam>
501
+ </switchparam>
502
+ <optparam>
503
+ </optparam>
504
+ </Config>
505
+ <Parameters>
506
+ <param type="String" require="1" name="TimeStamp">
507
+ <pattern>^\d{10}$</pattern>
508
+ </param>
509
+ <param type="String" require="1" name="MerchantID">
510
+ <pattern>^\d{7,10}$</pattern>
511
+ </param>
512
+ <param type="String" require="1" name="LoveCode">
513
+ <pattern>^([Xx]\d{2,6}|\d{3,7})$</pattern>
514
+ </param>
515
+ </Parameters>
516
+ </CheckLoveCode>
517
+ <InvoiceNotify>
518
+ <ServiceAddress>
519
+ <url type="Production">https://einvoice.ecpay.com.tw/Notify/InvoiceNotify</url>
520
+ <url type="Test">https://einvoice-stage.ecpay.com.tw/Notify/InvoiceNotify</url>
521
+ </ServiceAddress>
522
+ <Config>
523
+ <switchparam>
524
+ </switchparam>
525
+ <optparam>
526
+ </optparam>
527
+ </Config>
528
+ <Parameters>
529
+ <param type="String" require="1" name="TimeStamp">
530
+ <pattern>^\d{10}$</pattern>
531
+ </param>
532
+ <param type="String" require="1" name="MerchantID">
533
+ <pattern>^\d{7,10}$</pattern>
534
+ </param>
535
+ <param type="String" require="1" name="InvoiceNo">
536
+ <pattern>^[A-Z]{2}\d{8}$</pattern>
537
+ </param>
538
+ <param type="String" require="1" name="AllowanceNo"><!-- Patten of this column is defined in verification.rb???-->
539
+ </param>
540
+ <param type="String" require="1" name="Phone">
541
+ <pattern>^(\d{10,20}|)$</pattern>
542
+ </param>
543
+ <param type="String" require="1" name="NotifyMail" urlencode="1">
544
+ <pattern>^.{0,80}$</pattern>
545
+ </param>
546
+ <param type="Opt" require="1" name="Notify">
547
+ <option>S</option>
548
+ <option>E</option>
549
+ <option>A</option>
550
+ </param>
551
+ <param type="Opt" require="1" name="InvoiceTag">
552
+ <option>I</option>
553
+ <option>II</option>
554
+ <option>A</option>
555
+ <option>AI</option>
556
+ <option>AW</option>
557
+ </param>
558
+ <param type="Opt" require="1" name="Notified">
559
+ <option>C</option>
560
+ <option>M</option>
561
+ <option>A</option>
562
+ </param>
563
+ </Parameters>
564
+ </InvoiceNotify>
565
+ </ecpayInvoice>