#### 说明
1. 该功能用于客户自行领取代金券
2. 该功能仅提供调用方法,需合作商自行编写前后端相关代码(如前端领取按钮,后端调用控制器等)
3. 领取代金券与后台代金券赠送设置关联,请先添加新的赠送设置
#### 添加代金券组
位置:【财务】-【代金券管理】-【组管理】-【添加新分组】
**示例**
分组名称:领券组
排序数值:1
状态:可用
![](https://upload.zkeys.com/2019/07/5d245d95c90a6.png?token=9M3NK8D5HyUodUnWTvZYWg&expires=1616556938)
#### 设置赠送场景
位置:【财务】-【代金券管理】-【赠送场景设置】-【添加新设置】
**示例**
设置场景名称:领取云服务器购买代金券
设置每位用户限领次数:1
![](https://upload.zkeys.com/2019/07/5d245dd3ba553.png?token=P2uZqSazzwnLDRxb7F8MiA&expires=1616556938)
赠送场景设置成功后,系统会自动生成一个code值,该值将用于下面代码调用
![](https://upload.zkeys.com/2019/07/5d245de5e16f4.png?token=uDlXs0fdnCLqJgrTIEyGxg&expires=1616556938)
#### 代金券赠送设置
位置:【财务】-【代金券管理】-【代金券赠送设置】-【添加新设置】
如设置用户可领取的云服务器购买代金券 2 张
使用条件为:满 200 减 100
每张券最多可使用1次,可购买云服务器数量为 1 台
有效期:6个月
![](https://upload.zkeys.com/2019/07/5d245e039fb16.png?token=8RNKn-5Z2UA-qXsyU8UUYw&expires=1616556938)
#### 添加相关代码
* **后端调用领取代金券接口**
**调用方式**
```
//$userId 用户ID
//$presentCode 赠送场景
//$remarks 用于生成代金券时记录备注
//$sms 发送消息方式 :0 不发送 1 站内信,2 站内信+短信 ,默认为0 不发送消息,可不传
//$code 发送消息的模板,发送消息时才用到 ,可不传
$cashCoupon = new CashCoupon();
$receive = $cashCoupon->cashcouponReceive($userId, $presentCode, $remarks, $sms,$code);
```
**调用实例**
此处以新建控制器调用为例
后端代码:在 `app/Home/Controller` 文件夹中添加新的控制器 `CashcouponReceiveController.class.php`
代码如下:
```
ajaxReturn(['result' => false, 'text' => '无效请求']);
}
$userId = is_front_login(); //判断是否已登录
if (!$userId) {
$this->ajaxReturn(['result' => false, 'text' => '请先登录',]);
}
//赠送场景的code值
$presentCode = 'lDsmL2RQGREEZ3Jg';
$remarks = '领取云服务器购买代金券';
$cashCoupon = new CashCoupon();
$receive = $cashCoupon->cashcouponReceive($userId, $presentCode, $remarks);
if ($receive['result']) {
$this->ajaxReturn($receive);
}
$this->ajaxReturn($receive);
}
}
```
**添加调用路由**
自定义路由文件:`config/userDefinedRouter.php`
```
'Home/CashcouponReceive/getCashcoupon',
];
```
* **前端代码**
以上方添加的代码为例,在需要添加领取按钮的地方使用post请求调用 `CashcouponReceive/getCashcoupon` 即可