Getting started with API playground!

歡迎來到開發者平台

多種 API 滿足夥伴業務需求,
沙盒測試環境供夥伴盡情發揮

三個步驟 API 串接輕鬆上手

選擇API

選擇您想測試的API類別,歡迎來信與我們聯繫。

沙盒測試

在測試環境中進行 API 串接測試。

服務上線

測試完成後,將 API 嵌入您的服務介面即可上線。

Sandbox沙盒測試

讓我們試試看!
選擇下方 API,立即體驗模擬沙盒測試環境。

 {
   "appRepBody": {
       "exchangeRates": [
           {
               "updateTime": "20200923095508",
               "currency": "USD",
               "currencyName": "美元",
               "cashExchangeRate": {
                   "sale": "30.06500",
                   "buy": "29.58200",
                   "fee": "N/A"
               },
               "spotExchangeRate": {
                   "sale": "29.86500",
                   "buy": "29.78200",
                   "fee": "N/A"
               }
           },
           {
               "updateTime": "20200923095508",
               "currency": "JPY",
               "currencyName": "日圓",
               "cashExchangeRate": {
                   "sale": "0.28170",
                   "buy": "0.27340",
                   "fee": "N/A"
               },
               "spotExchangeRate": {
                   "sale": "0.28020",
                   "buy": "0.27640",
                   "fee": "N/A"
               }
           }
       ]
   },
   "appRepExtension": {}
}
{
     "appRepBody": {
         "updateTime": "20200923095509",
         "currencyList": {
             "美元": "USD",
             "日圓": "JPY",
             "港幣": "HKD",
             "歐元": "EUR",
             "英鎊": "GBP",
             "瑞士法郎": "CHF",
             "澳幣": "AUD",
             "新加坡幣": "SGD",
             "瑞典幣": "SEK",
             "加拿大幣": "CAD",
             "泰銖": "THB",
             "南非幣": "ZAR",
             "紐西蘭幣": "NZD",
             "澳門幣": "MOP",
             "人民幣": "CNY",
             "黃金公克": "XAT",
             "離岸人民幣": "CNH"
         }
     },
     "appRepExtension": {}
 }
{
     "appRepBody": {
         "countryCode": "TW",
         "branches": [
             {
                 "updateTime": "N/A",
                 "branchName": {
                     "branchName": "中科分行",
                     "branchCode": "BR0041"
                 },
                 "location": {
                     "zipCode": "40764",
                     "coordinate": {
                         "longitude": "120.6122868",
                         "latitude": "24.1847469"
                     },
                     "address": {
                         "chinese": "臺灣大道4段1182號",
                         "english": "No.1182, Sec. 4, Taichungkang Rd., Hsitun District, Taichung City 407, Taiwan (R.O.C.)"
                     }
                 },
                 "branchService": [
                     "可預約取號",
                     "有外幣業務",
                     "有黃金業務",
                     "無保管箱",
                     "無人民幣ATM"
                 ],
                 "accessibility": [],
                 "branchBasicInfo": {
                     "openingTimes": [
                         {
                             "openingDay": "一",
                             "openingTime": "9:00",
                             "closingTime": "15:30"
                         },
                         {
                             "openingDay": "二",
                             "openingTime": "9:00",
                             "closingTime": "15:30"
                         },
                         {
                             "openingDay": "三",
                             "openingTime": "9:00",
                             "closingTime": "15:30"
                         },
                         {
                             "openingDay": "四",
                             "openingTime": "9:00",
                             "closingTime": "15:30"
                         },
                         {
                             "openingDay": "五",
                             "openingTime": "9:00",
                             "closingTime": "15:30"
                         }
                     ],
                     "serviceNumber": "(04)2465-3008",
                     "faxNumber": "(04)2465-0055",
                     "swiftCode": ""
                 }
             }
         ]
     },
     "appRepExtension": {}
 }
{
   "appRepBody": {
       "atms": [
           {
               "updateTime": "20200923051502",
               "atmName": {
                   "atmName": "台北市",
                   "atmCode": "00124"
               },
               "location": {
                   "zipCode": "N/A",
                   "coordinate": {
                       "longitude": "121.545138",
                       "latitude": "25.033194"
                   },
                   "address": {
                       "chinese": "台北市大安區信義路四段46號",
                       "english": "N/A"
                   }
               },
               "atmServices": [
                   "有臺幣百元鈔",
                   "有臺幣千元鈔",
                   "有人民幣現鈔",
                   "無美元現鈔",
                   "有日圓現鈔",
                   "無港幣現鈔"
               ],
               "accessibility": [],
               "currency": [
                   "TWD"
               ],
               "supprotedLanguages": [
                   "中文",
                   "英文"
               ],
               "atmBasicInfo": {
                   "openingTimes": [
                       {
                           "openingDay": "一",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "二",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "三",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "四",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "五",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "六",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       },
                       {
                           "openingDay": "日",
                           "openingTime": "00:00",
                           "closingTime": "24:00"
                       }
                   ],
                   "serviceNumber": ""
               }
           }
       ]
   },
   "appRepExtension": {}
}
PHP SampleCode 使用方法:

