Php优惠券数据库设计 优惠券数据库表设计

php 大转盘抽奖每天的奖品不同 数据库奖品表该怎么设计?奖品 id,数量 ,  名称,类型,图片
然后随机所有的奖品id 。每天不就不一样了
qq小程序道具优惠劵怎么卡进去这样卡进去
1 小程序和公众号要有绑定
2 小程序和该公众号要绑定到同一个开发平台下 []
3 公众号开通微信卡券功能
4 卡券是在公众号上生成的
5 小程序领取公众号上的卡券
看官方文档
公众号平台卡券文档[;id=mp1445241432]
小程序卡券文档[]
简单说一下创建卡券:
我使用的是[创建会议门票]
接口:http请求方式: POSTURL:
参数:
1 access_token调用接口凭证
2 POST数据 JSON数据
POST数据格式:
1 card_typestring(24) 会议门票类型 。
2 base_infoJSON结构基本的卡券数据,见下表,所有卡券通用 。
3 meeting_detail string(3072)本次会议于2015年5月10号在广州举行,会场地点:xxxx 。会议详情 。
主要就是填充base_info信息自己看文档就明白了
返回值:
{
"errcode":0,
"errmsg":"ok",
"card_id":"p1Pj9jr90_SQRaVqYI239Ka1erkI"
}
**记得把card_id保存**
小程序领取卡券:
前端发起请求:wx.addCard(OBJECT)
后端把需要的参数给前端
参数:
cardList: [
{
cardId: '',
cardExt: '{"code": "", "openid": "", "timestamp": "", "signature":""}'
}, {
cardId: '',
cardExt: '{"code": "", "openid": "", "timestamp": "", "signature":""}'
}
]
cardId : 生成卡券返回的cardId
cardExt : json字符串
code : 每一张卡券都有一个code[创建时自己生成的code , 这个code有特殊符号限制,和长度限制 , 自己去感受下微信的坑]
openid : 用户的openid
timestamp : 时间戳/秒
signature : 签名
回调:
处理你领取成功的业务逻辑
示例代码
小程序领取卡券:
# 领取卡券
public function receiveCard()
{
# 小程序appid
$appId = input('appid');
# openid
$openId = input('openid);
# 订单id
$orderId = input('order_id');
$list = $this-getInfo($appId, $openId, $orderId);
# 返回前端json数据格式
return $list;
}
public function getInfo($appId, $openId, $orderId)
{
# 业务处理[比如:是否开启卡券功能 | 是否绑定了公众号 等等等.....]
if () xxxxxxxxx;
# 查询订单获取保存的 cardId 和 每张卡券的唯一标识 code
$orderInfo = Db::table('')-field('code, card_id')-where()-select();
# 获取ApiTicket 主要用于生成签名
1 [签名文档] : [;id=mp1421141115]
2 [获取access_token] : [;appid=".$config['appid']."secret=".$config['secret'];]
3 [获取api_ticket] : [;type=wx_card]
注意:appid 和 secret 是公众号的,通过小程序的appid查询对应公众号的配置 。apiTicket 和 accessToken 应该缓存或者是个公共的方法,避免多个地方使用失效 。
# 处理数据返回数据
foreach ($orderInfo as $key = $value) {
# 生成签名的参数
# nonce_str 自己生成的随机字符串31位
$params = [
'code' = $value['code'],
'api_ticket' = $apiTicket,
'timestamp' = time(),
'nonce_str' = sp_random_string(31),
'card_id' = $value['card_id'],
'openid' = $openId
];
$signature = $this-getSignature($params);
$value['openid'] = $params['openid'];
$value['timestamp'] = $params['timestamp'];
$value['signature'] = $signature;
$data[] = $value;
}
}
# 生成签名
public function getSignature($params)
{
sort($params, SORT_STRING);
return sha1(implode($params));

推荐阅读