您身边的网站建设专家
成功案例

【建站服务】庆阳网站推广【庆阳办理400电话】庆阳SEO优化、庆阳微信公众号APP客户端小程序开发、庆阳网站托管、庆阳APP开发-域名申请

日期: 2022-09-20 15:50:04 浏览数:9


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


庆阳网站推广【庆阳办理400电话】庆阳SEO优化、庆阳微信公众号APP客户端小程序开发、庆阳网站托管、庆阳APP开发

网站建设.jpg

庆阳,习称“陇东”,是甘肃省辖地级市,甘肃的石油天然气化工基地、长庆油田主产区。截至2020年7月,辖1个区、7个县,总面积27119平方公里,总人口265万,常住人口227.88万人,城镇人口90.98万。

庆阳地处中国西部地区、甘肃省东部,东接陕西省的宜君、黄陵、富县、甘泉、志丹等县;北邻陕西省定边、吴起、志丹县及宁夏回族自治区盐池县;西与宁夏回族自治区固原市原州区、彭阳县、同心县接壤;南与甘肃省的泾川县及陕西的彬州市、长武、旬邑县相连。被誉为“红色圣地、岐黄故里、农耕之源、能源新都”,素有“陇东粮仓”的美称。 [1-2] 

庆阳市是是“环江翼龙”和“黄河古象”的故乡,中国“第一块旧石器”的出土地,中华民族早期农耕文明的发祥地之一,中医药文化的发祥地、中医鼻祖岐伯的出生地,甘肃的革命老区,长庆油田的发源地。

2019年,庆阳市完成生产总值742.94亿元,同比增长5.3%。 [3]  2020年,庆阳市实现地区生产总值754.73亿元,比2019年增长4.3%。

现以大家熟悉的微信公众号开发平台的验签为例,进行说明。


微信的加密/校验流程如下:


1、 将token、timestamp、nonce三个参数进行字典序排序

2、将三个参数字符串拼接成一个字符串进行sha1加密

3.、开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

参考:以上内容摘自接入指南 - 微信公众平台开发者文档。


首先,需要实现过滤器接口PhalApi_Filter::check()。通常我们约定返回ret = 402时表示验证失败,所以当签名失败时,我们可以返回ret = 402以告知客户端签名不对。根据微信的检验signature的PHP示例代码,我们可以快速实现自定义签名规则,如:


//$ vim ./Shop/Common/Request/WeiXinFilter.php

<?php


class Common_Request_WeiXinFilter implements PhalApi_Filter {


    public function check() {

        $signature = DI()->request->get('signature');

        $timestamp = DI()->request->get('timestamp');

        $nonce = DI()->request->get('nonce');


        $token = 'Your Token Here ...'; // TODO

        $tmpArr = array($token, $timestamp, $nonce);

        sort($tmpArr, SORT_STRING);

        $tmpStr = implode($tmpArr);

        $tmpStr = sha1( $tmpStr );


        if ($tmpStr != $signature) {

            throw new PhalApi_Exception_BadRequest('wrong sign', 1);

        }

    }

}

随后,我们只需要再简单地注册一下过滤器服务即可,在对应项目的入口文件index.php中添加:


//$ vim ./Public/shop/index.php 

// 微信签名验证服务

DI()->filter = 'Common_Request_WeiXinFilter';

当我们再次请求接口时,此时的签名方案就会从原来默认的md5加密算法切换到这个新的签名验证方案上。实现的要点是,当签名失败时,抛出401错误码。而异常类PhalApi_Exception_BadRequest表示客户端非法请求,其异常码的基数是400,所以第二个构造函数参数传1即可。


2.2 接口响应

对于接口响应,PhalApi默认使用了HTTP+JSON。通过HTTP/HTTPS协议进行通讯,返回的结果则使用JSON格式进行传递。正常情况下,当接口服务正常响应时,如前面的Hello World接口,可能看到以下这样的响应头部信息和返回内容。


HTTP/1.1 200 OK

Content-Type: application/json;charset=utf-8

... ...


{"ret":200,"data":"Hello World","msg":""}

而当接口项目抛出了未捕捉的异常,或者因PHP语法问题而出现Error时,则没有内容返回,并且得到一个500的响应状态码。类似如下:


HTTP/1.1 500 Internal Server Error

若运行环境中PHP的display_errors配置为On时,还是会返回200的,并直接显示错误信息。在生产环境上,则切记需要把display_errors设置为Off。


下面,我们将重点学习正常响应情况下的响应结构和返回格式,在线调试以及异常情况下如何进行问题排查与定位。


2.2.1 响应结构

继续来回顾一下默认接口服务返回的内容。类似如下:


{

    "ret": 200,

    "data": {

        "title": "Hello World!",

        "content": "PHPer您好,欢迎使用PhalApi!",

        "version": "1.4.0",

        "time": 1492776704

    },

    "msg": ""

}

ret字段是返回状态码,200表示成功;data字段是项目提供的业务数据,由接口开发人员定义;msg是异常情况下的错误提示信息。下面分别说之。


业务数据 data

业务数据data为接口和客户端主要沟通对接的数据部分,可以为任何类型,由接口开发人员定义定义。但为了更好地扩展、向后兼容,建议都使用可扩展的集合形式,而非原生类型。也就是说,应该返回一个数组,而不应返回整型、布尔值、字符串这些基本类型。所以,Hello Wolrd接口服务返回的数据类型是不推荐的,因为返回的是整型。


业务数据主要是在Api层中返回,即对应接口类的方法的返回结果。如下面的默认接口服务?service=Default.Index的实现代码。


// $ vim ./Shop/Api/Default.php

<?php

class Api_Default extends PhalApi_Api {

    ... ...

    public function index() {

        return array(

            'title' => 'Hello World!',

            'content' => T('Hi {name}, welcome to use PhalApi!', array('name' => $this->username)),

            'version' => PHALAPI_VERSION,

            'time' => $_SERVER['REQUEST_TIME'],

        );

    }

实际上,具体的业务数据需要一段复杂的处理,以满足特定业务场景下的需要。后面我们会对如何开发接口服务和使用数据库、高效缓存再进行讨论讲解。这里暂且知道接口结果是在Api层返回,对应接口类成员方法返回的结果即可。


庆阳网站推广庆阳办理400电话庆阳SEO优化、庆阳微信公众号APP客户端小程序开发、庆阳网站托管、庆阳APP开发



上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站