1.請開啟 QPayToolkit.php 調整參數
	(1) $targetUrl(行數 2)
		主要測試環境使用, 請改成 ==> https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/
		備援測試環境使用, 請改成 ==> https://sandbox.sinopac.com/QPay.WebAPI/api/
		
	(2) $ShopNo (行數 5)
		請依信件內提供商店編號更改
	
	(3) $Hash (行數 7)
		請依信件內提供雜湊值, 更改陣列內 A1、A2、B1、B2 參數
		
2.完成參數調整後, 請將要使 API 服務 include QPayToolkit.php 進去, 呼叫方法請參考 SampleCode.php、SamplePrint.php、BackendURL.php, 相關 Sample 如下
	(01) 建立信用卡訂單  ==>  OrderCreate4Card()
	(02) 建立虛擬帳號訂單  ==>  OrderCreate4ATM()
	(03) 信用卡 - 待請款訂單查詢  ==>  OrderUnCapturedQuery()
	(04) 信用卡 – 訂單維護服務  ==>  OrderMaintain()
	(05) 訂單交易查詢  ==>  OrderQuery()
	(06) 訊息查詢服務  ==>  OrderPayQuery()
	(07) 交易對帳檔查詢服務  ==>  BillQuery()
	(08) 撥款檔查詢服務  ==>  AllotQuery()
	(09) 信用卡-定期定額查詢服務  ==>  RegularQuery()
	(10) 即時訊息通知  ==>  BackendURL.php

	PS.$Service 各欄位填寫限制請以API串接手冊為主


