台灣最大裝潢接案平台
輕鬆接案網
租屋五星級服務搬家公司!價格優口碑好
專業團隊,老客戶推薦!

首頁  •  j2h 論壇 • 新手討論     • 

[測試]test

房東:test
發表時間:2014-05-30


超商代碼串接範例
1. 超商代碼CVS取號
$key = " Allpay所提供AES加解密用的key ";
$iv = " Allpay所提供AES加解密用的iv ";
/*根據您的繳費方式輸入固定參數 (全家、OK、萊爾富超商代碼付款則填CVS_CVS;7-11超商代碼付款則填CVS_IBON;超商條碼付款則填BARCODE_BARCODE)*/
$PaymentType = "CVS_CVS";
//廠商編號
$MerchantID='1234567';
//廠商交易編號(不可重複)。
$MerchantTradeNo = '100';
//廠商交易時間。
$MerchantTradeDate = date('Y/m/d h:i:s');
//交易金額 30~20,000。
$TradeAmount = '500';
//需與PaymentType相同。
$TradeType = 'CVS_CVS';
//交易描述(必填),要使用UTF8格式進行urlencode。
$TradeDesc=urlencode('必填交易描述');
//交易描述(Desc1~Desc4),要使用UTF8格式進行urlencode。
$Desc1=urlencode('選填交易描述');
$Desc2=urlencode('選填交易描述');
$Desc3=urlencode('選填交易描述');
$Desc4=urlencode('選填交易描述');
//付款成功通知的網址,要使用UTF8格式進行urlencode。
$ReplyURL=urlencode('http://付款成功要通知的網址');
//備註,可空白
$Remark='備註,可空白';
//欲傳遞的參數要組成xml,建立xml_base Function
function xml_base() {
$xml = "


[+++MerchantID+++]
[+++MerchantTradeNo+++]
[+++MerchantTradeDate+++]
[+++TradeAmount+++]
CVS_CVS
[+++TradeAmount+++]
[+++Desc_1+++]
[+++Desc_2+++]
[+++Desc_3+++]
[+++Desc_4+++]
[+++ReplyURL+++]
[+++Remark+++]

";
//為避免產生的xml檔案包含空白、斷行,所以要進行斷行、空白刪除動作
$xml = trim($xml);
$xml = str_replace("\t", "", $xml);
$xml = str_replace("\r\n", "", $xml);
$xml = str_replace("\r", "", $xml);
$xml = str_replace("\n", "", $xml);
$xml = str_replace(" ", "", $xml);
//在建立好的xml檔案上頭加上版本與語系
$xml = "" . $xml;
return $xml;
}
//Padding PKCS7的Function
function addpadding($string, $blocksize = 16) {
$len = strlen($string);
$pad = $blocksize - ($len % $blocksize);
$string .= str_repeat(chr($pad), $pad);
return $string;
}
//AES與base64編碼 之加密Function
function encrypt($inputValue, $key, $iv) {
$str = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, addpadding($inputValue), MCRYPT_MODE_CBC, $iv)));
return $str;
}
//呼叫xml_base Function
$XMLData = xml_base();
/*將[+++MerchantID+++]替換成$MerchantID,
才能夠將要傳送的值放入function後產生正確的XMLData*/
$XMLData= str_replace("[+++MerchantID+++]", $MerchantID, $XMLData);
$XMLData= str_replace("[+++MerchantTradeNo+++]", $MerchantTradeNo, $XMLData);
$XMLData= str_replace("[+++MerchantTradeDate+++]", $MerchantTradeDate, $XMLData);
$XMLData= str_replace("[+++TradeAmount+++]", $TradeAmount, $XMLData);
$XMLData= str_replace("[+++TradeType+++]", $TradeType, $XMLData);
$XMLData= str_replace("[+++TradeDesc+++]", $TradeDesc, $XMLData);
$XMLData= str_replace("[+++Desc_1+++]", $Desc_1, $XMLData);
$XMLData= str_replace("[+++Desc_2+++]", $Desc_2, $XMLData);
$XMLData= str_replace("[+++Desc_3+++]", $Desc_3, $XMLData);
$XMLData= str_replace("[+++Desc_4+++]", $Desc_4, $XMLData);
$XMLData= str_replace("[+++ReplyURL+++]", $ReplyURL, $XMLData);
$XMLData= str_replace("[+++Remark+++]", $Remark, $XMLData);
//進行加密
$encode_XMLData = encrypt($XMLData, $key, $iv);
//將要傳送的PaymentType、MerchantID、加密過的XMLData組成一字串
$post_str = 'PaymentType=' . $PaymentType . '&MerchantID=' . $MerchantID . '&XMLData=' . $encode_XMLData;
//到介接網址用curl 背景取號,使用get方式
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://pay.allpay.com.tw/payment/Srv/gateway?' . $post_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$print = curl_exec($ch);
//關閉curl
curl_close($ch);
//印出取得的資料
print_r($print);
?>


