重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
别人请求你的API是数据流的,file_get_contents('php://input'); 这样接收,然后在return 就行啊
创新互联专注于盘州企业网站建设,响应式网站设计,商城网站定制开发。盘州网站建设公司,为盘州等地区提供建站服务。全流程定制网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证
原理
从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。
时间戳:当前时间
随机数:随机生成的随机数
口令:前后台开发时,一个双方都知道的标识,相当于暗号
算法规则:商定好的运算规则,上面三个参数可以利用算法规则生成一个签名。前台生成一个签名,当需要访问接口的时候,把时间戳,随机数,签名通过URL传递到后台。后台拿到时间戳,随机数后,通过一样的算法规则计算出签名,然后和传递过来的签名进行对比,一样的话,返回数据。
算法规则
在前后台交互中,算法规则是非常重要的,前后台都要通过算法规则计算出签名,至于规则怎么制定,看你怎么高兴怎么来。
我这个算法规则是
时间戳,随机数,口令按照首字母大小写顺序排序
然后拼接成字符串
进行sha1加密
再进行MD5加密
转换成大写。
返回的数据是php去决定的,xml和json都是可以的,
你可以和使用接口的一方定好规则,到底要xml格式数据还是json格式的数据。
当然你也可以更灵活点,当别人请求你的接口的时候,带上参数。你在接口里面接受,如果参数是1,你就返回json,如果是2,你就返回xml这样做显得更灵活。这都是在乎你在接口中怎么去写的。
这不难啊, 既然你也有例子了,就再细化一下,比如在结果输出后加个表示结束的变量, 或者加个error数量的变量,为0则是没发生错误. 你有什么不明白的?
======
以我做接口的经验,程序主要有几部分:
1.接收数据,验证数据合法性
这你已经有例子了, 就是用get方法,程序直接接收get的query,而支付宝,银行那些网关除了接收这些必要数据外,还会和商户约定一个key,是这字符串, 约定好每次发送的数据通过某种方式,比如连接的方式和这个key组成一个大的字串,再以MD5加密,附上这个hash给接口,用来判断这个请求的合法性,key是事先约定的,商户和接口都知道
2.处理数据
这个没什么好说的,数据入库,计算等等
3.返回数据
如果是以http协议的话,就直接输出header,然后输出
值名=值+换行符
这样的数据就可以了
银行接口网关,财付通,支付宝,域名注册接口我都做过,我只能提示到这里,具体要我做就不是200分的问题了,这需要时间调试
rerurn是语言中函数或者方法所代表的值,跟变量一样,储存在内存中。return是给其他代码块一个指针或者引用。
而服务器与app(客户端)交互时,他们无法读取同一个内存系统,只能通过文本这样的方式来交换信息。 php相对于APP来说,app 相对于一个打印机了 echo 就是把内容传送给打印机打印出来了
所以要echo一段文本(json)给客户端。