Anda di halaman 1dari 16

V 1.0.

V 1.0.0

2014/07/30

...................................................................................................................................... 3
.............................................................................................................................. 3
.................................................................................................................. 4
...................................................................................................................... 5
.............................................................................................................. 6
...................................................................................................................................... 9
CheckValue ........................................................................................................ 10
.............................................................................................................. 11


1.

ebATM
ATM

2.

API

3.


1.

HTTP POST

2.

Web Services RespondType


String JSON

3.

UTF-8


() https://capi.pay2go.com/API/QueryTradeInfo
1.

(1) https://cweb.pay2go.com/

(2)

2.

API Hash Key Hash IV


(1) /

(2) API Hash Key Hash IV

3.

30
() https://api.pay2go.com/API/QueryTradeInfo
1.

(1) https://www.pay2go.com/

(2)

2.

API Hash Key Hash IV


(1) /

(2) API Hash Key Hash IV

3.


Post

1.

MerchantID

Varchar(15)

Version

Varchar(5)

1.0

RespondType

Varchar(5)

JSONString

CheckValue

Varchar(255)


Unix 1970
1 1 00:00:00

TimeStamp

Varchar(50)

php
time()

2014-05-15 15:00:00
1400137200

1.
MerchantOrderNo

Varchar(20)

_
201406010001
2.

Amt

Int(10)

1000

<form action="https://api.pay2go.com/API/QueryTradeInfo" method="post">


<input type="text" name="MerchantID" value="123456"><br>
<input type="text" name=" Version" value="1.0"><br>
<input type="text" name="RespondType" value="JSON"><br>
<input type="text" name="CheckValue" value="abcdefg"><br>
<input type="text" name="TimeStamp" value="1234567890"><br>
<input type="text" name="MerchantOrderNo" value="a123456"><br>
<input type="text" name="Amt" value="100"><br>
<input type="submit" value="Submit">
</form>>

2.


Web Services
JSON String

1. SUCCESS

Status

Varchar(10)

2.

Message

Varchar(30)

MerchantID

Varchar(15)

Amt

Int(15)

TradeNo

Varchar(20)

MerchantOrderNo

Varchar(20)

0=
TradeStatus

Int(1)

1=
2=
3=

CREDIT=

PaymentType

VACC= ATM

Varchar(10)

WEBATM=
BARCODE=
CVS=

CreateTime

DateTime

PayTime

DateTime

2014-06-25 16:43:49

2014-06-25 16:43:49

CheckValue

Hash

Pay2go

1.

RespondCode

Varchar(10)

2.

1.

Auth

Varchar(10)

2.

1.3D eci=1,2,5,6 3D

ECI

ECI

Varchar (1)

2.

CloseAmt

Int(11)

0=

CloseStatus

Int(1)

1=
2=
3=

BackBalance

Int(11)

0=

BackStatus

Int(1)

1=
2=
3=

PHP JSON_ENCODE() JSON_DECODE


