php第三方快递接口_tsm: php 对接第三方接口SDK

TSM

项目介绍

对接第三方接口SDK

tsm, Third Services Manager 第三方服务管理器, 通过配置的方式管理多个第三方服务,适用于较为复杂的多系统交互场景

安装教程

下载tsm包到项目任意目录

require ThirdServiceManager.php文件

使用说明

复制配置文件config.default.php为config.php, 添加第三方服务的配置信息

使用配置中的第三方服务key为参数实例化一个tsm

调用tsm的execute方法来调用需要的第三方服务api, 参数为配置的api的key和api要求的参数

可以参照example.php来使用tsm

快速开始

嗯,这是一个php的SDK。

首先,我们需要加载tsm文件,ThirdServiceManager.php文件需要开发者自行加载,其他的文件tsm会自动加载。

require ThirdServiceManager.php

tsm的使用非常简单,配置好的tsm只需要两行代码就可以调用我们需要的第三方服务。

$service = \TSM\ThirdServiceManager::instance('serviceName');

$response = $service->execute('apiName', $params);

serviceName 是配置文件中服务配置的key值,用来标记一个服务的配置。

apiName 是配置文件中api配置的key值,用来标记一个api的配置。

$params 是一个array,里面存放着此api需要的请求参数。

配置文件说明

配置文件是一个array

return array (

'zhifubao' => array(),

'weixin' => array(),

// ..

);

其中 zhifubao 就是 serviceName,每一个服务的相关配置放在对应array里面。

return array (

'zhifubao' => array(

'service' => array(),

'apis' => array(),

),

'weixin' => array(),

// ..

);

在单个服务的配置里面有两个array,其中 service 表示服务的通用配置,apis 表示服务中各个api的配置

return array (

'zhifubao' => array(

'service' => array(

'dev' => array(

// 网关地址

'host' => 'http://dev.example.com:10099',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'test' => array(

// 网关地址

'host' => 'http://test.example.com:10099',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'pdtest' => array(

// 网关地址

'host' => 'http://pdtest.example.com',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'product' => array(

// 网关地址

'host' => 'http://www.example.com',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

),

'apis' => array(

/*

* 每一个key表示api别名, 在调用第三方服务时需要用到

*/

'detail' => array(

// api

'path' => '/zeus/qxd/resale/order/detail',

// 请求方法, 支持值: 'get', 'post'

'method' => 'get',

// 接口请求重试次数, 不能是负数, 默认3次

'retryCount' => '4',

),

'check' => array(

'path' => '/zeus/qxd/resale/order/detail/check',

'method' => 'get',

),

'confirm' => array(

'path' => '/zeus/qxd/resale/order/detail/confirm',

'method' => 'get',

),

),

),

'weixin' => array(),

// ..

);

service 中,通过键值标记不同的开发环境,具体我们会在环境切换小结讨论。每个键值包含若干值。

键值

说明

默认值

host

服务地址

null

开发者也可以自定义其他配置,通过 BaseService 中的 getCommonConfig 方法获取,具体我们在 第三方服务管理扩展 讨论。

apis 中,包含了此服务所有api的配置。通过键值表示此api的别名,array的内容包含若干值。

键值

说明

默认值

path

接口path

null

method

请求方式

post

retryCount

请求次数

3

开发者也可以自定义其他配置,通过 BaseService 中的 getApiConfig 方法获取,具体我们在 第三方服务管理扩展 讨论。

这样,一个第三方服务就对接完成了

环境切换

对接第三方服务,一般都会有两三套环境。在不同的环境上,地址以及签名salt值等都会有差别。在配置中可以通过 service 下的key值来切换不同的环境。

return array (

'zhifubao' => array(

'service' => array(

'dev' => array(

// 网关地址

'host' => 'http://dev.example.com:10099',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'test' => array(

// 网关地址

'host' => 'http://test.example.com:10099',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'pdtest' => array(

// 网关地址

'host' => 'http://pdtest.example.com',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

'product' => array(

// 网关地址

'host' => 'http://www.example.com',

// 签名salt值

'signKey' => '9efa342d13496cce8da058dc5830096d',

),

),

'apis' => array(

// ..

),

),

'weixin' => array(),

// ..

);

诸如dev、test之类的值,可以通过配置文件中的APP_ENV来指定。

define(APP_ENV, 'dev');

tsm会根据APP_ENV来切换环境。

推荐使用如下方式来指定APP_ENV的值,在php.ini中自定义一个tsm.env的值,通过get_cfg_var函数来获取这个值。这样可以更灵活的指定环境而不需要修改代码。

define(APP_ENV, get_cfg_var(tsm.env)); // tsm.env 为php.ini中增加的一个自定义的配置值

第三方服务管理扩展

访问第三方接口一般需要数据签名或者数据加解密来认证,tsm 提供了灵活的方式来扩展程序。

在 tsm 的services文件中,新建一个名为、***Service.php的文件并完成一个同名的类,此类需要继承BaseService。

注意 *** 要跟配置文件中的拼写 serviceName 保持一致并且开头字母大写,例如配置的serviceName为 'example',那么新建的文件名字为ExampleService.php,类名为class ExampleServcie

开发者可以重写 generateParams 方法以及 handleResponse 方法。

在 generateParams 方法中,可以进行数据发送前的数据重新组装,签名计算,数据加密等操作。

在 handleResponse 方法中,可以进行数据返回后的数据验签,数据解密等操作。

另外,BaseService提供了如下不可重写的方法来读取通用配置和api配置。

方法名称

参数

返回值

作用

getCommonConfig

配置key

配置值

获取自定义的通用配置

getApiConfig

api key

api配置值(array)

获取api相关配置数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值