---------------------------------------------------------------------------------------------------------
QPayToolkit.php
	//API 位置
	$targetUrl = "https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/";
	//商店代號
	$ShopNo = "NA0001_001";
	//雜湊值
	$Hash = Array(	
					"A1" => "65960834240E44B7",
					"A2" => "2831076A098E49E7",
					"B1" => "CB1AFFBF915A492B",
					"B2" => "7F242C0AA612454F"
				);

	//執行 API 服務方法
	function APIService($service, $objService){
		global $ShopNo, $Hash, $targetUrl;
		
		$url = $targetUrl . "/Order";
		
		//取得 Nonce 值
		$Nonce = getNonce($ShopNo, $targetUrl);
		//取得 HashID
		$HashID = getHashID($Hash);
		//取得 IV
		$IV = getIV($Nonce);
		//取得 Sign
		$Sign = getSign($objService, $Nonce, $HashID);
		//訊息內文 E2E 加密(先將變數為 null 移除)
		if ($service == "OrderCreate"){
			$objService->ATMParam = array_filter((array) ($objService->ATMParam));
			$objService->CardParam = array_filter((array) ($objService->CardParam));
			$objService->ConvStoreParam = array_filter((array) ($objService->ConvStoreParam));		
		}

		$objService = array_filter((array) ($objService));		
		
		echo json_encode($objService)."
".$HashID."
".$IV."
"; $Message = EncryptAesCBC(json_encode($objService), $HashID, $IV); //建立 Request Class $Request = new API; $Request->ShopNo = $ShopNo; $Request->APIService = $service; $Request->Sign = $Sign; $Request->Nonce = $Nonce; $Request->Message = $Message; //建立 Response Class $Response = new API; //取得永豐銀行回覆訊息 $Response = json_decode(WebAPI($url, json_encode($Request))); echo json_encode($Response); //取得 Response Nonce $ResNonce = $Response->Nonce; //取得 Response IV $ResIV = getIV($ResNonce); //取得永豐銀行訊息內文 $result = DecryptAesCBC($Response->Message, $HashID, $ResIV); return $result; } //取得 Nonce 方法 function getNonce($shopno, $targeturl){ $url = $targeturl . "/Nonce"; $post_data = json_encode(array('ShopNo' => $shopno)); $result = WebAPI($url, $post_data); $result = json_decode($result); return $result->Nonce; } //取得 Hash ID 計算方法 function getHashID($hash){ //var_dump($hash); $Byte_A1 = strToHexBytes($hash["A1"]); $Byte_A2 = strToHexBytes($hash["A2"]); $Byte_B1 = strToHexBytes($hash["B1"]); $Byte_B2 = strToHexBytes($hash["B2"]); $XOR1 = setXOR($Byte_A1, $Byte_A2); $XOR2 = setXOR($Byte_B1, $Byte_B2); $result = hexBytesToString($XOR1).hexBytesToString($XOR2); return $result; } //取得 IV 計算方法 function getIV($nonce){ $data = SHA256($nonce); return substr($data, strlen($data) - 16, 16); } //取得 Sign 計算方法 function getSign($data, $nonce, $hashid){ $result = ''; $content = ''; //移除 null $data = array_filter((array) ($data)); //對欄位升序排序 ksort($data); //訊息排序組合 while ($fruit_name = current($data)) { //僅抓取第一層變數作組合 if (is_array($data[key($data)]) == false){ $content .= key($data) . '=' . $data[key($data)] . '&'; } next($data); } $content = substr($content , 0, strlen($content) -1); //字串雜湊 $content .= $nonce . $hashid; //SHA256 $result = SHA256($content); return $result; } //字串轉 Hex 方法 function strToHexBytes($string){ $hex = array(); $j = 0; for ($i=0; $i 0, CURLOPT_NOBODY => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HTTPHEADER => array("Content-type: application/json; charset=utf-8"), CURLOPT_POST=> 1, CURLOPT_POSTFIELDS=> $post_data , CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSLVERSION => 6 //(1:TLSv1 / 6:TLSv1_2) 使用 TLS 1.2 Protocol ); curl_setopt_array($ch, $options); $result=curl_exec($ch); curl_close($ch); return $result; } //Request、Response 呼叫用 class API { //API 版本 public $Version = '1.0.0'; //商店代號 public $ShopNo; //API服務 public $APIService; //安全簽章 public $Sign; //時間戳記 public $Nonce; //交易訊息內文 public $Message; } //建立訂單交易(OrderCreate) class OrderCreate { //商店代號 public $ShopNo; //訂單編號 public $OrderNo; //訂單總金額 public $Amount; //幣別 public $CurrencyID = 'TWD'; //收款名稱 public $PrdtName; //備註 public $Memo; //自訂參數一 public $Param1; //自訂參數二 public $Param2; //自訂參數三 public $Param3; //導回頁面 public $ReturnURL; //背端通知 public $BackendURL; //收款方式 public $PayType; //寄件者暱稱 public $Sender; //寄件者行動電話 public $SenderMobile; //收件者暱稱 public $Receiver; //收件者行動電話 public $ReceiverMobile; //虛擬帳號用 Param public $ATMParam = array( //付款截止日期 'ExpireDate'=> null ); //信用卡用 Param public $CardParam = array( //自動請款 'AutoBilling'=> null, //預計自動請款天數 'ExpBillingDays'=> null, //信用卡付款連結有效時間(預設為10分鐘) 'ExpMinutes'=> null, //信用卡付款子項目(預設值為一次付清) 'PayTypeSub'=> null, //分期期數 'Staging'=> null, //快速付款 Token 'CCToken'=> null, //扣款總期數 'DeductTotalNum'=> null, //扣款週期 'PeriodType'=> null, //扣款頻率 'DeductFreq'=> null ); } //信用卡 - 待請款訂單查詢(OrderUnCapturedQuery) class OrderUnCapturedQuery { //商店代號 public $ShopNo; //訂單編號 public $OrderNo; } //信用卡 – 訂單維護服務(OrderMaintain) class OrderMaintain { //商店代號 public $ShopNo; //訂單編號 public $OrderNo; //發送要求 public $Command; //申請退款金額 public $Amount; //退款原因 public $Remark; } //訂單交易查詢(OrderQuery) class OrderQuery { //商店代號 public $ShopNo; //訂單編號 public $OrderNo; //收款方式 public $PayType; //交易日期(起) public $OrderDateTimeS; //交易日期(迄) public $OrderDateTimeE; //付款日期(起) public $PayDateTimeS; //付款日期(迄) public $PayDateTimeE; //付款狀態為條件查詢 public $PayFlag; } //訊息查詢服務(OrderPayQuery) class OrderPayQuery { //商店代號 public $ShopNo; //Token 值 public $PayToken; } //交易對帳檔查詢服務(BillQuery) class BillQuery { //商店代號 public $ShopNo; //交易對帳日期 public $BillDate; } //撥款檔查詢服務(AllotQuery) class AllotQuery { //商店代號 public $ShopNo; //撥款日期(起) public $AllotDateS; //撥款日期(迄) public $AllotDateE; //收款方式 public $PayType; } //信用卡-定期定額查詢服務 class RegularQuery { //商店代號 public $ShopNo; //定期定額主單編號 public $MasterOrderNo; } --------------------------------------------------------------------------------------------------------- SampleCode.php include "QPayToolkit.php"; OrderCreate4Card(); //建立信用卡訂單 function OrderCreate4Card() { global $ShopNo; $Service = new OrderCreate; $Service->ShopNo = $ShopNo; $Service->Amount = '50000'; $Service->OrderNo = 'C' . date("YmdHis"); $Service->PayType = 'C'; $Service->PrdtName = '信用卡訂單'; $Service->ReturnURL = 'http://10.11.22.113:8803/QPay.ApiClient-Sandbox/Store/Return'; $Service->BackendURL = 'https://sandbox.sinopac.com/funBIZ.ApiClient/AutoPush/PushSuccess'; $Service->CardParam['AutoBilling'] = 'Y'; //$Service->CardParam['CCToken'] = '0C6C6684-4597-412B-BD4C-E731DCEFE2FB'; --快速付款 /*--------------------定期定額--------------------*/ //$Service->CardParam['PayTypeSub'] = 'REGULAR'; //$Service->CardParam['DeductTotalNum'] = '12'; //$Service->CardParam['PeriodType'] = 'D'; //$Service->CardParam['DeductFreq'] = '2'; /*------------------------------------------------*/ echo APIService("OrderCreate", $Service); } //建立虛擬帳號訂單 function OrderCreate4ATM() { global $ShopNo; $date = new DateTime(date('Y-m-d')); $date->add(new DateInterval('P10D')); $ExpireDate = $date->format('Ymd'); $Service = new OrderCreate; $Service->ShopNo = $ShopNo; $Service->Amount = '50000'; $Service->OrderNo = 'A' . date("YmdHis"); $Service->PayType = 'A'; $Service->PrdtName = '虛擬帳號訂單'; $Service->ReturnURL = 'http://10.11.22.113:8803/QPay.ApiClient-Sandbox/Store/Return'; $Service->BackendURL = 'https://sandbox.sinopac.com/funBIZ.ApiClient/AutoPush/PushSuccess'; $Service->ATMParam['ExpireDate'] = $ExpireDate; echo APIService("OrderCreate", $Service); } //信用卡 - 待請款訂單查詢 function OrderUnCapturedQuery() { global $ShopNo; $Service = new OrderUnCapturedQuery; $Service->ShopNo = $ShopNo; echo APIService("OrderUnCapturedQuery", $Service); } //信用卡 – 訂單維護服務 function OrderMaintain() { global $ShopNo; $Service = new OrderMaintain; $Service->ShopNo = $ShopNo; $Service->OrderNo = 'C201805250005'; $Service->Command = 'R'; echo APIService("OrderMaintain", $Service); } //訂單交易查詢 function OrderQuery() { global $ShopNo; $Service = new OrderQuery; $Service->ShopNo = $ShopNo; $Service->OrderNo = 'A20180706100451'; echo APIService("OrderQuery", $Service); } //訊息查詢服務 function OrderPayQuery() { global $ShopNo; $Service = new OrderPayQuery; $Service->ShopNo = $ShopNo; $Service->PayToken = 'c7b0d2b994251d730f4a2feb24e584c509264e92829c9194d1952da08898e44f'; echo APIService("OrderPayQuery", $Service); } //交易對帳檔查詢服務 function BillQuery() { global $ShopNo; $Service = new BillQuery; $Service->ShopNo = $ShopNo; $Service->BillDate = '20180525'; echo APIService("BillQuery", $Service); } //撥款檔查詢服務 function AllotQuery() { global $ShopNo; $Service = new AllotQuery; $Service->ShopNo = $ShopNo; $Service->AllotDateS = '20180625'; $Service->AllotDateE = '20180625'; $Service->PayType = 'A'; echo APIService("AllotQuery", $Service); } //信用卡-定期定額查詢服務 function RegularQuery() { global $ShopNo; $Service = new RegularQuery; $Service->ShopNo = $ShopNo; $Service->MasterOrderNo = 'CR202005211405'; echo APIService("RegularQuery", $Service); } --------------------------------------------------------------------------------------------------------- BackendURL.php include "QPayToolkit.php"; //取得豐收款 POST 內容 $data = file_get_contents('php://input'); //Log $file = fopen("AutoPush.txt","a+"); //開啟檔案 fwrite($file,$str); fclose($file); //將取得 Json 轉換為物件使用 $Request = new OrderPayQuery; $Request = json_decode($data ); //使用訊息查詢服務確認訂單結果 $Service = new OrderPayQuery; $Service->ShopNo = $Request->ShopNo; $Service->PayToken = $Request->PayToken; //$Response 內有訂單資訊 $Response = APIService("OrderPayQuery", $Service); //確認訂單資訊正確回覆接收成功訊息 echo '{"Status":"S"}'; ---------------------------------------------------------------------------------------------------------