一、福祿平臺(tái)介紹
產(chǎn)品介紹
開放平臺(tái)提供專業(yè)的數(shù)字權(quán)益商品標(biāo)準(zhǔn)化接口和免費(fèi)接入服務(wù),數(shù)字權(quán)益商品涵蓋話費(fèi)、流量、游戲、Q幣、視頻會(huì)員、加油卡、禮品卡等多種品類,可滿足使用者多方面的業(yè)務(wù)需求,豐富企業(yè)的產(chǎn)品內(nèi)容、提升競(jìng)爭(zhēng)優(yōu)勢(shì)。
產(chǎn)品功能
- 商品管理:提供API商戶可以進(jìn)行對(duì)接的商品類目和編號(hào)。
- 訂單管理:訂單明細(xì)查詢、充值記錄核對(duì)等。
- 應(yīng)用配置:密鑰管理、賬號(hào)綁定、IP白名單添加、參數(shù)配置。
使用場(chǎng)景
擁有一定技術(shù)團(tuán)隊(duì)的企業(yè),接入充值A(chǔ)PI,用于手機(jī)App、PC客戶端、微信公眾號(hào)、小程序、支付寶生活號(hào)等多種場(chǎng)景,為自己的用戶提供在線充值服務(wù),豐富服務(wù)內(nèi)容,促進(jìn)流量變現(xiàn)。
產(chǎn)品優(yōu)勢(shì)
- 接口穩(wěn)定性高,充值秒到賬:專業(yè)技術(shù)團(tuán)隊(duì)保證接口安全、穩(wěn)定,用戶從下單到充值成功僅需3秒。
- 貨源豐富,涵蓋全品類:多達(dá)千種數(shù)字權(quán)益商品,全品類覆蓋,可滿足不同行業(yè)、不同場(chǎng)景需求。
- 強(qiáng)勢(shì)資源,保障低價(jià):憑借雄厚資金實(shí)力,整合行業(yè)優(yōu)勢(shì)資源,與超過(guò)20個(gè)總代品牌合作,保障產(chǎn)品優(yōu)質(zhì)低價(jià)。
業(yè)務(wù)場(chǎng)景
-
在線直充:
通過(guò)直儲(chǔ)充值的方式,為客戶提供文娛會(huì)員等數(shù)字權(quán)益,可用于即時(shí)獲取權(quán)益的場(chǎng)景。 -
話費(fèi)充值:
高質(zhì)量的話費(fèi)充值渠道,穩(wěn)定到賬,為客戶提供滿意的話費(fèi)充值體驗(yàn)。 -
卡密采購(gòu):
通過(guò)卡密充值的方式,為客戶提供數(shù)字權(quán)益。
手冊(cè)地址
- 文檔地址:
https://docs.open.fulu.com/home
- 接入說(shuō)明:
https://docs.open.fulu.com/apiDocument?productSolutionId=86ce7354-c80f-42df-8043-7aaf4b1d7d68&id=30bc78e4-1d39-4496-8cbc-d6ca840926c3
- 沙箱測(cè)試:
https://docs.open.fulu.com/apitest?catalogueId=52615a59-7362-4f17-86b4-7fbccd310c7d&menuClass=%E5%95%86%E5%93%81API
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-671180.html
二、 PHP代碼封裝
<?php /** * Created by PhpStrom * @author: 劉陽(yáng)<liucysun@163.com> * User: LiuYang * Date: 2023/8/24 * Time: 14:39 */ /** * Class ThirdPartyService * 調(diào)用第三方服務(wù) * 使用方式: * (new ThirdPartyService) * ->setApiUrl("https://www.baidu.com") // 設(shè)置地址 * ->setMethod() // 設(shè)置請(qǐng)求方式 * ->setHeaders() // 設(shè)置header頭 * ->sendRequest(); // 發(fā)送請(qǐng)求
*
* 或者使用以下方法調(diào)用
* $obj = new ThirdPartyService();
* $obj->setApiUrl("https://www.baidu.com")
* $obj->sendRequest(); // 發(fā)送請(qǐng)求 */ class ThirdPartyService { private $apiUrl; private $method = 'POST'; private $headers = []; private $proxy; public function __construct() {} /** * 設(shè)置第三方請(qǐng)求地址 * @param string $apiUrl */ public function setApiUrl(string $apiUrl){ $this->apiUrl = $apiUrl; } /** * 設(shè)置請(qǐng)求方式 * @param string $method */ public function setMethod(string $method){ if(in_array($method,['GET', 'POST', 'PUT', 'DELETE'])){ $this->method = $method; } } /** * 設(shè)置請(qǐng)求頭 * @param array $headers array( 'Content-Type: application/json', 'Authorization: Bearer your-token' ) */ public function setHeaders(array $headers){ $this->headers = $headers; } /** * 設(shè)置請(qǐng)求代理地址 * @param string $proxy */ public function setProxy(string $proxy){ $this->proxy = $proxy; } /** * 請(qǐng)求第三方服務(wù) * @param array $requestData * @param object $obj * @param string $fun * @return mixed */ public function sendRequest(array $requestData, object $obj, string $fun = 'commonParam') { // 構(gòu)建請(qǐng)求參數(shù) $requestParams = ($obj)->$fun($requestData); // 發(fā)送請(qǐng)求 $response = $this->makeRequest($this->apiUrl, $requestParams); // 處理響應(yīng) $responseData = $this->processResponse($response); return $responseData; } /** * 發(fā)起請(qǐng)求 * @param string $url * @param array $params * @return bool|string */ private function makeRequest(string $url, array $params) { // 發(fā)送 HTTP 請(qǐng)求,可以使用 cURL 或其他 HTTP 請(qǐng)求庫(kù) // 假設(shè)使用 cURL 發(fā)送請(qǐng)求 $ch = curl_init(); if ($this->headers) { // 若 $headers 存在,則設(shè)置為請(qǐng)求頭 curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); // 添加請(qǐng)求地址 if ($this->method == 'GET') { $urlParamStr = $this->getParamStr($params, 1); } elseif ($this->method == 'POST') { $urlParamStr = $this->getParamStr($params, 2); curl_setopt($ch, CURLOPT_TIMEOUT, 3); // 設(shè)置3秒超時(shí)限制防止死循環(huán) }else{ $urlParamStr = $params; } curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $this->method);// 請(qǐng)求方式 'GET', 'POST', 'PUT', 'DELETE' // curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $urlParamStr); // 提交的數(shù)據(jù)包 if($this->proxy){ curl_setopt($ch, CURLOPT_PROXY, $this->proxy);// 請(qǐng)求代理 'http://proxy.example.com:8080' } $response = curl_exec($ch); // 請(qǐng)求執(zhí)行 // 處理請(qǐng)求中的錯(cuò)誤 if (curl_errno($ch)) { return json_encode(['code' => curl_errno($ch), 'msg' => curl_error($ch), 'data' => $response], JSON_UNESCAPED_UNICODE); } curl_close($ch); // 關(guān)閉cURL請(qǐng)求 return $response; } /** * 處理響應(yīng)數(shù)據(jù) * @param $response * @return mixed */ private function processResponse($response) { // 處理響應(yīng)數(shù)據(jù),根據(jù)實(shí)際情況解析 JSON、XML 等格式的數(shù)據(jù) // 假設(shè)響應(yīng)數(shù)據(jù)是 JSON 格式 $responseData = json_decode($response, true); return $responseData; } /** * @param array $params 參數(shù)數(shù)組 * @param int $type 參數(shù)構(gòu)造類型:1:queryString 2:json * @return string */ private function getParamStr(array $params, int $type = 1):string { if (!$params) { return ''; } $paramStr = ''; if ($type == 1) { $paramArr = []; foreach ($params as $filed => $val) { $paramArr[] = $filed . '=' . $val; } $paramStr = implode('&', $paramArr); } elseif ($type == 2) { $paramStr = json_encode($params, true); } return $paramStr; } } /** * Class Common * 定義公共參數(shù) */ class Common{ // 福祿網(wǎng)絡(luò)-AppKey const FU_LU_APP_KEY = 'i4esv1l+76l/7NQCL3QudG90Fq+YgVfFGJAWgT+7qO1Bm9o/adG/1iwO2qXsAXNB'; // 福祿網(wǎng)絡(luò)-AppSecret const FU_LU_APP_SECRET = '0a091b3aa4324435aab703142518a8f7'; // 福祿網(wǎng)絡(luò)-MemberCode const FU_LU_MEMBER_CODE = '9000358'; // 測(cè)試/生產(chǎn)環(huán)境IP:47.110.196.112、118.31.170.160 const FU_LU_URL = 'https://pre-openapi.fulu.com/api/getway'; // 福祿網(wǎng)路-錯(cuò)誤碼-自定義錯(cuò)誤碼替換福祿平臺(tái)狀態(tài)嗎 const FU_LU_RET_DIC = [ 0 => ['code' => 0, 'msg' => '接口調(diào)用成功',], 1000 => ['code' => 100071000, 'msg' => '必須傳入API接口名稱',], 1001 => ['code' => 100071001, 'msg' => '無(wú)效的API接口名稱',], 1002 => ['code' => 100071002, 'msg' => '必須傳入時(shí)間戳',], 1003 => ['code' => 100071003, 'msg' => '時(shí)間戳格式錯(cuò)誤',], 1004 => ['code' => 100071004, 'msg' => '時(shí)間戳已超過(guò)有效期',], 1005 => ['code' => 100071005, 'msg' => '必須傳入app_key',], 1006 => ['code' => 100071006, 'msg' => '無(wú)效的app_key',], 1007 => ['code' => 100071007, 'msg' => '必須傳入版本號(hào)',], 1008 => ['code' => 100071008, 'msg' => '版本號(hào)錯(cuò)誤',], 1009 => ['code' => 100071009, 'msg' => '必須傳入format格式',], 1010 => ['code' => 100071010, 'msg' => 'format格式錯(cuò)誤',], 1011 => ['code' => 100071011, 'msg' => '必須傳入編碼格式',], 1012 => ['code' => 100071012, 'msg' => '編碼格式錯(cuò)誤',], 1013 => ['code' => 100071013, 'msg' => '必須傳入簽名加密類型',], 1014 => ['code' => 100071014, 'msg' => '簽名加密類型錯(cuò)誤',], 1015 => ['code' => 100071015, 'msg' => '必須傳入簽名',], 1016 => ['code' => 100071016, 'msg' => '簽名錯(cuò)誤',], 1017 => ['code' => 100071017, 'msg' => '必須傳入請(qǐng)求參數(shù)集合',], 1018 => ['code' => 100071018, 'msg' => '缺少必要參數(shù)',], 1019 => ['code' => 100071019, 'msg' => '訪問(wèn)IP不在IP白名單內(nèi)',], 2000 => ['code' => 100072000, 'msg' => '商戶不存在',], 2001 => ['code' => 100072001, 'msg' => '商戶已被禁用',], 2002 => ['code' => 100072002, 'msg' => '無(wú)效的商戶或應(yīng)用',], 2003 => ['code' => 100072003, 'msg' => '商戶或應(yīng)用配置異常',], 2004 => ['code' => 100072004, 'msg' => '商戶余額不足',], 2114 => ['code' => 100072114, 'msg' => '必須傳入對(duì)賬單獲取單號(hào)',], 2115 => ['code' => 100072115, 'msg' => '必須傳入對(duì)賬單主題',], 2116 => ['code' => 100072116, 'msg' => '對(duì)賬單主題格式錯(cuò)誤',], 2117 => ['code' => 100072117, 'msg' => '必須傳入賬單類型',], 2118 => ['code' => 100072118, 'msg' => '賬單類型錯(cuò)誤',], 2119 => ['code' => 100072119, 'msg' => '對(duì)賬單excel列頭錯(cuò)誤',], 2120 => ['code' => 100072120, 'msg' => '必須傳入開始時(shí)間和結(jié)束時(shí)間',], 2121 => ['code' => 100072121, 'msg' => '開始時(shí)間或結(jié)束時(shí)間錯(cuò)誤',], 3000 => ['code' => 100073000, 'msg' => '必須傳入商品編號(hào)',], 3001 => ['code' => 100073001, 'msg' => '商品不存在或無(wú)法購(gòu)買',], 3002 => ['code' => 100073002, 'msg' => '商品已下架',], 3003 => ['code' => 100073003, 'msg' => '商品維護(hù)中',], 3004 => ['code' => 100073004, 'msg' => '商品在維護(hù)期內(nèi)',], 3005 => ['code' => 100073005, 'msg' => '商品庫(kù)存不足',], 3006 => ['code' => 100073006, 'msg' => '必須傳入商品模板編號(hào)',], 3007 => ['code' => 100073007, 'msg' => '商品模板不存在',], 3008 => ['code' => 100073008, 'msg' => '商品類型錯(cuò)誤',], 3009 => ['code' => 100073009, 'msg' => '商品異常,商品庫(kù)存狀態(tài)無(wú)法查詢',], 4000 => ['code' => 100074000, 'msg' => '必須傳入外部訂單號(hào)',], 4001 => ['code' => 100074001, 'msg' => '購(gòu)買數(shù)量必須大于0',], 4002 => ['code' => 100074002, 'msg' => '必須傳入充值賬號(hào)',], 4003 => ['code' => 100074003, 'msg' => '充值賬號(hào)不是手機(jī)號(hào)',], 4004 => ['code' => 100074004, 'msg' => '充值賬號(hào)在黑名單中',], 4005 => ['code' => 100074005, 'msg' => '充值面值(數(shù)額)必須大于0',], 4008 => ['code' => 100074008, 'msg' => '添加訂單失敗',], 4009 => ['code' => 100074009, 'msg' => '執(zhí)行下單超時(shí),請(qǐng)查單確認(rèn)下單結(jié)果',], 4010 => ['code' => 100074010, 'msg' => '外部訂單號(hào)已存在',], 4011 => ['code' => 100074011, 'msg' => '訂單不存在',], 4012 => ['code' => 100074012, 'msg' => '查詢異常,請(qǐng)重試',], 5000 => ['code' => 100075000, 'msg' => '系統(tǒng)異常,訂單可疑',], 5001 => ['code' => 100075001, 'msg' => '系統(tǒng)異常',], ]; // 福祿網(wǎng)路-API接口地址 const FU_LU_REQUEST_URI = [ 101 => 'fulu.user.info.get', //獲取用戶信息接口 201 => 'fulu.goods.list.get', //獲取商品列表接口 202 => 'fulu.goods.info.get', //獲取商品信息接口 203 => 'fulu.goods.template.get', //獲取商品模板接口 204 => 'fulu.goods.stock.check', //商品庫(kù)存校驗(yàn)接口 301 => 'fulu.order.direct.add', //直充下單接口 302 => 'fulu.order.card.add', //卡密下單接口 303 => 'fulu.order.mobile.add', //話費(fèi)下單接口 304 => 'fulu.order.info.get', //訂單查詢接口 305 => 'fulu.order.extend.get', //訂單擴(kuò)展信息查詢接口 306 => 'fulu.order.record.get', //對(duì)賬單申請(qǐng)接口 401 => 'fulu.alipay.applet.pay', //支付寶小程序支付接口 402 => 'fulu.alipay.app.pay', //支付寶App支付接口 403 => 'fulu.alipay.h5.pay', //支付寶H5支付接口 404 => 'fulu.alipay.h5.query', //支付寶查單接口 405 => 'fulu.alipay.h5.refund', //支付寶退款接口 406 => 'fulu.alipay.refund.query', //支付寶退款查詢接口 411 => 'fulu.wechatpay.applet.pay', //微信小程序支付接口 412 => 'fulu.wechatpay.h5.pay', //微信H5支付接口 413 => 'fulu.wechatpay.h5.query', //微信查單接口 414 => 'fulu.wechatpay.h5.refund', //微信退款接口 415 => 'fulu.wechatpay.refund.query', //微信退款查詢接口 501 => 'fulu.market.qqnickname.get', //QQ昵稱查詢接口 502 => 'fulu.aiqiyi.user.check', //愛奇藝用戶身份校驗(yàn)接口 503 => 'fulu.mobile.maintain.check', //話費(fèi)維護(hù)狀態(tài)檢查接口 504 => 'fulu.mobile.info.get', //手機(jī)號(hào)歸屬地接口 ]; } /** * Class FuLuAPi * 福祿網(wǎng)路接口類封裝 */ class FuLuAPi{ private $methodUri; /** * 設(shè)置接口地址 * @param string $methodUri 'fulu.goods.list.get' */ public function setMethodUri(string $methodUri){ $this->methodUri = $methodUri; } /** * 福祿網(wǎng)絡(luò)簽名 * @param $params * @return string */ private function getSign(array $params):string { //簽名步驟一:把字典json序列化 $json = json_encode( $params, 320 ); //簽名步驟二:轉(zhuǎn)化為數(shù)組 $jsonArr = $this->mb_str_split( $json ); //簽名步驟三:排序 sort( $jsonArr ); //簽名步驟四:轉(zhuǎn)化為字符串 $string = implode( '', $jsonArr ); //簽名步驟五:在string后加入secret $string = $string . Common::FU_LU_APP_SECRET; //簽名步驟六:MD5加密 $result_ = strtolower( md5( $string ) ); return $result_; } /** * 可將字符串中中文拆分成字符數(shù)組 */ private function mb_str_split($str){ return preg_split('/(?<!^)(?!$)/u', $str ); } /** * 獲取福祿請(qǐng)求參數(shù) * @param array $bizContentArr * @return string[] */ public function commonParam( array $bizContentArr){ $bizContent = $bizContentArr ? json_encode($bizContentArr, true) : '{}'; $data = [ // @todo 福祿網(wǎng)絡(luò) 'app_key' => Common::FU_LU_APP_KEY, 'method' => $this->methodUri,//'fulu.goods.list.get' 'timestamp' => date('Y-m-d H:i:s', time()), 'version' => '2.0', 'format' => 'json', 'charset' => 'utf-8', 'sign_type' => 'md5', 'app_auth_token' => '', 'biz_content' => $bizContent, ]; $data['sign'] = $this->getSign($data); return $data; } } /** * Class FuLu * 使用福祿網(wǎng)絡(luò)方法的調(diào)用 */ class FuLu{ /** * @var ThirdPartyService 基礎(chǔ)數(shù)據(jù) AppKey:i4esv1l+76l/7NQCL3QudG90Fq+YgVfFGJAWgT+7qO1Bm9o/adG/1iwO2qXsAXNB AppSecret:0a091b3aa4324435aab703142518a8f7 MemberCode:9000358 商戶名稱:OpenApi2.0對(duì)接專用商戶 測(cè)試/生產(chǎn)環(huán)境IP:47.110.196.112、118.31.170.160 直充接口相關(guān) 測(cè)試商品: 1、10000586 視頻/文娛直充測(cè)試商品-返回充值成功 2、10000585 視頻/文娛直充測(cè)試商品-返回充值失敗 3、10000586 網(wǎng)游直充測(cè)試商品(不帶區(qū)服)-返回充值成功 4、10000585 網(wǎng)游直充測(cè)試商品(不帶區(qū)服)-返回充值失敗 5、10000589 網(wǎng)游直充測(cè)試商品(帶區(qū)服)-返回充值成功 6、10000588 網(wǎng)游直充測(cè)試商品(帶區(qū)服)-返回充值失敗 7、10000000 視頻/文娛直充測(cè)試商品-接口請(qǐng)求失敗 錯(cuò)誤碼:3001(商品不存在或無(wú)法購(gòu)買) 8、12080016 視頻/文娛直充測(cè)試商品-接口請(qǐng)求失敗 錯(cuò)誤碼:3002(商品已下架) 注意:直充類訂單需按照對(duì)應(yīng)商品才能返回“充值成功”、“充值失敗”狀態(tài)。 卡密接口相關(guān) 測(cè)試商品: 1、10000587 卡密測(cè)試商品-返回卡號(hào)、字符串卡密 2、11865227 卡密測(cè)試商品-返回卡號(hào)、鏈接卡密 3、15325315 卡密測(cè)試商品-返回?zé)o卡號(hào)、字符串卡密 4、11209851 卡密測(cè)試商品-返回?zé)o卡號(hào)、鏈接卡密 話費(fèi)接口相關(guān) 手機(jī)賬號(hào):15972368779 面值:100 注:此賬號(hào)+面值下單,訂單狀態(tài)默認(rèn)返回“充值成功”狀態(tài)。 手機(jī)賬號(hào):15972368779 面值:50 注:此賬號(hào)+面值下單,訂單狀態(tài)默認(rèn)返回“充值失敗”狀態(tài)。 流量接口相關(guān) 手機(jī)賬號(hào):15972368779 流量大?。?024 流量性質(zhì):4 注:此賬號(hào)+流量大小+流量性質(zhì)下單,訂單狀態(tài)默認(rèn)返回“充值成功”狀態(tài)。 手機(jī)賬號(hào):13971553804 流量大小:1024 流量性質(zhì):4 注:此賬號(hào)+流量大小+流量性質(zhì)下單,訂單狀態(tài)默認(rèn)返回“充值失敗”狀態(tài)。 文檔地址:https://docs.open.fulu.com/home * 產(chǎn)品介紹:https://docs.open.fulu.com/apiDocument?productSolutionId=86ce7354-c80f-42df-8043-7aaf4b1d7d68&id=276259e0-7508-4721-a51b-a0de43998966 * */ private $thirdObj; private $thisObj; const RET_ORDER_STATUS = [ 'failed' => [ 'code' => 0, 'msg' => "充值失敗", // 充值失敗 'state' => "failed", ], 'untreated' => [ 'code' => 101, 'msg' => "未處理", // 未處理 'state' => "untreated", ], 'success' => [ 'code' => 0, 'msg' => "充值成功", // 充值成功 'state' => "success", ], 'processing' => [ 'code' => 102, 'msg' => "處理中", // 處理中 'state' => "processing", ], ]; public function __construct(){ // 設(shè)置當(dāng)前時(shí)區(qū) ini_set('date.timezone','PRC'); // 創(chuàng)建 ThirdPartyService 實(shí)例 $this->thirdObj = new ThirdPartyService(); // 設(shè)置請(qǐng)求地址 $this->thirdObj->setApiUrl(Common::FU_LU_URL); // 設(shè)置請(qǐng)求頭 $this->thirdObj->setHeaders(['Content-Type: application/json']); // 設(shè)置福祿網(wǎng)絡(luò)請(qǐng)求 $this->thisObj = new FuLuAPi; } /** * 獲取用戶信息 * @return array|mixed */ public function user_info_get(){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[101]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 獲取商品列表 * @return array|mixed */ public function goods_list_get(){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[201]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 獲取商品詳情 * @param int $productId 10000415 * 測(cè)試成功的商品:10000413,10000415,10000416,10000420,10000422,10000423,10000426,10000430 * 10000000 視頻/文娛直充測(cè)試商品-接口請(qǐng)求失敗 錯(cuò)誤碼:3001(商品不存在或無(wú)法購(gòu)買) * 12080016 視頻/文娛直充測(cè)試商品-接口請(qǐng)求失敗 錯(cuò)誤碼:3002(商品已下架) * @return array|mixed * stock_status 庫(kù)存狀態(tài):斷貨、警報(bào)、充足(商品接口顯示的商品都是非斷貨狀態(tài)的商品,斷貨商品會(huì)自動(dòng)下架) * sales_status 銷售狀態(tài):下架、上架、維護(hù)中、庫(kù)存維護(hù)(商品信息接口顯示的商品都是上架狀態(tài)的商品) */ public function goods_info_get(int $productId){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[202]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "product_id" => $productId,//商品編號(hào) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 查詢商品庫(kù)存 * @param int $productId * @param int $num * @return array|mixed * stock_status 庫(kù)存狀態(tài):斷貨、充足(商品接口顯示的商品都是非斷貨狀態(tài)的商品,斷貨商品會(huì)自動(dòng)下架) */ public function goods_stock_check(int $productId, int $num = 1){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[204]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "buy_num" => $num,//購(gòu)買數(shù)量 "product_id" => $productId,//商品編號(hào) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 直沖下單接口 * @param int $productId //福祿平臺(tái)訂單號(hào),可以從商品列表中獲取 * @param string $orderId // 外部訂單號(hào) * @param string $mobile // 充值手機(jī)號(hào) * @return array|mixed * order_state 訂單狀態(tài): (success:成功,processing:處理中,failed:失敗,untreated:未處理) */ public function order_direct_add(int $productId, string $orderId, string $mobile){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[301]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "product_id" => $productId,//商品編號(hào) "customer_order_no" => $orderId,//外部訂單號(hào) "charge_account" => $mobile,//充值賬號(hào) "buy_num" => "1",//購(gòu)買數(shù)量 ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // // 處理訂單狀態(tài),如果失敗返回訂單失敗錯(cuò)誤碼 // if(self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]){ // return self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]; // } // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 卡密下單接口 * 測(cè)試商品: 1、10000587 卡密測(cè)試商品-返回卡號(hào)、字符串卡密 2、11865227 卡密測(cè)試商品-返回卡號(hào)、鏈接卡密 3、15325315 卡密測(cè)試商品-返回?zé)o卡號(hào)、字符串卡密 4、11209851 卡密測(cè)試商品-返回?zé)o卡號(hào)、鏈接卡密 * @param int $productId //福祿平臺(tái)訂單號(hào),可以從商品列表中獲取 * @param string $orderId // 外部訂單號(hào) * @return array|mixed * order_state 訂單狀態(tài): (success:成功,processing:處理中,failed:失敗,untreated:未處理) */ public function order_card_add(int $productId, string $orderId){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[302]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "product_id" => $productId,//商品編號(hào) "customer_order_no" => $orderId,//外部訂單號(hào) "buy_num" => "1",//購(gòu)買數(shù)量 ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // // 處理訂單狀態(tài),如果失敗返回訂單失敗錯(cuò)誤碼 // if(self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]){ // return self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]; // } // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 話費(fèi)下單接口 * 測(cè)試手機(jī)號(hào) 手機(jī)賬號(hào):15972368779 面值:100 注:此賬號(hào)+面值下單,訂單狀態(tài)默認(rèn)返回“充值成功”狀態(tài)。 * ------------------------------------------------ 手機(jī)賬號(hào):15972368779 面值:50 注:此賬號(hào)+面值下單,訂單狀態(tài)默認(rèn)返回“充值失敗”狀態(tài)。 * @param string $orderId * @param string $mobile * @param float $price * @return array|mixed * order_state 訂單狀態(tài): (success:成功,processing:處理中,failed:失敗,untreated:未處理) */ public function order_mobile_add(string $orderId, string $mobile, float $price){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[303]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "charge_phone" => $mobile,//充值手機(jī)號(hào) "charge_value" => $price,//充值金額 "customer_order_no" => $orderId,//外部訂單號(hào) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // // 處理訂單狀態(tài),如果失敗返回訂單失敗錯(cuò)誤碼 // if(self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]){ // return self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]; // } // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 查詢訂單處理狀態(tài) * @param string $orderId // 外部訂單號(hào) * @return array|mixed * order_state 訂單狀態(tài): (success:成功,processing:處理中,failed:失敗,untreated:未處理) */ public function order_info_get(string $orderId){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[304]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "customer_order_no" => $orderId,//商品編號(hào),外部訂單號(hào) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理訂單狀態(tài),如果失敗返回訂單失敗錯(cuò)誤碼 if(self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]){ return self::RET_ORDER_STATUS[$responseData["result"]["order_state"]]; } // 處理響應(yīng)數(shù)據(jù) return $responseData; } /** * 查詢手機(jī)號(hào)歸屬地 * @param $phone * @return array|mixed */ public function mobile_info_get($phone){ // 設(shè)置接口地址 $this->thisObj->setMethodUri(Common::FU_LU_REQUEST_URI[504]); // 發(fā)送請(qǐng)求并獲取響應(yīng) $requestData = array( // 請(qǐng)求數(shù)據(jù) "phone" => $phone, // 手機(jī)號(hào) ); $responseData = $this->thirdObj->sendRequest($requestData, $this->thisObj); // 校驗(yàn)錯(cuò)誤碼,如果存在錯(cuò)誤信息,拋出自定義信息 if($responseData["code"]){ return Common::FU_LU_RET_DIC[$responseData["code"]]; } //如果返回成功,處理返回的數(shù)據(jù)result字段 $responseData["result"] = json_decode($responseData["result"], true); // 處理響應(yīng)數(shù)據(jù) return $responseData; } } /** * 執(zhí)行使用類包進(jìn)行測(cè)試 */ // 獲取用戶信息 //$retData = (new FuLu())->user_info_get(); //var_dump($retData);die; // 獲取商品列表 //$retData = (new FuLu())->goods_list_get(); //var_dump($retData); // 獲取商品列表 // 10000413,10000415,10000416,10000420,10000422,10000423,10000426,10000430 // 10000000(商品不存在),12080016(商品下架) //$retData = (new FuLu())->goods_info_get(12080016); //var_dump($retData); //// 獲取商品庫(kù)存 //$retData = (new FuLu())->goods_stock_check(10000413, 1); //var_dump($retData); // 直沖下單 //$retData = (new FuLu())->order_direct_add(10000413, '12345', '15600779070'); //var_dump($retData); // 卡密下單 //$retData = (new FuLu())->order_card_add(10000587, '202308251001'); //var_dump($retData); // 話費(fèi)下單 10000532, //$retData = (new FuLu())->order_mobile_add('202308251003', '15972368779', '50'); //var_dump($retData); // 訂單狀態(tài)查詢 while(1){ $retData = (new FuLu())->order_info_get('202308251003'); if(!$retData["code"]) die($retData["msg"]); sleep(3); // 執(zhí)行完畢睡眠3秒,降低訪問(wèn)壓力 var_dump($retData); } // 手機(jī)號(hào)歸屬地查詢 //$retData = (new FuLu())->mobile_info_get('18737306903'); //var_dump($retData);
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-671180.html
?
?
?
?
?
?
?
?
?
?
到了這里,關(guān)于福祿開放平臺(tái)PHP接入封裝SDK的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!