當前位置:首頁 » 編程語言 » php的app介面

php的app介面

發布時間: 2023-05-29 08:17:39

⑴ 如何用php寫app介面原創 / 藍訊

這個東西有點泛。
我們可以先看看APP介面都需要實現什麼功能
1 APP應用需要獲取新聞列表信息,展示到APP裡面
2 用戶注冊/登錄驗證
3 支付

一般介面交互都用什麼形式呢?
1 XML 2JSON
根據需求,或者說根據自己team的熟練方面,用哪種進行選取。

怎麼做介面呢?
比如是新聞的列表數據
可以放在數據套數組裡面
內層數組 存標題、內容鏈接、作者、更新時間、小圖片地址
外層數組就是把這些一個一個內層數組包進去。
然後用PHP的數組 json_decode 進行編碼,就會變成一個JSON格式的字元串, 只要把這個介面給APP請求,就可以獲取了

然後APP再進行解析填充到裡面 就行了

⑵ php做app介面有什麼規范嗎

PHP通用的DES加米

PHP:
classJoDES{

privatestatic$_instance=NULL;
/**
*@returnJoDES
*/
publicstaticfunctionshare(){
if(is_null(self::$_instance)){
self::$_instance=newJoDES();
}
returnself::$_instance;
}

/**
*加米
*@paramstring$str要處理的字元串
*@paramstring$key加
*@returnstring
*/
publicfunctionencode($str,$key){
$size=mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC);
$str=$this->pkcs5Pad($str,$size);
$aaa=mcrypt_cbc(MCRYPT_DES,$key,$str,MCRYPT_ENCRYPT,$key);
$ret=base64_encode($aaa);
return$ret;
}

/**
*解米
*@paramstring$str要處理的字元串
*@paramstring$key解碧襲米Key,為8個位元組長度
*@returnstring
*/
publicfunctiondecode($str,$key){
$strBin=base64_decode($str);
$str=mcrypt_cbc(MCRYPT_DES,$key,$strBin,MCRYPT_DECRYPT,$key);
$str=$this->pkcs5Unpad($str);
return$str;
}

functionhex2bin($hexData){
$binData="";
for($i=0;$i<strlen($hexData);$i+=2){
悔山兄$binData.=chr(hexdec(substr($hexData,$i,2)));
}
return$binData;
}

functionpkcs5Pad($text,$blocksize){
$pad=$blocksize-(strlen($text)%$blocksize);
return$text.str_repeat(chr($pad),$pad);
}

functionpkcs5Unpad($text){
$pad=ord($text{strlen($text)-1});
if($pad>strlen($text))
returnfalse;

if(strspn($text,chr($pad),strlen($text)-$pad)!=$pad)
returnfalse;

唯毀returnsubstr($text,0,-1*$pad);
}

}

⑶ php裡面app介面怎麼寫出來

1、目的:清楚明白所寫介面的用途
2、安全性:做好介面的安全性,防止介面數據泄露,做好必要的參數加密措帆坦虛施
3、按需分配: 接受值和返回值要實用,不接受和返回不需要的數據,返回值返回什麼應與使用者時時溝通
4、規范性:參數命名規范有意義,讓使信明用者一目瞭然;返回值要包含調用介面狀態信息,返回數據格式最好使用JSON
5、日態燃志:寫介面調用日誌,方便查到介面調用錯誤,實現監控和對接快捷

⑷ 用PHP寫手機端APP數據介面和PC端數據介面有什麼不一樣

都一樣的 只是由於app不是瀏覽器不雹肢能正常使用cookie所鬧畢以不支持session認證 在做app介面的時候一般都會液肆芹使用自己定義的token來認證 其他的都是一致的

⑸ php開發中app怎麼接入支付寶

