php 发放代金券,如何开发用户领取代金券功能说明

#### 说明

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` 即可

你可能感兴趣的:(php,发放代金券)