PHP新手30天實戰金流, Laravel6資料來源:一次搞懂電商金流、2017台灣電商產業地圖---金流篇
商家如果只是想要提供線上刷卡付款的功能,其實可以直接找各大銀行的「線上信用卡收單服務」,但要與銀行合作得先有一定的條件,而且 API 要一家ㄧ家銀行接,因此大多電商都會透過第三方來處理金流部分,這樣電商處理的業務較單純。不過,銀行入帳時間較為快速,一般約為 1-7 天內入帳;而金流公司約 7-14 天入帳。


目前全台約有4785間第三方支付,卻只有5間電子支付:歐付寶(綠界)、橘子支付、國際連、智付寶、台灣支付。
較大的三家公司:
 
紅陽:Web ATM即時付、ChinaPay銀聯卡支付、24Payment超商代收付機制 、BuySafe線上刷卡機制、EDC POS實體刷卡機、e'safe 實體刷卡機制/行動刷卡機制、MSTS全方位金流服務
藍新:EZpay台灣支付【網路商店金流(信用卡收款:Apple Pay/線上分期/定期定額/信用卡;非信用卡收款:7-11、全家、萊爾富、OK、實體ATM/網路ATM)、實體商店金流(虛擬刷卡機)、行動商務+社群商務】
綠界:信用卡、ATM櫃員機/網路ATM、超商條碼/代碼(支援7-ELEVEN、全家、萊爾富、OK)
聽說綠界介接較簡易,我們就先從綠界開始吧!今天先下載安裝,讀點文件就好!
下載SDK
基本應用的主要流程:
Step 1. 將訂單資料以 POST(HTTP Method)傳送至綠界
Step 2. 取號結果通知
1. 從網址[PaymentInfoURL]接收取號結果,並判斷檢查碼是否相符
2. 檢查碼相符後,於網頁端回應 1|OK
Step 3. 付款結果通知
1. 從網址(ReturnURL)接收付款結果,並判斷檢查碼是否相符
2. 檢查碼相符後,於網頁端回應 1|OK
產生訂單的使用方式參考:
try {
    $obj = new ECPay_AllInOne();
    $obj->ServiceURL  = Config::ECPAY_API_URL;
    $obj->HashKey     = Config::ECPAY_HASH_KEY;
    $obj->HashIV      = Config::ECPAY_HASH_IV;
    $obj->MerchantID  = Config::ECPAY_MERCHANT_ID;
    $obj->Send['ReturnURL'] = Config::ECPAY_CALLBACK_URL; //付款完成通知回傳的網址
    $obj->Send['MerchantTradeNo']   = $order_id;
    $obj->Send['MerchantTradeDate'] = date('Y/m/d H:i:s'); //交易時間
    $obj->Send['TotalAmount']       = (int)$order_total;   //交易金額
    $obj->Send['TradeDesc']         = "商店訂購商品,訂單編號:".$order_id;                
    $obj->Send['NeedExtraPaidInfo'] = 'Y'; //額外的付款資訊(消費者信用卡末四碼)
    if ($order_payment_option== 'credit_card') 
    { 
        // CREDIT CARD
        $obj->Send['OrderResultURL']    = $returnUrl;//付款完成導回平台的網址
        $obj->Send['ChoosePayment'] = ECPay_PaymentMethod::Credit;
    } else if ($order_payment_option == 'atm') {
        // ATM
        $ClientRedirectURL = Config::BASE_URL;
        $obj->SendExtend['ExpireDate'] = 7; // 最短 3 天 最長 60 天
        $obj->SendExtend['ClientRedirectURL'] = $ClientRedirectURL;
        $obj->Send['ChoosePayment'] = ECPay_PaymentMethod::ATM;
    } else {
        return null;
    }
    /*  當 付款方式 [ChoosePayment] 為 ALL 時,可隱藏不需要的付款方式,多筆請以井號分隔(#)。
        可用的參數值:
        Credit:信用卡
        WebATM:網路 ATM
        ATM:自動櫃員機
        CVS:超商代碼
        BARCODE:超商條碼 */
    $obj->Send['EncryptType'] = 1;
    //訂單的商品資料
    array_push($obj->Send['Items'], array(
        'Name'  => "商品名稱",
        'Price'  => (int)1000,
        'Currency'  => "元",
        'Quantity'  => (int) "1",
        'URL'  => ""));
    //產生訂單(auto submit至ECPay)
    $obj->CheckOut();
} catch (Exception $e) {
    echo $e->getMessage();
}
明天要來串接囉!
晚生學習分享所學經驗,若內容有誤或不清楚,煩請不吝指教!更是歡迎各位大神多多補充,感謝萬分!
最近要跟高層報告印度paytm支付的優劣性, 您這邊的綠界API文件真的幫了我大忙 !
讓我能生出一篇 印度paytm vs 中國支付寶 vs 台灣綠界 的支付比較報告, 感謝您 !
有意來台中找 php 工作可私我 ! 3Q