准備工作
APP支付介面:alipay.trade.app.pay
伺服器端使用框架:TP5
登錄螞蟻金服開放平台 --> 創建應用 --> 添加App支付功能。具體查看官方文檔
下載官方 SDK (PHP版本資源)——當前SDK版本:106 生成時間:2017-07-25 11:46:10
將SDK原碼放置在TP5的vendor目錄下的alipay文件夾(可根據實際使用框架技術進行實際調整)。
支付介面調用原理
1、APP支付系統架構
APP支付系統架構圖
2、數據校驗原理
數據校驗原理
應用公鑰(商戶自身的RSA公鑰):支付寶使用該公鑰驗證該交易是商戶發起。
支付寶公鑰(支付寶的RSA公鑰):商戶使用該公鑰驗證該結果是支付寶返回的。
3、系統交互流程
系統交互流程圖
4、支付場景具體實現流程(最詳細圖解)
在集成App支付能力時,建議實現如下支付流程,創建訂單並支付,根據返回的結果確定支付狀態,並進行相應的異常處理,其過程如下圖所示.
支付場景具體實現流程
商家APP在創建訂單並且喚起支付寶APP支付,流程如上圖所示,根據第2.2,3步返回的支付結果,確定支付狀態,並且做相應的異常處理(必要時關閉訂單)
代碼實現
步驟1:商戶APP端請求商戶伺服器介面,提交訂單數據。
步驟2:商戶伺服器端接收數據,然後對數據進行簽名,返回請求參數到商戶APP端。
官方介面文檔:https://docs.open.alipay.com/204/105465/
——代碼如下:
//vendor();為TP5框架的方法,作用:導入第三方框架類庫
vendor('alipay.aop.AopClient');
vendor('alipay.aop.request.AlipayTradeAppPayRequest');
//實例化支付介面
$aop = new \AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; //支付寶網關
$aop->appId = 「應用ID,填寫你的APPID」;
$aop->rsaPrivateKey = "商戶私鑰,您的原始格式RSA私鑰()";
$aop->alipayrsaPublicKey = "支付寶公鑰";
$aop->apiVersion = '1.0';
$aop->signType = "簽名方式,如 RSA2 ";
$aop->postCharset = 'UTF-8';
$aop->format = "json";
//實例化具體API對應的request類,類名稱和介面名稱對應,當前調用介面名稱:alipay.trade.app.pay
$appRequest = new \AlipayTradeAppPayRequest();
//SDK已經封裝掉了公共參數,這里只需要傳入業務參數
$bizcontent = json_encode([
'body' => '余額充值', //訂單描述
'subject' => '充值', //訂單標題
'timeout_express' => '30m',
'out_trade_no' => 『20170125test01』, //商戶網站唯一訂單號
'total_amount' => '0.01', //訂單總金額
'proct_code' => 'QUICK_MSECURITY_PAY', //固定值
]);
$appRequest->setNotifyUrl($url); //設置非同步通知地址
$appRequest->setBizContent($bizcontent);
//這里和普通的介面調用不同,使用的是sdkExecute
$response = $aop->sdkExecute($appRequest);
//htmlspecialchars是為了輸出到頁面時防止被瀏覽器將關鍵參數html轉義,實際列印到日誌以及http傳輸不會有這個問題
echo htmlspecialchars($response);//就是orderString 可以直接給客戶端請求,無需再做處理。
// 如果最後有問題可以嘗試把htmlspecialchars方法去掉,直接返回$response
說明:sdkExecute()方法,作用生成簽名,詳細步驟如下:
將請求參數組裝分下列3步,以最後第三步獲取到的請求為准。
1)將請求參數的鍵按字典排序,然後按照key=value&key=value方式拼接,得到未簽名原始字元串如下:
app_id=2015052600090779&biz_content={"timeout_express":"30m","proct_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數據","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0
2)再對原始字元串進行簽名
app_id=2015052600090779&biz_content={"timeout_express":"30m","proct_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數據","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0&sign=+/=
3)最後對請求字元串的所有一級value(biz_content作為一個value)進行encode,編碼格式按請求串中的charset為准,沒傳charset按UTF-8處理,獲得最終的請求字元串:
app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22proct_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22IQJZSRC1YMQB5HU%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2×tamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=%2B%2F%3D
步驟3:商戶APP接收從商戶伺服器端返回的請求參數,然後調起支付寶支付面板。
若用戶支付成功,支付寶會同步給商戶APP端返回一個支付結果。相應地,支付寶也會通過非同步通知給商戶伺服器端返回一個支付結果。
注意:由於同步通知和非同步通知都可以作為支付完成的憑證,且非同步通知支付寶一定會確保發送給商戶服務端。為了簡化集成流程,商戶可以將同步結果僅僅作為一個支付結束的通知(忽略執行校驗),實際支付是否成功,完全依賴服務端非同步通知。
步驟4:服務端非同步通知處理機制(支付寶主動發起通知,該方式才會被啟用)
官方介面文檔:https://docs.open.alipay.com/204/105301/
注意點:
1)必須保證伺服器非同步通知頁面(notify_url)上無任何字元,如空格、HTML標簽、開發系統自帶拋出的異常提示信息等;
2)支付寶是用POST方式發送通知信息,因此該頁面中獲取參數的方式,如:$_POST[『out_trade_no』];
3)程序執行完後必須列印輸出「success」(不包含引號)。如果商戶反饋給支付寶的字元不是success這7個字元,支付寶伺服器會不斷重發通知,直到超過24小時22分鍾。一般情況下,25小時以內完成8次通知(通知的間隔頻率一般是:4m,10m,10m,1h,2h,6h,15h);
4)當商戶收到伺服器非同步通知並列印出success時,伺服器非同步通知參數notify_id才會失效。
——代碼如下:
$aop = new AopClient;
$aop->alipayrsaPublicKey = '請填寫支付寶公鑰,一行字元串';
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2"); //驗證簽名
if($flag){
//校驗通知數據的正確性
$out_trade_no = $_POST[『out_trade_no']; //商戶訂單號
$trade_no = $_POST[『trade_no']; //支付寶交易號
$trade_status = $_POST[『trade_status']; //交易狀態trade_status
$total_amount = $_POST[『'total_amount']; //訂單的實際金額
$app_id = $_POST[『app_id'];
if($app_id!=$this->config['app_id']) exit('fail'); //驗證app_id是否為該商戶本身
//只有交易通知狀態為TRADE_SUCCESS或TRADE_FINISHED時,支付寶才會認定為買家付款成功。
if($trade_status != 'TRADE_FINISHED' && $trade_status != 'TRADE_SUCCESS')
exit('fail');
//校驗訂單的正確性
if(!empty($out_trade_no)){
//1、商戶需要驗證該通知數據中的out_trade_no是否為商戶系統中創建的訂單號;
//2、判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創建時的金額);
//3、校驗通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據的對應的操作方(有的時候,一個商戶可能有多個seller_id/seller_email)。
//上述1、2、3有任何一個驗證不通過,則表明本次通知是異常通知,務必忽略。在上述驗證通過後商戶必須根據支付寶不同類型的業務通知,正確的進行不同的業務處理,並且過濾重復的通知結果數據。
//校驗成功後在response中返回success,校驗失敗返回failure
}
exit('fail');
}
echo"fail"; //驗證簽名失敗
步驟5:當商戶APP端接收到支付寶的同步返回結果為成功時,商戶APP端再請求商戶伺服器端API,判斷訂單最終支付結果,並做出最終響應。

⑹ 想問問各位大哥大姐 php給app寫介面怎麼寫

現在一般就這兩種常用的介面

輸出json:

<?php
header("Content-type:application/json");
$arr=array('str_key'=>'str_val','timestamp'=>大賀1380000000);
echojson_encode($arr);
?>

輸出xml:

<?php
header("Content-type:text/xml");
echo"<?xmlversion="1.0"encoding="utf-8"?>";
echo"<data><demo>value<滾野派/demo></data>";脊沒
?>

⑺ 如何用php寫app介面原創

先簡單點的,要會php的一些基本的語法。。先建一個並轎test.php , 賦值數組: $return = array( 'id' => '1', 'name' => 'test', ) echo json_encode($return); //直接輸出~嗯,這個是json格式返回的數據 app端渣跡調用test.php文件,能獲絕梁肆取數據。

⑻ 手機app介面怎麼和php開發

軟體開發平台是一種軟體開發工具,以通用技術架構(如MVC)為基礎,集成常用建模工具、二次開發包、基礎解決方案等而成。可以大幅縮減編碼率,使開發者有更多時間關注客戶需求,在項目的需求、設計歷友、開發、測試、部署、維護等各個階段均可提供強大的支持。

軟體開發平台源於繁瑣的實踐開發過程中。開純爛謹發人員在實踐中將常用的函數、類、抽象、介面等進行總結、封裝,成為了可以重復使用的「中間件」,而隨著「中間件」的成熟和通用,功能更強大、更能滿足企業級客戶需求的——軟體開平台應運而生。

平台是一段時間內科研成果的匯聚,也是階段性平台期的標志,為行業進入新的研發領域提供了基礎。由於平台對企業核心競爭力的提升非常明顯,目前國內的管理軟體市場,軟體開發平台的應用已經成為一種趨勢。

互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果你真的想做,可以來這里,這個手技的開始數字做基是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,我想說的是,除非你想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。

目前國內的軟體開發平台,除國際品牌如IBM,國內平台商比較強大的平台比如北京開運聯合,支持.NET和java的無縫切換,這也是其能夠廣泛應用的原因。

由於開發環境、開發人員、功能定位、行業背景等的不同,不同品牌的平台存在較大差別。以輕騎兵軟體開發平台為例,其最大特點在於可視化的界面定製、方便快捷的流程配置、按需定義的報表定製、功能完善的二次開發支持。

軟體開發平台相對傳統開發模式的優勢:

1、優化產品基礎架構,提升軟體開發質量;

2、減少編碼率,提高開發效率,提升開發的靈活性;

3、可以充分關注客戶需求,實現按需定製;

4、實現配置組件的標准化,提升產品穩定性和兼容性;

5、提升企業開發能力,降低後期維護的時間和成本

⑼ PHP---APP介面02

JSON&XML

XML: 是一種嘩碧運標記語言,設計的宗旨是傳輸數據

JSON: 輕量級的數據交換格式

APP介面主要是用JSON輸出格式

APP介面輸出格式三要素:

1. code::錯誤碼

2. msg:錯誤亂梁碼對應的描述

3. data:介面返回的數據

誰有許可權調用APP介面,客戶端需要帶著憑證來調用APP介面


JWT的原理:

服務端認證之後,生成一個JSON對象,返回給用戶。後續客戶端所有請求都會帶上這個JSON對象。服務端依靠這個JSON對象來認定用戶身份。

組成: Header, Payload, Signature

1. Header

說一下我是什麼

header通常包含了兩部分:類型和加密演算法

{

    "alg": "HS256",

    "typ": "JWT"

}

header需要經過Base64Url編碼後作為IWT的第一部分。

2. Payload

payload包含了claim, 三種類型reserved, public, private

reserved這些claim是JWT預先定義的,不強制使用,常用的有:

1). iss: 簽發者

2). exp: 過期的時間戳

3). sub: 面向的用戶

4). aud: 接收方

