# 接口商城

为满足企业实现对API接口收费的需求，接口大师提供了接口商城，在管理后台配置好接口流量套餐后，开发者用户则可以通过开放平台或前台进行查看和购买，购买接口套餐后再调用接口就会进行流量计费。  

## 接口流量套餐配置

使用管理员账号，登录Admin管理后台，进入【服务大厅】-【接口流量套餐】，查看当前的流量套餐。  
![](http://cd8.okayapi.com/yesyesapi_20210713223521_08efc73a227596faa7e9fdbd93cf73e6.png)  

可以点击【添加套餐】，添加：付费购买/免费试用/组合套餐。  
![](http://cd8.okayapi.com/yesyesapi_20210713223640_cca6a8bae9bc9c9c12b48752a28a1158.png)  

+ **付费购买**套餐：是指单个API接口调用多少次需要多少钱，多久时间内有效。  
+ **免费试用**套餐：是指单个API接口同一个应用可以免费调用多少次，多久时间内有效。  
+ **组合套餐**：可以把多个不重复的付费购买套餐组合起来，进行优惠定价，吸引客户购买。  

套餐保存后，仍然可以修改，但过去已经下单的套餐不影响。  

## 支付方式

默认提供了现金支付、支付宝和Paypal三种支付方式，可以通过【服务大厅】-【支付配置】进行不同支付方式的修改和开关。  

![](http://cd8.okayapi.com/yesyesapi_20210713224250_c3ea3addbf550d5810889221b38ef8e3.png)  

价格支持两位小数点，即人民币单位到：分。

## 前台套餐展示、下单和购买

### 游客如何查看接口流量套餐？
未登录开放平台的游客，可以通过在线接口文档查看需要付费的接口流量套餐。  

例如，在接口文档列表页，可以看到哪些接口需要付费才能使用。  
![](http://cd8.okayapi.com/yesyesapi_20210713224616_573fd6a1ec75901bdc4a7c09113dab9c.png)  

又如，在接口文档详情页，可以看到免费试用套餐和付费套餐。  
![](http://cd8.okayapi.com/yesyesapi_20210713224448_4826dfecd1eac695eac458b3b11945ed.png)  

点击即可登录后进行下单。  

### 开发者如何购买接口流量套餐？  

已经登录的开发者，除了可以在在线接口文档和游客一样查看接口流量套餐外，还可以在开放平台的【接口权限】查看需要传费才能使用的接口购买入口。   

![](http://cd8.okayapi.com/yesyesapi_20210713224830_68a1abbec109b138c7ab7063f77f15a3.png)  

### 如何查看组合套餐？  

因为组合套餐是组合了不定个接口流量套餐，并且价格上会比单个接口流量套餐购买的更优惠和更划算。

当在管理后台，添加和设置了组合套餐后，例如：  
![](http://cd8.okayapi.com/yesyesapi_20210713225148_1e8284d9bd36c44c593f93fa3c7309c1.png)  

在开放平台的-【接口权限】页面下方，就可以看到：  

![](http://cd8.okayapi.com/yesyesapi_20210714233426_3d3338ff0bf404c38bb9682f4db2ffe7.png)  

### 下单

点击购买入口，就可以进入下单页面。  

用户可以选择类似的套餐，以及选择需要购买的数量，还可以查看有效时间和套餐说明、套餐价值、付费服务协议。  

![](http://cd8.okayapi.com/yesyesapi_20210713225353_9e3b1a3ce5c9a0cd466d76c55eb69ad0.png)  

还可以填写备注和留言，确定后创建订单。  
![](http://cd8.okayapi.com/yesyesapi_20210713225525_2d1865e70fadad4a03f2022fb76c13de.jpg)  

下单后，会进入到支付环节，用户可以选择自己喜欢的支付方式。  
![](http://cd8.okayapi.com/yesyesapi_20210713225620_f34297a34aceac64440f8e172531ad82.png)  

例如，支付宝支付方式：  
![](http://cd8.okayapi.com/yesyesapi_20210713225758_a47a482d81dc73e9f5f642e5e36a9886.png)  

支付成功后会返回到支付成功页。  

## 我的订单和我的套餐

开发者在开放平台的【服务大厅】-【我的订单】，可以查看到我的订单，未支付的订单可以继续进行支付。  

![](http://cd8.okayapi.com/yesyesapi_20210713230114_d8008284212623bee132741709aeeb50.png)  

开发者在开放平台的的【服务大厅】-【我的套餐】，可以查看到我有哪些接口流量套餐，以及使用情况，或过期情况。  

![](http://cd8.okayapi.com/yesyesapi_20210713230246_703aee11b39791d9f482c117634fb299.png)  


## 接口流量计费

当配置好接口流量套餐，开发者也购买流量套餐后，就可以正常调用和请求接口，此时，API接口系统会进行接口流量统计和计费。  

计费逻辑是：
 + 1、优先使用已购买的接口流量套餐，并且优先使用最早付费的
 + 2、如果没有付费套餐，则尝试使用免费试用套餐的流量 

流量计费的代码入口位于./src/app/Common/Filter.php 文件的以下函数。  
```php
/**
 * 对付费的接口进行流量计费
 */
protected function cutDownApiFlow() {
    $flow = new Flow();
    $cutRs = $flow->cutdown(\PhalApi\DI()->request->getService(), \PhalApi\DI()->context->getAppKey());
    if ($cutRs < 0) {
        throw new BadRequestException(\PhalApi\T('api flow not enough'), 9);
    }
}
```

> 温馨提示：仅当接口通过签名验证后，才进行流量计费，  


## 管理后台的订单处理和管理  

在管理后台，除了可以设置接口流量套餐，还可以对开发者用户的订单和流量套餐进行管理和处理。   

例如，在管理后台-【服务大厅】-【订单管理】，可以查看和修改订单的状态、对套餐进行调整。可以发放流量套餐和回收流量套餐。每个订单，最多只能发放一次流量（即只能最多发一次货，不能重复发货）。  
![](http://cd8.okayapi.com/yesyesapi_20210713230824_abcd73fd6ddad68b64f6a17aa8a188bb.jpg)  

也可以在管理后台的【服务大厅】-【套餐管理】，对订单的套餐进行管理，也可以不需要订单直接给开发者发放接口流量套餐，例如内部测试或者内部使用时。  
![](http://cd8.okayapi.com/yesyesapi_20210713231015_0df90fad0ce052a78992615e69da2e79.png)  

## 一些注意事项

 + 1、付费的接口，需要先进行接口权限的设置  
 + 2、当接口有任意套餐时（不管试用或付费），都需要购买或拥有该接口的流量套餐后才可调用  
 + 3、调试模式下，不会进行接口流量的拦截和判断  



