Professional Documents
Culture Documents
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
A-3: PHP
A-4: ASP
BAPI
CAPI
1PayPal
1-1: PayPal
PayPal ( API )
1-2: PayPal
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:
AUD
CAD
CZK
DKK
EUR
HKD
HUF
ILS
JPY
MXN
NOK
NZD
PLN
GBP
SGD
SEK
CHF
USD
TWD
2-1:
! utf-8 urlencode
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
expire_time
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
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
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:
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
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
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:
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
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
ECBank
https://ecbank.com.tw/web_service/barcode.php?mer_id=xxx&tsr=xxx&barcode=xxxx
html
<img src="https://ecbank.com.tw/web_service/barcode.php?mer_id=xxx&tsr=xxx&barcode=xxxxx" alt="
1">
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
! 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
;
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-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
! utf-8 urlencode
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
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
expire_time
<?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
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