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