2. 付款通知
//Padding PKCS7解密
function strippadding($string) {
$slast = ord(substr($string, -1));
$slastc = chr($slast);
$pcheck = substr($string, -$slast);
if (preg_match("/$slastc{" . $slast . "}/", $string)) {
$string = substr($string, 0, strlen($string) - $slast);
return $string;
} else {
return false;
}
}
//xml解密
function decrypt($sValue, $key, $iv) {
$sValue = str_replace(' ', '+', $sValue);
$str = strippadding(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,base64_decode($sValue),MCRYPT_MODE_CBC, $iv));
return $str;
}
$key = " Allpay所提供AES加解密用的key ";
$iv = " Allpay所提供AES加解密用的iv";
//接收資料
$XMLData = $_POST["XMLData"];
//解密資料
$rs = decrypt($XMLData,$key,$iv);
//回傳結果解密
$result_data = simplexml_load_string($rs);
//顯示資料
echo "廠商編號: " . (string) $result_data->Data->MerchantID . "
";
echo "廠商交易編號: " . (string) $result_data->Data-> MerchantTradeNo. "
";
echo "交易狀態: " . (string) $result_data->Data->RtnCode . "
";
echo "交易訊息: " . (string) $result_data->Data->RtnMsg. "
";
echo "AllPay交易編號: " . (string) $result_data->Data-> TradeNo. "
";
echo "付款時間: " . (string) $result_data->Data-> PayDate. "
";
echo "交易金額: " . (string) $result_data->Data-> TradeAmount . "
";
echo "繳費代碼: " . (string) $result_data->Data-> PaymentNo . "
";
echo "繳費超商: " . (string) $result_data->Data-> PayFrom . "
";
?>


3. 交易查詢作業(Web Service)
$key = " Allpay所提供AES加解密用的key";
$iv = " Allpay所提供AES加解密用的iv";
//廠商編號。
$MerchantID = '1234567';
//要查詢的廠商交易編號(不可重複)。
$MerchantTradeNo = '100';
//要查詢的web service位址。
$url='https://pay.allpay.com.tw/merchantapi/cvs.asmx ';
//Padding PKCS7 的Function
function addpadding($string, $blocksize = 16) {
$len = strlen($string);
$pad = $blocksize - ($len % $blocksize);
$string .= str_repeat(chr($pad), $pad);
return $string;
}
//AES與base64編碼之加密Function
function encrypt($inputValue, $key, $iv) {
$str = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, addpadding($inputValue), MCRYPT_MODE_CBC, $iv)));
return $str;
}
//將廠商交易編號加密
$Encode_MerchantTradeNo = encrypt($MerchantTradeNo, $key, $iv);
//透過curl方式傳送資料
$ch = curl_init();
/*由於必須傳送soap xml格式的資料,所以先用$PostData將要傳送的參數組成soap格式的xml。可進入web service位址查看soap 格式的xml寫法*/
$PostData="$MerchantID$Encode_MerchantTradeNo";
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept-Language:zh-tw',
'charset=utf-8',
'Content-Type:application/soap+xml',
'Host:pay.allpay.com.tw',
));
//CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);
$temp=curl_exec($ch);
// 關閉CURL連線
curl_close($ch);
//印出查詢結果
print_r($temp);
?>


4. 交易查詢作業(Html Form post)
$key = " Allpay所提供AES加解密用的key ";
$iv = " Allpay所提供AES加解密用的iv ";
$MerchantID = '1234567'; //廠商編號
$MerchantTradeNo = '100'; //廠商交易編號
$url='http://pay.allpay.com.tw/payment/cvsquery';
//Padding PKCS7的 Function
function addpadding($string, $blocksize = 16) {
$len = strlen($string);
$pad = $blocksize - ($len % $blocksize);
$string .= str_repeat(chr($pad), $pad);
return $string;
}
//AES與base64編碼加密 Function
function encrypt($inputValue, $key, $iv) {
$str = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, addpadding($inputValue), MCRYPT_MODE_CBC, $iv)));
return $str;
}
//將廠商交易編號加密
$Encode_MerchantTradeNo = encrypt($MerchantTradeNo, $key, $iv);
//以Form post的方式傳送資料到介接網址
$p = "




";
echo $p;
?>


5. 查詢超商條碼網址(用於付款方式為Barcode)
$key = " Allpay所提供AES加解密用的key ";
$iv = " Allpay所提供AES加解密用的iv ";
//廠商編號
$MerchantID = '1234567';
//廠商交易編號
$MerchantTradeNo = '100';
//要查詢的網址
$url='https://pay.allpay.com.tw/barcode/getbarcode';
//Padding PKCS7的Function
function addpadding($string, $blocksize = 16) {
$len = strlen($string);
$pad = $blocksize - ($len % $blocksize);
$string .= str_repeat(chr($pad), $pad);
return $string;
}
//AES與base64編碼加密 Function
function encrypt($inputValue, $key, $iv) {
$str = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, addpadding($inputValue), MCRYPT_MODE_CBC, $iv)));
return $str;
}
//將廠商交易編號加密
$Encode_MerchantTradeNo = encrypt($MerchantTradeNo);
//用form post傳送到位址
$p = "




";
echo $p;
?>




  • 贊助網站       

    租屋網
    提供租屋資訊、租屋廣告刊登、房屋託租、房客尋屋、租屋配對、電子地圖、房屋資料上傳
    搬家公司
    本公司為政府立案專業搬家公司,我們秉持客戶至上,正派經營理念,在大台北縣市一直有口碑
    明日黃金屋
    買屋、賣屋、租屋、出租、房東租屋刊登、並提供租屋、最專業的服務、最安全親切的交易。



  •  共 0 人回應

    姓名:
    佈告內容:
    其他選項: