You are on page 1of 27

ECBank API

ECBank API

V1.4

2011/01/28

1 PayPal

1-1: PayPal

1-2: PayPal

1-3: PayPal

1-4:

1-5:

2-1:

2-2:

2-3: php

2-4:

3WEB-ATM

3-1: WEB-ATM

3-2: WEB-ATM

4-1:

4-2:

4-3: php

4-4:

5-1:

5-2:

5-2-1:

5-3: php

5-4:

67-Eleven ibon

6-1: 7-Eleven ibon

6-2: 7-Eleven ibon

6-3: 7-Eleven ibon php

6-4: 7-Eleven ibon


A

A-1: Web Service

A-2: Web Service

A-3: PHP

A-4: ASP

BAPI

CAPI

1PayPal

1-1: PayPal

PayPal ECBank API PayPal

PayPal ( API )

PayPal PayPal ECBank

ECBank API PayPal PayPal ECBank PayPal


PayPal API

1-2: PayPal

API HTML FORM/POST


<form method="post" action="https://ecbank.com.tw/gateway.php">

input type="hidden"
<input type="hidden" name="" value="">

ECBank mer_id

payment_type *

paypal ()

od_sob

(_) 30

item_name

item_desc

cur_type

amt

60 (60 )
60 (60 )

3 ()1-4:

10,000
(USD)
ex: 1200.2 128.34
JPY

err_code 2000

PayPal

PayPal
cancel_url

return_url

http
ECBank
POST http
ECBank

1-3: PayPal

POST return_url

ECBank

mer_id

ECBank

payment_type

paypal

tsr

od_sob

PayPal

seller_email

ECBank PayPal

cur_type

3 ()
1-4:

amt

+ ex: 88.0017.33
0.150.90
1
0:

succ

err_code

1:
2: ( PayPal
PayPal
)
10
0:
0 BAPI

proc_date

8 4 +2 +2
ex:20091012

proc_time

6 24 2 +2 +2
ex:171836

40
ECBank A

tac

PAPAL ID paypal_transactionid

19 Byte

payer_firstname

25 Byte

payer_lastname

25 Byte
10 Byte

payer_status

verified:
unverified:

PayPal

payer_email

127 Byte

payer_countrycode

2 1-5:

ship_name

32 Byte

()1

ship_street

100 Byte

()2

ship_street2

100 Byte

()

ship_city

40 Byte