5). iat: 簽發時間

{

    "sub":  "1234567890",

    "name":  "John Doe",

    "admin": true

}

payload需要經過Base64Url編碼後作為JWT的第二部分。

3. Signature

創建簽名使用編碼後的header和payload以及一個密匙,使用header中指定的簽名演算法進行簽名

HMACSHA256(

base64UrlEncode(header) + "." +

base64UrlEncode(payload),

secret

)

簽名是在服務端慧沒進行的,客戶端並不知道,所以是安全的。

⑽ PHP開發APP介面需要注意哪些問題

PHP開發APP介面需要注意下面問題:

1.制定規范

開發前一定要定好一個規范,比如要定好數據返回的通用參數和格式。關於數據格式,用的比較多的有xml和json,我建議用json,因為json比xml的好處更多。

2.精簡的返回數據

介面數據因符合需要什麼返回什麼的原則,比如要查詢某個用戶的余額和注冊時間,網頁裡面的做法可能是select * from user where
uid=1,但是介面一定要select balance,regtime from user where
uid=1。因為介面返回數據是要有開銷的,要流量的,能少返回數據就盡量少返回,這樣可以大大的提高性能。

3.數據類型要嚴格

要注意數據的類型,整數類型的數據一定要轉為int,因為app客戶端開發的java、object-c語言對數據類型比較嚴格,類型不對會照成app閃退。

