微信禮品的官方文檔,請戳微信禮品卡。
官方諮詢郵箱:[email protected]。
本文僅記錄微信禮品卡後端開發相關:
1.設計禮品卡數據庫表結構
請仔細閱讀微信禮品卡官方文檔,再進行數據庫表結構設計。
確保調用微信接口返回成功之後,然後再向數據庫表中插入或者修改數據。
根據API,我只設計了一張表存儲禮品卡的相關信息。建議給API的每個屬性值都創建一個字段。
貼一下官方API參數示例:
{
"card":{
"card_type":"GENERAL_CARD",
"general_card":{
"sub_card_type":"GIFT_CARD",
"background_pic_url":"https://mmbiz.qlogo.cn/mmbiz/",
"base_info":{
"max_give_friend_times":1,
"giftcard_info":{
"price":1
},
"logo_url":"https://mmbiz.qlogo.cn/mmbiz/p98FjXy8LaeMq67mEpDmkj05EtiaVcGOibVaVux3Agib1ibcHFkCoic7HuQWFawx9XGCNWIO085drjdxTib2nBHlYGAA/0?wx_fmt=gif",
"brand_name":"微信咖啡廳",
"code_type":"CODE_TYPE_QRCODE",
"title":"心意卡",
"color":"Color020",
"notice":"使用時向服務員出示",
"service_phone":"020-88888888",
"description":"不可與其他優惠同享",
"date_info":{
"type":"DATE_TYPE_FIX_TIME_RANGE",
"begin_timestamp":1397577600,
"end_timestamp":1472724261
},
"sku":{
"quantity":50000000
},
"get_limit":0,
"use_custom_code":false,
"can_give_friend":true,
"location_id_list":[
213059884
],
"center_title":"頂部居中按鈕",
"center_sub_title":"按鈕下方的wording",
"center_url":"www.qq.com",
"center_app_brand_user_name":"gh_86a091e50ad4@app",
"center_app_brand_pass":"pages/index/index",
"custom_url_name":"新品推薦",
"custom_url":"https://www.starbucks.com.cn/",
"custom_app_brand_user_name":"gh_86a091e50ad4@app",
"custom_app_brand_pass":"pages/index/index",
"need_push_on_view":true
},
"advanced_info":{
"text_image_list":[
{
"image_url":"http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sjpiby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
"text":"此菜品精選食材,以獨特的烹飪方法,最大程度地刺激食 客的味"
},
{
"image_url":"http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
"text":"此菜品迎合大衆口味,老少皆宜,營養均衡"
}
]
},
"supply_balance":true,
"prerogative":"禮品卡享受更多優惠",
"auto_activate":true,
"init_balance":10000,
"custom_field1":{
"name":"優惠券",
"url":"",
"app_brand_user_name":"",
"app_brand_pass":""
},
"custom_field2":{
"name":"兌換券",
"url":"",
"app_brand_user_name":"",
"app_brand_pass":""
}
}
}
}
創建-禮品卡貨架接口 根據API,我設計了5張表。先貼一下官方API參數示例:
{
"page": {
"page_title": "禮品卡",
"support_multi": true,
"banner_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"theme_list": [
{
"theme_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"title": "title",
"title_color": "#FB966E",
"show_sku_title_first": true,
"item_list": [
{
"card_id": "pbLatjiSj_yVRH5XTb2Zsln7DNQg",
"title": "焦糖拿鐵"
},
{
"card_id": "pbLatjlq75CPBR_tYCRdPlxSGlOs",
"title": "焦糖拿鐵"
}
],
"pic_item_list": [
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語1"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語2"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語3"
}
],
"category_index": 0
},
{
"theme_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"title": "title_lalala",
"title_color": "#FB966E",
"item_list": [
{
"card_id": "pbLatjiSj_yVRH5XTb2Zsln7DNQg",
"title": "焦糖拿鐵"
},
{
"card_id": "pbLatjlq75CPBR_tYCRdPlxSGlOs",
"title": "蛋糕"
}
],
"pic_item_list": [
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語1",
"outer_img_id": "outer_img_id_1"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語2",
"outer_img_id": "outer_img_id_2"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語3",
"outer_img_id": "outer_img_id_3"
}
],
"category_index": 1
},
{
"theme_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"title": "title_lalala",
"title_color": "#FB966E",
"item_list": [
{
"card_id": "pbLatjiSj_yVRH5XTb2Zsln7DNQg"
},
{
"card_id": "pbLatjlq75CPBR_tYCRdPlxSGlOs"
}
],
"pic_item_list": [
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語1",
"outer_img_id": "outer_img_id_1"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語2",
"outer_img_id": "outer_img_id_2"
},
{
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/p98FjXy8LafBWIJsGFe7tlPvtBFxXXTPdx5cEuFMcWWsiaR1DyrN5ML3jiaVYZibovA8OrwOylUia6ywvVU6Aqboibw/0",
"default_gifting_msg": "祝福語3",
"outer_img_id": "outer_img_id_3"
}
],
"is_banner": true
}
],
"category_list": [
{
"title": "主題分類一"
},
{
"title": "主題分類二"
}
],
"address": "廣州市海珠區222號",
"service_phone": "020-12345678",
"biz_description": "退款指引",
"cell_1": {
"title": "申請發票",
"url": "https://open.weixin.qq.com"
},
"cell_2": {
"title": "申請退款",
"url": "https://mp.weixin.qq.com"
}
}
}
- 禮品卡貨架貨架主表
主要記錄除了category_list和theme_list參數之外的屬性信息
- 禮品卡貨架主題分類列表
主要記錄了 category_list參數信息,關聯貨架表主鍵ID或者微信回傳的page_id,視情況而定,我關聯的是page_id
- 禮品卡貨架貨架主題表
主要記錄了在theme_list內除了item_list和pic_item_list參數之外的屬性信息,關聯貨架表主鍵ID或者微信回傳的page_id,視情況而定,我關聯的是page_id,關聯了禮品卡貨架主題分類列表主鍵ID
- 禮品卡貨架主題卡片關聯表
主要記錄了item_list參數的信息,關聯了禮品卡貨架貨架主題表主鍵ID。
- 禮品卡貨架祝福語表
主要記錄了pic_item_list參數的信息,關聯了禮品卡貨架貨架主題表主鍵ID
腦圖示例:
禮品卡卡片創建和修改相對簡單,貨架的新建和修改相對複雜。這裏我在寫邏輯的時候,設定每一個貨架主題必須綁定一個主題分類,這樣在提交給微信的時候,theme_list內category_index屬性對應到category_list都可找到對應的index值。
新建相對簡單,前端封裝好數據結構,接口接收到參數做處理即可。
編輯這裏建議前端封裝好數據結構,傳到後端。除了禮品卡貨架貨架主表做update外,先移除之前的和貨架關聯的主題分類列表、主題表、主題卡片關聯表、祝福語表,然後再新建上面4張表數據。
2.獲取access_token
建議存儲到redis,並設置有效時常
3.禮品卡接口調用
數據驗證、數據封裝,做好日誌打印、事務處理
4.卡券事件推送
卡券事件推送URL在微信公衆號裏的"開發-基本配置-服務器配置"內配置
這裏我寫了一個servlet,get用於服務器驗證,post用於業務處理。但目前我只用到了對賬。