綠界(EC pay) – PHP串接

為了能收信用卡跟Apple pay

串接了綠界

綠界串接方法需要使用 FORM 轉頁,所以需要自己做一頁簡單的html

<?php
include("./EC_CheckMacValue.php");

$paymentUrl = "https://payment.ecpay.com.tw/Cashier/AioCheckOut/V5";
$MerchantID        = "跟綠界要";         //廠商ID
$MerchantTradeNo   = "一個不重複的隨機亂碼";    //自己產生的訂單id(不能重複)
$MerchantTradeDate = date("Y/m/d H:i:s");
$PaymentType       = "aio";

$TotalAmount        = "123";       //金額
$TradeDesc          = "付款描述";
$ItemName           = "付款描述";


$ReturnURL         = "在綠界付款後,接收回呼的網址";
$ChoosePayment     = "Credit";   //我這邊只接受信用卡,其實還有其他選項
$EncryptType       = "1";
$HashKey = "";          //跟綠界要
$HashIV   = "";         //跟綠界要
$method = 'sha256';

$reqObj = array();
$reqObj["MerchantID"] = $MerchantID;
$reqObj["MerchantTradeNo"] = $MerchantTradeNo;
$reqObj["MerchantTradeDate"] = $MerchantTradeDate;
$reqObj["PaymentType"] = $PaymentType;
$reqObj["TotalAmount"] = $TotalAmount;
$reqObj["TradeDesc"] = $TradeDesc;
$reqObj["ItemName"] = $ItemName;
$reqObj["ReturnURL"] = $ReturnURL;
$reqObj["ChoosePayment"] = $ChoosePayment;
$reqObj["EncryptType"] = $EncryptType;

$chk = new CheckMacValueService($HashKey, $HashIV, $method);
$CheckMacValue = $chk->generate($reqObj);

?>

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
    <meta charset="UTF-8">
    <title>綠界付款頁面</title>
</head>
<body>
    <form id="ecpay-form" method="post" action="<?php echo $paymentUrl; ?>">
        <input type="hidden" name="MerchantID" value="<?php echo $MerchantID; ?>">
        <input type="hidden" name="MerchantTradeNo" value="<?php echo $MerchantTradeNo; ?>">
        <input type="hidden" name="MerchantTradeDate" value="<?php echo $MerchantTradeDate; ?>">
        <input type="hidden" name="PaymentType" value="<?php echo $PaymentType; ?>">
        <input type="hidden" name="TotalAmount" value="<?php echo $TotalAmount; ?>">
        <input type="hidden" name="TradeDesc" value="<?php echo $TradeDesc; ?>">
        <input type="hidden" name="ItemName" value="<?php echo $ItemName; ?>">
        <input type="hidden" name="ReturnURL" value="<?php echo $ReturnURL; ?>">
        <input type="hidden" name="ChoosePayment" value="<?php echo $ChoosePayment; ?>">
        <input type="hidden" name="EncryptType" value="<?php echo $EncryptType; ?>">
        <input type="hidden" name="CheckMacValue" value="<?php echo $CheckMacValue; ?>">
    </form>

    <script>
        document.getElementById("ecpay-form").submit();
    </script>
</body>
</html>

以上就是一個能使用的範例,另外這個工具檔案是綠界提供的

然後需要另一隻php 來接收 綠界付款後送過來確認的訊息,這隻要記得最後要 echo ‘1|OK’;

<?php
include("./EC_CheckMacValue.php");
$HashKey = "跟綠界要";
$HashIV   = "跟綠界要";
$method = 'sha256';

$reqObj = $_POST;

$chk = new CheckMacValueService($HashKey, $HashIV, $method);
$CheckMacValue = $chk->generate($reqObj);

if($_POST["CheckMacValue"] == $CheckMacValue && $_POST["RtnCode"] == "1"){
    //刷卡成功,這邊可以取出綠界傳過來的訊息,自己做驗證看是不是有這筆訂單等等...
    $amount = $_POST["TradeAmt"];
    $EC_TradeNo = $_POST["TradeNo"];        //這個就是一開始傳送的 MerchantTradeNo
    $paymentTypeChargeFee  = $_POST["PaymentTypeChargeFee"];
    $rtnCode = $_POST["RtnCode"];
    $rtnMsg = $_POST["RtnMsg"];
    $simulatePaid = $_POST["SimulatePaid"];
}
echo '1|OK';

?>

發佈留言