C#實(shí)現(xiàn)微信公眾號(hào)會(huì)員卡管理的示例代碼
為了更好地理解微信公眾號(hào)--會(huì)員卡管理,作者特意花了不少的時(shí)間對(duì)其研究,并用c#開(kāi)發(fā)出會(huì)員卡demo,主要包含會(huì)員卡創(chuàng)建、設(shè)置開(kāi)卡字段、通過(guò)創(chuàng)建二維碼來(lái)投放會(huì)員卡、同步會(huì)員卡數(shù)據(jù)/激活會(huì)員卡、拉取會(huì)員信息、更新會(huì)員信息、設(shè)置會(huì)員卡失效、刪除會(huì)員卡,從這些可以清晰地看出是圍繞會(huì)員卡的生命周期來(lái)研究的。結(jié)合文章中DEMO有助于大家快速理解會(huì)員卡接口。
1、會(huì)員卡創(chuàng)建
1)、會(huì)員卡創(chuàng)建接口文檔
支持開(kāi)發(fā)者調(diào)用該接口創(chuàng)建會(huì)員卡,并獲取card_id,用于投放。調(diào)用該接口前,請(qǐng)開(kāi)發(fā)者詳讀創(chuàng)建卡券接口部分上傳圖片接口、首頁(yè) 部分,快速錄入會(huì)員卡卡面必要信息。
接口調(diào)用請(qǐng)求說(shuō)明
HTTP請(qǐng)求方式: POSTURL:https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN
參數(shù)說(shuō)明
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
POST數(shù)據(jù) | 是 | JSON結(jié)構(gòu) |
POST數(shù)據(jù)示例:
{ "card": { "card_type": "MEMBER_CARD", "member_card": { "background_pic_url": "https://mmbiz.qlogo.cn/mmbiz/", "base_info": { "logo_url": "http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZ/0", "brand_name": "海底撈", "code_type": "CODE_TYPE_TEXT", "title": "海底撈會(huì)員卡", "color": "Color010", "notice": "使用時(shí)向服務(wù)員出示此券", "service_phone": "020-88888888", "description": "不可與其他優(yōu)惠同享", "date_info": { "type": "DATE_TYPE_PERMANENT" }, "sku": { "quantity": 50000000 }, "get_limit": 3, "use_custom_code": false, "can_give_friend": true, "location_id_list": [ 123, 12321 ], "custom_url_name": "立即使用", "custom_url": "http://weixin.qq.com", "custom_url_sub_title": "6個(gè)漢字tips", "promotion_url_name": "營(yíng)銷入口1", "promotion_url": "http://www.qq.com", "need_push_on_view": true }, "advanced_info": { "use_condition": { "accept_category": "鞋類", "reject_category": "阿迪達(dá)斯", "can_use_with_other_discount": true }, "abstract": { "abstract": "微信餐廳推出多種新季菜品,期待您的光臨", "icon_url_list": [ "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0" ] }, "text_image_list": [ { "image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sjpiby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0", "text": "此菜品精選食材,以獨(dú)特的烹飪方法,最大程度地刺激食 客的味蕾" }, { "image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0", "text": "此菜品迎合大眾口味,老少皆宜,營(yíng)養(yǎng)均衡" } ], "time_limit": [ { "type": "MONDAY", "begin_hour":0, "end_hour":10, "begin_minute":10, "end_minute":59 }, { "type": "HOLIDAY" } ], "business_service": [ "BIZ_SERVICE_FREE_WIFI", "BIZ_SERVICE_WITH_PET", "BIZ_SERVICE_FREE_PARK", "BIZ_SERVICE_DELIVER" ] }, "supply_bonus": true, "supply_balance": false, "prerogative": "test_prerogative", "auto_activate": true, "custom_field1": { "name_type": "FIELD_NAME_TYPE_LEVEL", "url": "http://www.qq.com" }, "activate_url": "http://www.qq.com", "custom_cell1": { "name": "使用入口2", "tips": "激活后顯示", "url": "http://www.qq.com" }, "bonus_rule": { "cost_money_unit": 100, "increase_bonus": 1, "max_increase_bonus": 200, "init_increase_bonus": 10, "cost_bonus_unit": 5, "reduce_money": 100, "least_money_to_use_bonus": 1000, "max_reduce_bonus": 50 }, "discount": 10 } } }
2)、創(chuàng)建會(huì)員卡DEMO
A、在創(chuàng)建會(huì)員卡之前,我們可以調(diào)用素材管理,上傳logo,backgroup圖片
如下為調(diào)用接口的DEMO
DEMO中關(guān)鍵代碼:
if (string.IsNullOrEmpty(textBoxTmpMedia.Text)) { MessageUtil.ShowTips("請(qǐng)選擇上傳的素材!"); return; } ImageReJson imageReJson = AddMaterialInterface.Image(richTextBox1.Text, "image", textBoxTmpMedia.Text, "image/jpeg"); if (string.IsNullOrEmpty(imageReJson.errmsg)) { textBox7.Text = imageReJson.url; textBox26.Text = imageReJson.url; } richTextBox6.Text = "執(zhí)行結(jié)果:" + JsonConvert.SerializeObject(imageReJson);
B、在logo與 backgroup圖片上傳后,我們調(diào)用創(chuàng)建會(huì)員卡接口來(lái)創(chuàng)建會(huì)員卡,如下為DEMO
在創(chuàng)建成功后,在微信公眾平臺(tái)中有剛創(chuàng)建的會(huì)員卡套
具體會(huì)員卡信息如下:
其中關(guān)鍵代碼:
Base_Info base_info = new Base_Info(); base_info.logo_url = textBox26.Text; base_info.code_type = "CODE_TYPE_BARCODE"; base_info.brand_name = textBox27.Text; base_info.title = textBox28.Text; Date_Info date_info = new Date_Info(); date_info.type = "DATE_TYPE_PERMANENT"; base_info.date_info = date_info; base_info.color = "Color100"; base_info.notice = "到店出示會(huì)員卡,由店員完成核銷"; base_info.description = "每人限領(lǐng)取1張\r\n會(huì)員權(quán)益不可與其它優(yōu)惠同享\r\n僅限中國(guó)(本會(huì)員卡不包括港澳臺(tái)地區(qū))指定的愛(ài)瑪?shù)賹Yu店使用\r\n當(dāng)年消費(fèi)獲取的積分僅可當(dāng)年年底(既12月31日24點(diǎn))前使用,如未全部使用,則當(dāng)年的積分會(huì)于當(dāng)年年底清零,不累計(jì)到次年\r\n具體使用方式請(qǐng)咨詢專賣店工作人員。"; base_info.get_limit = 1; base_info.can_share = false; base_info.can_give_friend = false; Sku sku = new Sku(); sku.quantity = 1000000000; sku.total_quantity = 1000000000; base_info.sku = sku; base_info.use_all_locations = true; member_Card.base_info = base_info; member_Card.supply_bonus = true; member_Card.supply_balance = false; member_Card.prerogative = "所有專賣店消費(fèi)1元即可獲得1積分\r\n可參與豐富的會(huì)員專享活動(dòng),詳情參看相關(guān)門店活動(dòng)頁(yè)面"; member_Card.auto_activate = false; member_Card.wx_activate = true; //積分規(guī)則 Bonus_Rule bonus_rule = new Bonus_Rule(); bonus_rule.cost_money_unit = 100; bonus_rule.increase_bonus = 1; bonus_rule.cost_bonus_unit = 2000; bonus_rule.reduce_money = 100; member_Card.bonus_rule = bonus_rule; member_Card.background_pic_url = ""; card.member_card = member_Card; memberCardJson.card = card; //創(chuàng)建會(huì)員卡json顯示在界面上 richTextBox2.Text = JsonConvert.SerializeObject(memberCardJson); //通過(guò)接口寫(xiě)入 CardReJson createrejson = MemberCardInterface.Create(richTextBox1.Text, memberCardJson); richTextBox3.Text = JsonConvert.SerializeObject(createrejson);
C、設(shè)置測(cè)試白名單接口
若會(huì)員卡暫時(shí)未審核通,開(kāi)發(fā)者可以將測(cè)試人員的微信號(hào)設(shè)置成白名單,領(lǐng)取未審核通過(guò)的卡券。白名單狀態(tài)領(lǐng)取的卡信息不隨卡券實(shí)時(shí)更新,請(qǐng)開(kāi)發(fā)者注意。
2、設(shè)置開(kāi)卡字段
1)、設(shè)置開(kāi)卡字段接口文檔
開(kāi)發(fā)者在創(chuàng)建時(shí)填入"wx_activate": true字段后,需要調(diào)用該接口設(shè)置用戶激活時(shí)需要填寫(xiě)的選項(xiàng),否則一鍵開(kāi)卡設(shè)置不生效。
接口調(diào)用請(qǐng)求說(shuō)明
HTTP請(qǐng)求方式: POST URL:https://api.weixin.qq.com/card/membercard/activateuserform/set?access_token=TOKEN
參數(shù)說(shuō)明
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
POST數(shù)據(jù) | 是 | JSON結(jié)構(gòu) |
2)、設(shè)置開(kāi)卡字段DEMO
在設(shè)置開(kāi)卡字段之前,我們查看了微信公眾平臺(tái)中會(huì)員卡的激活信息,只有必填信息,手機(jī)號(hào)
如下為調(diào)用接口程序,設(shè)置開(kāi)卡字段接口 設(shè)置姓名,手機(jī)號(hào)是必填,性別、生日、興趣選填
在調(diào)用 接口成功后,必填信息與激活信息調(diào)整見(jiàn)下
3、投放會(huì)員卡--創(chuàng)建二維碼
1)、接口文檔
創(chuàng)建會(huì)員卡二維碼,打印后置于店內(nèi),顧客掃碼領(lǐng)取會(huì)員卡,掃描下方二維碼體驗(yàn)領(lǐng)取,若已領(lǐng)取可掃碼快速打開(kāi)會(huì)員卡。
開(kāi)發(fā)者可調(diào)用該接口生成一張卡券二維碼供用戶掃碼后添加卡券到卡包。
自定義Code碼的卡券調(diào)用接口時(shí),POST數(shù)據(jù)中需指定code,非自定義code不需指定,指定openid同理。指定后的二維碼只能被用戶掃描領(lǐng)取一次。
獲取二維碼ticket后,開(kāi)發(fā)者可用換取二維碼圖片詳情。
接口調(diào)用請(qǐng)求說(shuō)明
HTTP請(qǐng)求方式: POSTURL:https://api.weixin.qq.com/card/qrcode/create?access_token=TOKEN
參數(shù)說(shuō)明
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
POST數(shù)據(jù) | 是 | JSON數(shù)據(jù) |
access_token | 是 | 調(diào)用接口憑證 |
POST數(shù)據(jù)
開(kāi)發(fā)者可以設(shè)置掃描二維碼領(lǐng)取單張卡券,此時(shí)POST數(shù)據(jù)為:
{ "action_name": "QR_CARD", "expire_seconds": 1800, "action_info": { "card": { "card_id": "pFS7Fjg8kV1IdDz01r4SQwMkuCKc", "code": "198374613512", "openid": "oFS7Fjl0WsZ9AMZqrI80nbIq8xrA", "is_unique_code": false , "outer_str":"12b" } } }
當(dāng)開(kāi)發(fā)者設(shè)置掃描二維碼領(lǐng)取多張卡券,此時(shí)POST數(shù)據(jù)為:
{ "action_name": "QR_MULTIPLE_CARD", "action_info": { "multiple_card": { "card_list": [ { "card_id": "p1Pj9jgj3BcomSgtuW8B1wl-wo88", "code":"2392583481", "outer_str":"12b" }, { "card_id": "p1Pj9jgj3BcomSgtuW8B1wl-wo98", "code":"2392583482", "outer_str":"12b" } ] } } }
2)、創(chuàng)建二維碼DEMO
用戶可以掃描這個(gè)二維碼,掃碼后,先領(lǐng)取會(huì)員卡,然后激活會(huì)員卡
在領(lǐng)取與激活會(huì)員卡時(shí),會(huì)向開(kāi)發(fā)者接入推送事件,
<xml> <ToUserName> < ![CDATA[gh_3fcea188bf78] ]></ToUserName> <FromUserName>< ![CDATA[obLatjlaNQKb8FqOvt1M1x1lIBFE] ]></FromUserName> <CreateTime>1432668700</CreateTime> <MsgType>< ![CDATA[event] ]></MsgType> <Event>< ![CDATA[submit_membercard_user_info] ]></Event> <CardId>< ![CDATA[pbLatjtZ7v1BG_ZnTjbW85GYc_E8] ]></CardId> <UserCardCode>< ![CDATA[018255396048] ]></UserCardCode> </xml>
開(kāi)發(fā)者在收到這些xml后,可以解析處理,比如可以同步會(huì)員的初始積分,讀取會(huì)員的基礎(chǔ)信息同步到自己的業(yè)務(wù)系統(tǒng),包括CRM或ERP等。
如下是我們接收后,做的系統(tǒng)日志:
4、同步會(huì)員卡數(shù)據(jù)/激活會(huì)員卡
1)、開(kāi)發(fā)文檔介紹
開(kāi)發(fā)者可以在接收到事件通知后調(diào)用激活接口,傳入會(huì)員卡號(hào)、初始積分等信息或者調(diào)用拉取會(huì)員信息接口獲取會(huì)員信息,詳情請(qǐng)見(jiàn):激活會(huì)員卡接口
激活方式說(shuō)明
接口激活通常需要開(kāi)發(fā)者開(kāi)發(fā)用戶填寫(xiě)資料的網(wǎng)頁(yè)。通常有兩種激活流程:
用戶必須在填寫(xiě)資料后才能領(lǐng)卡,領(lǐng)卡后開(kāi)發(fā)者調(diào)用激活接口為用戶激活會(huì)員卡;
是用戶可以先領(lǐng)取會(huì)員卡,點(diǎn)擊激活會(huì)員卡跳轉(zhuǎn)至開(kāi)發(fā)者設(shè)置的資料填寫(xiě)頁(yè)面,填寫(xiě)完成后開(kāi)發(fā)者調(diào)用激活接口為用戶激活會(huì)員卡。
接口詳情
接口調(diào)用請(qǐng)求說(shuō)明
HTTP請(qǐng)求方式: POSTURL:https://api.weixin.qq.com/card/membercard/activate?access_token=TOKEN
參數(shù)說(shuō)明
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
POST數(shù)據(jù) | 是 | JSON結(jié)構(gòu) |
{ "init_bonus": 100, "init_bonus_record":"舊積分同步", "init_balance": 200, "membership_number": "AAA00000001", "code": "12312313", "card_id": "xxxx_card_id", "background_pic_url": "https://mmbiz.qlogo.cn/mmbiz/0?wx_fmt=jpeg", "init_custom_field_value1": "xxxxx" }
2)、同步/激活會(huì)員卡DEMO
本DEMO中演示了修改membership_number及 初始積分,第一張圖片為原圖,第二張為同步后的圖
5、拉取會(huì)員信息
1)、開(kāi)發(fā)文檔介紹
接口說(shuō)明
支持開(kāi)發(fā)者根據(jù)CardID和Code查詢會(huì)員信息。
接口調(diào)用請(qǐng)求說(shuō)明
HTTP請(qǐng)求方式: POSTURL:https://api.weixin.qq.com/card/membercard/userinfo/get?access_token=TOKEN
參數(shù)說(shuō)明
參數(shù) | 是否必須 | 說(shuō)明 |
---|---|---|
POST數(shù)據(jù) | 是 | JSON結(jié)構(gòu) |
access_token | 是 | 調(diào)用接口憑證 |
POST數(shù)據(jù)
{ "card_id": "pbLatjtZ7v1BG_ZnTjbW85GYc_E8", "code": "916679873278" }
返回?cái)?shù)據(jù)
{ "errcode": 0, "errmsg": "ok", "openid": "obLatjjwDolFj******wNqRXw", "nickname": "*******", "membership_number": "658*****445", "bonus": 995, "sex": "MALE", "user_info": { "common_field_list": [ { "name": "USER_FORM_INFO_FLAG_MOBILE", "value": "15*****518" }, { "name": "USER_FORM_INFO_FLAG_NAME", "value": "HK" }, { "name": "USER_FORM_INFO_FLAG_EDUCATION_BACKGROUND", "value": "研究生" } ], "custom_field_list": [ { "name": "興趣", "value": "鋼琴", "value_list": [] }, { "name": "喜好", "value": "郭敬明", "value_list": [] }, { "name": "職業(yè)", "value": "", "value_list": [ "賽車手", "旅行家" ] } ] }, "user_card_status": "NORMAL", "has_active": false }
2)、拉取會(huì)員信息DEMO
可以讀取到會(huì)員的姓名與手機(jī)號(hào)等信息,其中可以用手機(jī)號(hào)作為關(guān)鍵值與公司的CRM、ERP等對(duì)接。
6、更新會(huì)員信息
當(dāng)前會(huì)員的積分或儲(chǔ)值在公司的CRM、ERP等系統(tǒng)中變化,這時(shí)可以通過(guò)這個(gè)接口來(lái)實(shí)現(xiàn)同步。
如下DEMO為同步會(huì)員積分:
7、設(shè)置會(huì)員失效
如下為開(kāi)發(fā)文檔中的注意事項(xiàng):
1.設(shè)置卡券失效的操作不可逆,即無(wú)法將設(shè)置為失效的卡券調(diào)回有效狀態(tài),商家須慎重調(diào)用該接口。
*2.商戶調(diào)用失效接口前須與顧客事先告知并取得同意,否則因此帶來(lái)的顧客投訴,微信將會(huì)按照《微信運(yùn)營(yíng)處罰規(guī)則》
如下是通過(guò)接口實(shí)現(xiàn)將會(huì)員失效的DEMO
8、刪除會(huì)員卡
開(kāi)發(fā)文檔中說(shuō)明是同刪除卡券接口,刪除卡券接口允許商戶刪除任意一類卡券。刪除卡券后,該卡券對(duì)應(yīng)已生成的領(lǐng)取用二維碼、添加到卡包JS API均會(huì)失效。 注意:如用戶在商家刪除卡券前已領(lǐng)取一張或多張?jiān)摽ㄈ琅f有效。即刪除卡券不能刪除已被用戶領(lǐng)取,保存在微信客戶端中的卡券。
如下是通過(guò)接口實(shí)現(xiàn)刪除會(huì)員卡功能的DEMO
到此這篇關(guān)于C#實(shí)現(xiàn)微信公眾號(hào)會(huì)員卡管理的示例代碼的文章就介紹到這了,更多相關(guān)C# 公眾號(hào)會(huì)員卡管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中遍歷DataSet數(shù)據(jù)集對(duì)象實(shí)例
這篇文章主要介紹了C#中遍歷DataSet數(shù)據(jù)集對(duì)象實(shí)例,經(jīng)常忘記如何操作DataSet,這里記下來(lái)并分享,讓需要的朋友可以參考下2014-08-08使用C#發(fā)送Http請(qǐng)求實(shí)現(xiàn)模擬登陸實(shí)例
本文主要介紹了使用C#發(fā)送Http請(qǐng)求實(shí)現(xiàn)模擬登陸實(shí)例,模擬登陸的原理簡(jiǎn)單,想要了解的朋友可以了解一下。2016-10-10C#實(shí)現(xiàn)將網(wǎng)址生成二維碼圖片方法介紹
這篇文章介紹了C#實(shí)現(xiàn)將網(wǎng)址生成二維碼圖片的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04c# 多線程環(huán)境下控制對(duì)共享資源訪問(wèn)的解決方法
這篇文章主要介紹了c# 多線程環(huán)境下控制對(duì)共享資源訪問(wèn)的解決方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07C#實(shí)現(xiàn)簡(jiǎn)單的二叉查找樹(shù)
這篇文章介紹了C#實(shí)現(xiàn)二叉查找樹(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06