(//) ship_state

40 Byte

()

ship_zip

20 Byte

()

ship_countrycode

2 1-5:

()

ship_countryname

100 Byte

20 Byte

ship_addrstatus

trigger

none:
Confirmed:
Unconfirmed:
virtual
;

1-4:

ECBank PayPal PayPal ECBank API

AUD

CAD

CZK

DKK

EUR

HKD

HUF

ILS

JPY

MXN

NOK

NZD

PLN

GBP

SGD

SEK

CHF

USD

TWD

2-1:

API HTML GET


https://ecbank.com.tw/gateway.php?mer_id=xxxx&payment_type=cvs&enc_key=xxxx&od_sob=xxxx&a
mt=200&prd_desc=hellokitty%E7%8E%A9%E5%81%B6&ok_url=xxxx

! utf-8 urlencode

ok_url utf-8 urlencode urlencode php 2-3:


php

ECBank

mer_id

payment_type *

enc_key

cvs ()
ECBank TRIPLE-DES
(_) 30

od_sob

amt

prd_desc

desc1

30 20,000 (
)
() 20
(20 )
() 10
(10 )

desc2

() 10
(10 )

desc3

() 10
(10 )

desc4

() 10
(10 )
ECBank POST
http
ECBank 2-4:

ok_url

2-2:

GET &
error=0&mer_id=xxx&tsr=xxx&od_sob=xxx&amt=xxx&payno=xxx&expire_date=xxx&expire_time=
xxx

error

0 :
0

mer_id

error 0

tsr

error 0

od_sob

error 0

amt

error 0

payno

error 0

expire_date

error 0 YYYYMMDD 20121221

expire_time

error 0 HHIISS 230859

2-3: php

<?php
// ECBank
$mer_id = '1';

// ()
$prd_desc = rawurlencode('HelloKitty ');
$desc1
$desc2
$desc3
$desc4

=
=
=
=

rawurlencode('');
rawurlencode('w30 h60');
rawurlencode('2010 ');
rawurlencode('');

// ECBank
$enc_key = '12345678901234567890';
//
$amt = '300';
//
$ok_url
=rawurlencode('https://xxxx.com.tw/test/ecbank_family_auth.jsp');
// ECBank
$ecbank_auth_url = 'https://ecbank.com.tw/gateway.php?payment_type=cvs'.
'&mer_id='.$mer_id.
'&enc_key='.$enc_key.
'&amt='.$amt.
'&prd_desc='.$prd_desc.
'&desc1='.$desc1.
'&desc2='.$desc2.
'&desc3='.$desc3.
'&desc4='.$desc4.
'&ok_url='.$ok_url;
// GET ( curl)
$strAuth = file_get_contents($ecbank_auth_url);
//
parse_str($strAuth, $res);
// 2-2
if(!isset($res['error']) || $res['error'] != '0')
echo '';
else {
echo ': '.$res['tsr'];
echo ': '.$res['payno'];

?>
2-4:

POST ok_url

ok_url ECBank POST OK ECBank ( OK


5

ECBank mer_id

ECBank

payment_type *

tsr

od_sob

payno

14

amt

1
0:
1:

family:
hilife:
okmart: OK

succ

cvs

payfrom

proc_date

proc_time

6 24 2 +2 +2
ex:171836

tac

40
ECBank A

8 4 +2 +2
ex:20091012


virtual

trigger

3WEB-ATM

3-1: WEB-ATM

API HTML FORM/POST


<form method="post" action="https://ecbank.com.tw/gateway.php">

input type="hidden"
<input type="hidden" name="" value="">

ECBank

mer_id

payment_type *

web_atm ()

WEB-ATM

setbank
WEB-ATM
YUANTA :
ESUN :
(_) 30

od_sob

amt

10 2,000,000
()
POST http

return_url

ECBank

3-2: WEB-ATM

POST return_url

ECBank

mer_id

ECBank

payment_type *

tsr

od_sob

amt

web_atm

1
*

succ

payer_bank

0:
1:
3

5 payer_acc

proc_date

8 4 +2 +2
ex:20091012

proc_time

6 24 2 +2 +2
ex:171836

40
ECBank A

tac

virtual

trigger

4-1:

API HTML GET


https://ecbank.com.tw/gateway.php?mer_id=xxxx&payment_type=vacc&setbank=xxxx&enc_key=xxxx
&od_sob=xxxx&amt=200&expire_day=3&ok_url=xxxx

ECBank

mer_id

payment_type *

vacc ()

setbank

enc_key

ECBank TRIPLE-DES
(_) 30

od_sob

ESUN:

amt

expire_day

10
2,000,000 ()

60 7/1
, 3 7/4 23:59
atm ECBank POST
http
ECBank 4-4:

ok_url

4-2:

GET &
error=0&mer_id=xxx&tsr=xxx&bankcode=xxx&vaccno=xxx&amt=xxx&expire_date=xxx

error

0 :
0

mer_id

error 0

tsr

error 0

od_sob

error 0

error 0

bankcode

vaccno

error 0

amt

error 0

expire_date

error 0 YYYYMMDD 20121221

4-3: php

<?php
// ECBank
$mer_id = '1';
//
$setbank = 'ESUN'; //
// ECBank
$enc_key = '12345678901234567890';
//
$expire_day = '3';
//
$amt = '300';
//
$ok_url =rawurlencode('https://xxxx.com.tw/test/ecbank_vacc_auth.jsp');
// ECBank
$ecbank_auth_url =
'https://ecbank.com.tw/gateway.php?payment_type=vacc'.
'&mer_id='.$mer_id.
'&setbank='.$setbank.
'&enc_key='.$enc_key.
'&amt='.$amt.
'&expire_day='.$expire_day.
'&ok_url='.$ok_url;
// GET ( curl)
$strAuth = file_get_contents($ecbank_auth_url);
//
parse_str($strAuth, $res);

//
if(!isset($res['error']) || $res['error'] != '0')
echo
else {
echo
echo
echo
}

'';
': '.$res['tsr'];
': '.$res['bankcode'];
': '.$res['vaccno'];

?>
4-4:

POST ok_url

ok_url ECBank POST OK ECBank ( OK


5

ECBank

mer_id

ECBank

payment_type *

tsr

od_sob

amt

expire_date

8 4 +2 +2
ex:20091012

vacc

succ

1
0:
1:

payer_bank

5 payer_acc

proc_date

8 4 +2 +2
ex:20091012

proc_time

6 24 2 +2 +2
ex:171836

40
ECBank A

tac

virtual

trigger

5-1:

API HTML GET


https://ecbank.com.tw/gateway.php?mer_id=xxxx&payment_type=barcode&enc_key=xxxx&od_sob=xx
xx&amt=200&expire_day=3&ok_url=xxxx

ECBank

mer_id

payment_type *

enc_key

amt

expire_day

ECBank TRIPLE-DES
(_) 30

od_sob

barcode ()

25
2,000,000 ()

60 7/1
, 3 7/4 23:59
()ECBank

ok_url

5-2:

POST http
ECBank
5-4:

GET &
error=0&mer_id=xxx&tsr=xxx&bankcode=xxx&vaccno=xxx&amt=xxx&expire_date=xxx

error

0 :
0

mer_id

error 0

tsr

error 0

od_sob

error 0

amt

error 0

expire_date

error 0 YYYYMMDD 20121221

barcode1

error 0 9

barcode2

error 0 16

barcode3

error 0 15

5-2-1:

ECBank
https://ecbank.com.tw/order/barcode_print.php?mer_id=xxx&tsr=xxx

mer_id tsr ECBank

ECBank

https://ecbank.com.tw/web_service/barcode.php?mer_id=xxx&tsr=xxx&barcode=xxxx

mer_id tsr barcode (


)

html
<img src="https://ecbank.com.tw/web_service/barcode.php?mer_id=xxx&tsr=xxx&barcode=xxxxx" alt="
1">

* 400x70 img (ex width="200")

5-3: php

<?php
// ECBank
$mer_id = '1';
// ECBank
$enc_key = '12345678901234567890';
//
$amt = '300';
//
$expire_day = 3;
//
$ok_url =rawurlencode('https://xxxx.com.tw/test/ecbank_auth.jsp');
// ECBank
$ecbank_auth_url =
'https://ecbank.com.tw/gateway.php?payment_type=barcode'.
'&mer_id='.$mer_id.
'&enc_key='.$enc_key.
'&expire_day='.$expire_day.
'&amt='.$amt.
'&ok_url='.$ok_url;
// GET ( curl)
$strAuth = file_get_contents($ecbank_auth_url);
//
parse_str($strAuth, $res);
//
if(!isset($res['error']) || $res['error'] != '0')
echo '';
else {
echo ': '.$res['tsr'];
echo ' 1: '.$res['barcode1'];
echo ' 2: '.$res['barcode2'];
echo ' 3: '.$res['barcode3'];
echo ':
https://ecbank.com.tw/order/barcode_print.php?mer_id='.$mer_id.

'&tsr='.$res['tsr'];
echo '<img
src="https://ecbank.com.tw/web_service/barcode.php?mer_id='.$mer_id.
'&tsr='.$res['tsr'].'&barcode='.$res['barcode1'].'" alt="
1">';
echo '<img
src="https://ecbank.com.tw/web_service/barcode.php?mer_id='.$mer_id.
'&tsr='.$res['tsr'].'&barcode='.$res['barcode2'].'" alt="
2">';
echo '<img
src="https://ecbank.com.tw/web_service/barcode.php?mer_id='.$mer_id.
'&tsr='.$res['tsr'].'&barcode='.$res['barcode3'].'" alt="
3">';
}
?>
5-4:

POST ok_url

ok_url ECBank POST OK ECBank ( OK


5

! ECBank ok_url
1~5

ECBank mer_id

ECBank

payment_type *

tsr

original_tsr

od_sob

amt

1
0:
1:

succ

barcode

paid_date

8 4 +2 +2
ex:20091012

proc_date

8 4 +2 +2
ex:20091012

proc_time

6 24 2 +2 +2
ex:171836
40

tac

trigger

ECBank A

virtual
;

A-1: Web Service

ECBank tsr()proc_date()proc_time(
)tac() ok_url / return_urlECBank Web Service
ECBank

ECBank GET
https://ecbank.com.tw/web_service/get_outmac_valid.php?key=xxxxxx&serial=xxxxxx&tac=xxxxxx

key

Triple-DES Key 24 (
) ECBank ->->
->->->
return_url (proc_date)+

serial

tac

(proc_time)+(tsr)
serial = "2009010117010511"
ok_url / return_url tac 40 (
)

A-2: Web Service

Http GET Web Service valid=1 () valid=0()

5-3: PHP 5-4: ASP


HTTP GET

A-3: PHP

<?php
// ECBank
$key = '123456789012345678901234';
//
$serial =
trim($_REQUEST['proc_date'].$_REQUEST['proc_time'].$_REQUEST['tsr']);
//
$tac = trim($_REQUEST['tac']);
// ECBank Web Service
$ws_url =
'https://ecbank.com.tw/web_service/get_outmac_valid.php?key='.$key.
'&serial='.$serial.
'&tac='.$tac;
// ( curl)
$tac_valid = file_get_contents($ws_url);
if($tac_valid == 'valid=1')
echo '';
else
echo '';
?>
A-4: ASP

<%
Dim key, serival, tac, tac_valid

'// ECBank
key = "123456789012345678901234"
'//
serial = trim(REQUEST("proc_date") & REQUEST("proc_time") &
REQUEST("tsr"))
'//
tac = trim(REQUEST("tac"))
'// ECBank Web Service
ws_url = "https://ecbank.com.tw/web_service/get_outmac_valid.php?key=" &
key & _
"&serial=" & serial & _
"&tac=" & tac
'//
Set WinHttpReq = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
WinHttpReq.Open "GET", ws_url, false
WinHttpReq.Send
tac_valid = WinHttpReq.ResponseText
Set WinHttpReq = Nothing
If (tac_valid = "valid=1") Then
Response.write ""
Else
Response.write ""
End If
%>

67-Eleven ibon

6-1: 7-Eleven ibon

7-ELEVEN ibon ibon

API HTML GET


https://ecbank.com.tw/gateway.php?mer_id=xxxx&payment_type=ibon&enc_key=xxxx&od_sob=xxxx&
amt=200&prd_desc=hellokitty%E7%8E%A9%E5%81%B6&ok_url=xxxx

! utf-8 urlencode

ok_url utf-8 urlencode urlencode php 6-3:


7-Eleven ibon php

! payment_type=ibon 7-ELEVEN ibon

ECBank

mer_id

payment_type *

enc_key

ibon ()
ECBank TRIPLE-DES
(_) 30

od_sob

amt

30 20,000 (
)

prd_desc

() 20
(20 )

desc1

() 20
(20 )

desc2

() 20
(20 )

desc3

() 20
(20 )
ECBank POST
http
ECBank 6-4: 7-Eleven
ibon

ok_url

6-2: 7-Eleven ibon

GET &
error=0&mer_id=xxx&tsr=xxx&od_sob=xxx&amt=xxx&payno=xxx&expire_date=xxx&expire_time=
xxx

error

0 :

mer_id

error 0

tsr

error 0

od_sob

error 0

amt

error 0

payno

error 0

expire_date

error 0 YYYYMMDD 20121221

expire_time

error 0 HHIISS 230859

6-3: 7-Eleven ibon php

<?php
// ECBank
$mer_id = '1';
// ()
$prd_desc = rawurlencode('HelloKitty ');
$desc1 = rawurlencode('');
$desc2 = rawurlencode('w30 h60');
$desc3 = rawurlencode('2010 ');
// ECBank
$enc_key = '12345678901234567890';
//
$amt = '300';
//
$ok_url =rawurlencode('https://xxxx.com.tw/test/ecbank_ibon_auth.jsp');
// ECBank
$ecbank_auth_url =
'https://ecbank.com.tw/gateway.php?payment_type=ibon'.
'&mer_id='.$mer_id.
'&enc_key='.$enc_key.

'&amt='.$amt.
'&prd_desc='.$prd_desc.
'&desc1='.$desc1.
'&desc2='.$desc2.
'&desc3='.$desc3.
'&ok_url='.$ok_url;
// GET ( curl)
$strAuth = file_get_contents($ecbank_auth_url);
//
parse_str($strAuth, $res);
// 6-2
if(!isset($res['error']) || $res['error'] != '0')
echo '';
else {
echo ': '.$res['tsr'];
echo ': '.$res['payno'];
}

?>
6-4: 7-Eleven ibon

POST ok_url

ok_url ECBank POST OK ECBank ( OK


5

ECBank mer_id

ECBank

payment_type *

tsr

od_sob

payno

12

ibon

amt

+
1

succ

payfrom

ibon

proc_date

8 4 +2 +2
ex:20091012

proc_time

6 24 2 +2 +2
ex:171836

0:
1:

40

tac

ECBank A

BAPI

1xxx 9xxx

1000

1001

1002

1003

1004

1005

1099

1100

PayPal

1101

1102

PayPal API

1103

PayPal

1104

1105

1106

1107

1108

1200

WEB-ATM

1201

1300

1301

1400

1401

1402

1500

1501

1502

1600

7-ELEVEN

1601

1602

1700

1701

1800

ibon

1801

1900

1901

1902

1903

80

1904

1905

1906

2000

PayPal

2900

9000

9001

9002

9999

CAPI

API
02-2655-1775 #3211 #3222 #3233 #3255

You might also like