和一个公司合作开发app,我们php负责接口,他们负责前端。因为之前都做的web,没做过app开发,所以以他们为主导。现在有个问题,例如在注册登录的时候用户验证。我们写的接口是,前端请求发过来成功返回200,然后根据验证情况返回自定义的错误码,例如手机号被注册返3001。而前端那边写的逻辑是在http状态码上就做判断,要我们这边在验证成功了才返回200,验证不对返回4开头状态码。这是要我们硬改http状态码啊。首先问一下这样做合理吗?再一个昨天弄了半天,可以改但是不能返给他们。望大神解答

解决方案 »

  1.   

    不知道你遇到什么难题,直接用 header 发送状态码不就行了?
    测试例(header.php)<?php
    $mode = rand(400, 500);
    $msg = base64_encode($mode);
    header("HTTP/1.0 $mode $msg");
    <?php
    for($i=0; $i<10; $i++)
      echo get_headers('http://localhost/header.php')[0], PHP_EOL;一个可能的结果
    HTTP/1.0 467 NDY3
    HTTP/1.0 478 NDc4
    HTTP/1.0 471 NDcx
    HTTP/1.0 480 NDgw
    HTTP/1.0 489 NDg5
    HTTP/1.0 498 NDk4
    HTTP/1.0 415 NDE1
    HTTP/1.0 408 NDA4
    HTTP/1.0 452 NDUy
    HTTP/1.0 409 NDA5