(1) JSON
{"Status":"SUCCESS","Message":"","
MerchantID":"123456","Amt":"10","MerchantOrderNo":"20140519193443" ," CheckValue
":"478AD4CE7CD7FA691D79172B9D7E "}

(2) String
Status=SUCCESS&Message=
&MerchantID=11250&Amt=10&MerchantOrderNo=20140519193443
&CheckValue=478AD4CE7CD7FA691D79172B9D7E

MEM40013

MEM40008

MEM40014

TRA10001

TRA10003

TRA10009

TRA10012

TRA10021

TRA10036

RespondType

TRA10037

TRA10054

(CheckValue)

CheckValue
1.

(Amt)(MerchantID)
(MerchantOrderNo)(TradeNo) A~Z
&

TradeNo CheckValue

2.

Key IV

3.

SHA256
PHP strtoupper(hash("sha256", $check_code_str))

1.

Amt=100&MerchantID=1422967&MerchantOrderNo=840f022

2.

Hash Key Hash IV


$check_code_str =
IV=1234567&Amt=100&MerchantID=1422967&MerchantOrderNo=840f022&Key
=abcdefg

3.

SHA256
157DF3A1113977D6322BEDA6F959DBF1CBD3A1E0381D7A989064B201CDE9
0502

10


<?php
$url = "https://capi.pay2go.com/API/QueryTradeInfo";
$merchant_id = "123456"; //
$key = "tZT07t9z5PxvMVN1YBJRtqzhaaZJo1pS";

// Key

$iv = "1jT8N2HSSfoFacH8"; // IV
$RespondType= "JSON";

// JSON String

$Amt = 1;
$MerchantOrderNo = "1401423320";
$CheckValue="IV=$iv&Amt=$Amt&MerchantID=$merchant_id&$MerchantOrderNo
=$MerchantOrderNo&Key=$key"
$ CheckValue = strtoupper(hash("sha256", $CheckValue))
function curl_work($url = "", $parameter = "") {
$curl_options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => "Google Bot",
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_POST => "1",
CURLOPT_POSTFIELDS => $parameter

//

);
$ch = curl_init();
curl_setopt_array($ch, $curl_options);
$result = curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_errno($ch);
curl_close($ch);

11

$return_info = array(
"url" => $url,
"sent_parameter" => $parameter,
"http_status" => $retcode,
"curl_error_no" => $curl_error,
"web_info" => $result
);
return $return_info;
}
//========
$post_data_array = array( //post_data
"RespondType" => $RespondType,
"Amt" => $Amt,
"TradeNo" =>$TradeNo,
"MerchantOrderNo" =>$MerchantOrderNo,
"TimeStamp" => time(),
"CheckValue" => $CheckValue,
);
$post_data_str = http_build_query($post_data_array);
$post_data = trim(bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128,
$key, addpadding($post_data_str), MCRYPT_MODE_CBC, $iv))); //
$transaction_data_array = array( //
"MerchantID_" => $merchant_id,
"PostData_" => $post_data
);
$transaction_data_str = http_build_query($transaction_data_array);

$result = curl_work($url, $transaction_data_str); //

if($RespondType=="JSON") {
echo " <hr>JSON <hr>";

12

$value = json_decode($result[web_info],TRUE); // json_decode

echo ":".$value[Status]."<br>";
echo ":".$value[Message]."<br>";
echo ":".$value[MerchantID]."<br>"; //
echo ":".$value[Amt]."<br>";

//

echo ":".$value[TradeNo]."<br>";

//

echo ":".$value[MerchantOrderNo]."<br>";
echo ":".$value[CheckValue]."<br>";

//

//

echo ":".$value[Status]."<br>"; //
echo ":".$value[PaymentType]."<br>"; //
echo ":".$value[PayTime]."<br>"; //
//
echo ":".$value[RespondCode]."<br>"; //
echo ":".$value[Auth]."<br>"; //
echo " ECI:".$value[ECI]."<br>"; // ECI
echo ":".$value[CloseAmt]."<br>"; //
echo ":".$value[CloseStatus]."<br>"; //
echo ":".$value[BackBalance]."<br>"; //

13

echo ":".$value[BackStatus]."<br>"; //
}
if($RespondType=="String") {
echo " <hr>String <hr>";
$str=$result['web_info'];
parse_str(trim($str),$value);
echo ":".$value[Status]."<br>";
echo ":".$value[Message]."<br>";
echo ":".$value[MerchantID]."<br>"; //
echo ":".$value[Amt]."<br>";

//

echo ":".$value[TradeNo]."<br>";

//

echo ":".$value[MerchantOrderNo]."<br>";
echo ":".$value[CheckValue]."<br>";

//

//

echo ":".$value[Status]."<br>"; //
echo ":".$value[PaymentType]."<br>"; //
echo ":".$value[PayTime]."<br>"; //
//
echo ":".$value[RespondCode]."<br>"; //
echo ":".$value[Auth]."<br>"; //
echo " ECI:".$value[ECI]."<br>"; // ECI

14

echo ":".$value[CloseAmt]."<br>"; //
echo ":".$value[CloseStatus]."<br>"; //
echo ":".$value[BackBalance]."<br>"; //
echo ":".$value[BackStatus]."<br>"; //

15

Anda mungkin juga menyukai