4.要寫介面文檔

一定要寫好介面文檔,並按照模塊寫,而且還要書寫規范,最好的格式是:

介面請求地址;請求參數(包括參數名、類型、是否必填);測試參數舉例;返回參數(參數名,並註明每個參數的含義)。

這樣哪怕以後項目很大,以不會照成維護困難的問題。

5.保證代碼正確性

要驗證保證代碼正確無誤,而且生成環境中要屏蔽掉錯誤,避免頭部有額外的輸出,照成返回的json等數據解析失敗而導致app閃退等。

6.要優化代碼的性能

app要求響應迅速,這樣才能給用戶比較好的體驗感。所以移動介面端在處理業務邏輯的時候,要避免不要執行太復雜的sql語句,或者含有大量的循環,能做成緩存的盡量做緩存,比如將首頁的熱點模塊信息可以存到redis緩存中。在不考慮網速的情況下,比較理想的介面響應時間應該是200毫秒以內。

7.不要隨意更改舊介面

app不像網頁,app一旦發布,有人使用之後,介面就不要亂修改了。以後升級也是,修改要在保證介面原有結構之上進行額外的擴展,否則會導致調用舊版介面的app出現bug。

8. 注意介面的安全

安全高於一切,必須要保證介面的安全。電話號碼等敏感信息在傳輸的過程中一定要加密,否則可能會被別人抓包到。拿取用戶信息的介面一定要驗證許可權,以防止介面被惡意調用,泄密用戶信息,甚至篡改信息。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:741
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372