【PHP金流服務】綠界科技API串接說明、使用

如果網站上有需要金流服務時
較簡單的選擇大都是綠界、藍新、歐付寶等等
這些註冊不難、也有提供API的網站服務

這篇文章主要會以綠界科技為主
以及簡單的訂單建立及完成說明
(其它金流服務應該都是大同小異)

【下載所需規格】
先到官方網站下載規格套件
因為會以PHP為主
所以點選"SDK程式"下面的PHP按鈕
會導向Github頁面
直接下載該頁面的副本就好
如果找不到就直接點此下載
API文件說明

【嵌入到你的專案中】
下載解壓縮後會看到4個文件夾
將此文件下的檔案複製到你的專案中
AioSDK -> sdk -> ECPay.Payment.Integration.php

【使用範例】
在AioSDK -> example 目錄下有官方的示範檔
所以下面只會打出一些重點

【設定訂單完成的回傳網址】
//付款完成通知回傳的網址
$obj->Send['ReturnURL'] = "http://www.ecpay.com.tw/receive.php";
//客戶端完成下單後要導回的頁面
$obj->Send['ClientBackURL'] = "http://www.ecpay.com.tw/receive.php";

第一行ReturnURL是當該訂單完成時
綠界科技會透過此網址回傳訂單資訊
屬於伺服器端處理不能讓客戶端知道
範例位置在AioSDK -> example -> sample_ServerReplyPaymentStatus.php

第二行ClientBackURL會指示當客戶端完成訂單時
要如何操作導回你的網站

【兩種產生訂單方法】
//產生訂單(直接導向頁面)
$obj->CheckOut();
//產生訂單(這會輸出一個HTML表單)
$html = $obj->CheckOutString();

如果你是以刷新頁面方法產生訂單(HTML Form)
則可以使用CheckOut方法直接導向頁面
如果你是使用非同步方法(ajax等)
可以使用CheckOutString先輸出html資料再導向頁面

不過需要注意的是
CheckOutString會將後端產生的資料傳回前端
但是不會包含Key,IV那些資料
也不用擔心會被串改
訂單資料都有加上識別碼
產生訂單時金流服務端都會驗證識別碼
一旦訂單資料被修改過是不會過的
如果你很擔心資料會暴露
就拿捏一下是否要使用CheckOutString

備註:
使用CheckOutString後需要手動提供表單
所以在這之後加入下面程式碼
<script>
var btn=document.getElementById("__paymentButton");
btn.style.display="none";
btn.click();
</script>

【訂單完成回傳的資料使用】
基本上在範例sample_ServerReplyPaymentStatus.php中
可以直接套用到你的程式上
要取出訂單完成資料
就直接這樣使用
$feedback['MerchantTradeNo'];
$feedback['TradeNo'];
$feedback['PaymentType'];
//...

【API提供自訂資料欄位】
如果除了訂單資料外還想傳網站的資料
例如帳號、姓名等等
官方有提供4個欄位可存放其它資料
在建立訂單時使用如下
$obj->Send['CustomField1'] = 'test';
$obj->Send['CustomField2'] = 'test';
$obj->Send['CustomField3'] = 'test';
$obj->Send['CustomField4'] = 'test';
在完成訂單時使用如下
$cf1 = $feedback['CustomField1'];
$cf2 = $feedback['CustomField2'];
$cf3 = $feedback['CustomField3'];
$cf4 = $feedback['CustomField4'];



以上就是綠界金流服務的使用
更多的範例可以到綠界科技的Github查看

留言