日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文是【淺析微信支付】系列文章的第十三篇,主要講解在如何開通商戶平臺的紅包功能和為用戶發放紅包,以及查詢發送紅包記錄。


淺析微信支付系列已經更新十三篇了喲~,沒有看過的朋友們可以看一下哦。

淺析微信支付:(余額提現)企業付款到微信用戶零錢或銀行卡賬戶

淺析微信支付:支付驗收示例和驗收指引

淺析微信支付:如何使用沙箱環境測試

淺析微信支付:申請退款、退款回調接口、查詢退款

上一篇文章我們說到,如果有余額提現、返利福利等需求時,就會用到商家向用戶付款的操作,基于微信支付,上篇我們說了付款到用戶余額和銀行卡;本文來講解如何使用現金紅包的方式向用戶發送現金紅包,首先我們來了解什么是微信的現金紅包。

現金紅包

現金紅包,是微信支付商戶平臺提供的營銷工具之一,上線以來深受廣大商戶與用戶的喜愛。商戶可以通過本平臺向微信支付用戶發放現金紅包。用戶領取紅包后,資金到達用戶微信支付零錢賬戶,和零錢包的其他資金有一樣的使用出口;

注意:若用戶未領取,資金將會在24小時后退回商戶的微信支付賬戶中。

官方文檔地址:

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1

現金紅包意義

微信支付現金紅包因資金的承載方式為現金,一直以來深受用戶的青睞,近年來的春晚中,現金紅包都扮演著重要的角色;在日常運營中也為商戶的營銷活動帶來熱烈的反響。總的來說,現金紅包在包括但不僅限于以下場景中發揮著重要意義:

◆ 為企業拉取新用戶、鞏固老用戶關系、提升用戶活躍度
◆ 結合巧妙的創意點子,輔以紅包點綴,打造火爆的活動,提升企業與品牌知名度
◆ 結合企業運營活動,以紅包作為獎品,使你的抽獎、滿送等營銷活動更便利進行
◆ 同時,除了營銷之外,現金紅包在企業日常的運營中也扮演著重要角色。如:為員工返福利、為供應商返利、會員積分/虛擬等級兌現等等。

什么意思?
簡單點講,就是現金紅包具有特殊的營銷屬性,拿公眾號來講,我們可以建立活動,通過活動的方式為用戶發送現金紅包,而這個紅包觸達的消息是在公眾號聊天窗口頁面,這樣也可以引導用戶關注公眾號、提升活躍度等等。

開通現金紅包

官方文檔如下:

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_3&index=2

在使用現金紅包之前,請前往開通現金紅包功能。
操作路徑:【登錄微信支付商戶平臺——>產品中心——>現金紅包——>開通】。

可以根據官方的聲明來開通現金紅包,這里說幾個重要的點:

  • 入住時間超過90天;
  • 連續交易正常交易時間30天;
  • 一定要注意:上面這兩點是必要條件,很多新注冊的公司很容易就著了道,入住時間不夠、交易時間更不夠,沒搞明白,活活等了三個月時間;如果有小伙伴遇到這樣的情況,可以換一個滿足要求的主體公司來解決,我的github代碼中也兼容不同主體的服務號使用微信支付相關功能,小伙伴可以看看源碼WXPayConstants和WXPay這兩個類,調用接口時擴展WXPayConfigImpl即可。

    說明:在開通時請如實選擇你的使用場景,且在紅包的發放過程中如實上報你的場景,如有作假,微信支付將有權根據《微信支付商戶平臺使用協議》對你的商戶號做出處理。

    開發前的準備

    具體的操作步驟這里就不描述了,小伙伴們可以查看官方文檔:

    https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_3&index=2

    上面文檔中已經有詳細的描述,我在這里簡單描述一下重點注意項:

  • 下載API證書
  • 充值,保證商戶余額有足夠的錢(一定要注意基本賬戶和運營賬戶的區別,一般情況下,有運營賬戶的時候,都會從運營賬戶中扣款)操作路徑:【登錄商戶平臺——>交易中心——>資金管理——>充值】
  • 獲取openid,指定用戶發送紅包必須先知道用戶的標識openid,可以根據網頁授權接口獲得
  • 設置紅包參數,操作路徑:【登錄商戶平臺——>產品中心——>現金紅包——>產品設置】
  • 對于第四點,可以設置和更改以下參數官方解釋如下:

  • 調用IP地址:設置之后,僅有已設置的IP地址可以調用,其余的IP調用會報錯;
  • 用戶領取上限:限制同一openid同一日領取的個數;
  • 防刷等級:防刷是指微信風控針對微信小號、僵尸號、機器號等的攔截,你可以通過更改防刷等級控制防刷的強度;
  • 同時,你也可以申請更改紅包額度。但是需要經過微信支付的審核,審核通過之后才會生效;
  • 敲黑板!!!重點來了,以上第一點IP地址,就是我們調用現金紅包發放的服務器IP地址了;第二點也要注意,每個用戶可以領取的紅包個數限制;

    最需要注意的是,調用接口時,發放紅包使用場景一定要慎重選擇,查看一下每種場景對應的限制,比如在紅包金額大于200或者小于1元時必傳場景參數,這時就需要我們配置閥值。

    發放方式(接口發放)

    方式一:接口發放
    商戶根據開發文檔進行開發,一次調用可以給一個指定用戶發送一個指定金額的紅包,滿足多元化的運營需求。

    方式二:通過上傳openid文件發放
    收集要發送紅包對象的openid,將openid編輯成txt文件,登錄微信支付商戶平臺,使用上傳文件功能發放。一份文件對應一個紅包模板,便于管理。

    方式三:配置營銷規則“滿額送”發放
    商戶可以在商戶平臺配置自助規則:用戶使用微信支付發生交易滿足一定條件,立送現金紅包

    本文主要講通過接口發放的方式。

    接口鏈接

    https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack

    是否需要證書

    調用接口

    官方文檔地址:

    https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3

    首先是發放規則:

  • 發送頻率限制------默認1800/min
  • 發送個數上限------按照默認1800/min算
  • 金額限制------默認紅包金額為1-200元,如有需要,可前往商戶平臺進行設置和申請
  • 其他其他限制嗎?------單個用戶可領取紅包上線為10個/天,如有需要,可前往商戶平臺進行設置和申請
  • 如果量上滿足不了我們的需求,如何提高各個上限?------金額上限和用戶當天領取次數上限可以在商戶平臺進行設置
  • 注意1-紅包金額大于200或者小于1元時,請求參數scene_id必傳。
    注意2-根據監管要求,新申請商戶號使用現金紅包需要滿足兩個條件:1、入駐時間超過90天 2、連續正常交易30天。
    注意3-移動應用的appid無法使用紅包接口。

    PS:上面是官方介紹,不難理解,劃重點!!!(注意3的含義,就是只能使用公眾號的openid,小程序的openid不可用。)

    消息觸達規則參考官方文檔:

    下面開始來干貨,貼出源碼吧,應用代碼:

    /*** 發送現金紅包** @author yclimb* @date 2018/9/18*/ private void sendRedPack() throws Exception {WXPay wxPay = new WXPay(AsydWXPayConfigImpl.getInstance());Map<String, String> resultMap = wxPay.sendRedPack(WXPayUtil.getPayNo(), "obX_c0YRpT47zKcvq-ZYpjU6GFuA", "1", "活動名稱", "紅包祝福語", "備注", "127.0.0.1");System.out.println("wxPay.sendRedPack:" + resultMap); }

    調用發送現金紅包接口:

    /*** 作用:企業向指定微信用戶的openid發放指定金額紅包<br>* 場景:商戶可以通過本平臺向微信支付用戶發放現金紅包。用戶領取紅包后,資金到達用戶微信支付零錢賬戶,和零錢包的其他資金有一樣的使用出口;若用戶未領取,資金將會在24小時后退回商戶的微信支付賬戶中。* 接口文檔地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3** @param mch_billno 商戶訂單號* @param openid 用戶openid* @param amount 企業付款金額* @param act_name 活動名稱* @param wishing 紅包祝福語* @param remark 備注* @param spbill_create_ip 該IP可傳用戶端或者服務端的IP* @return API返回數據* @throws Exception e*/ public Map<String, String> sendRedPack(String mch_billno, String openid, String amount, String act_name, String wishing, String remark, String spbill_create_ip) throws Exception {/** 構造請求參數數據 **/Map<String, String> data = new HashMap<>();// 商戶訂單號 mch_billno 是 10000098201411111234567890 String(28) 商戶訂單號(每個訂單號必須唯一。取值范圍:0~9,a~z,A~Z)接口根據商戶訂單號支持重入,如出現超時可再調用。data.put("mch_billno", mch_billno);// 商戶名稱 send_name 是 天虹百貨 String(32) 紅包發送者名稱data.put("send_name", "悅店");// 用戶openid re_openid 是 oxTWIuGaIt6gTKsQRLau2M0yL16E String(32) 接受紅包的用戶openid openid為用戶在wxappid下的唯一標識(獲取openid參見微信公眾平臺開發者文檔:網頁授權獲取用戶基本信息)data.put("re_openid", openid);// 付款金額 total_amount 是 1000 int 付款金額,單位分data.put("total_amount", String.valueOf(new BigDecimal(amount).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).intValue()));// 紅包發放總人數 total_num 是 1 int 紅包發放總人數 total_num=1data.put("total_num", "1");// 紅包祝福語 wishing 是 感謝您參加猜燈謎活動,祝您元宵節快樂! String(128) 紅包祝福語data.put("wishing", wishing);// Ip地址 client_ip 是 192.168.0.1 String(15) 調用接口的機器Ip地址data.put("client_ip", spbill_create_ip);// 活動名稱 act_name 是 猜燈謎搶紅包活動 String(32) 活動名稱data.put("act_name", act_name);// 備注 remark 是 猜越多得越多,快來搶! String(256) 備注信息data.put("remark", remark);/** 以下參數為非必填參數 **//** 場景id:scene_id 否 PRODUCT_8 String(32) 發放紅包使用場景,紅包金額大于200或者小于1元時必傳* PRODUCT_1:商品促銷* PRODUCT_2:抽獎* PRODUCT_3:虛擬物品兌獎* PRODUCT_4:企業內部福利* PRODUCT_5:渠道分潤* PRODUCT_6:保險回饋* PRODUCT_7:彩票派獎* PRODUCT_8:稅務刮獎*///data.put("scene_id", "PRODUCT_1");/** 活動信息 risk_info 否 posttime%3d123123412%26clientversion%3d234134%26mobile%3d122344545%26deviceid%3dIOS String(128)* posttime:用戶操作的時間戳* mobile:業務系統賬號的手機號,國家代碼-手機號。不需要+號* deviceid :mac 地址或者設備唯一標識* clientversion :用戶操作的客戶端版本 把值為非空的信息用key=value進行拼接,再進行urlencode urlencode(posttime=xx& mobile =xx&deviceid=xx)*/// 資金授權商戶號 consume_mch_id 否 1222000096 String(32) 資金授權商戶號 服務商替特約商戶發放時使用/** 以下四個參數,在 this.redPackRequestData 方法中會自動賦值 **/// 商戶號 mch_id 是 10000098 String(32) 微信支付分配的商戶號// 隨機字符串 nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 隨機字符串,不長于32位// 簽名 sign 是 C380BEC2BFD727A4B6845133519F3AD6 String(32) 詳見簽名生成算法// 公眾賬號appid wxappid 是 wx8888888888888888 String(32) 微信分配的公眾賬號ID(企業號corpid即為此appId)。在微信開放平臺(open.weixin.qq.com)申請的移動應用appid無法使用該接口。// 微信調用接口Map<String, String> resultMap = this.sendRedPack(data);WXPayUtil.getLogger().info("wxPay.sendRedPack:" + resultMap);return resultMap; }

    以上為接口調用代碼,對于接口調用的入參和出參,小伙伴看看官網文檔哦,接口中的注釋給大家一個參考。

    官方還提供了一種發放裂變紅包的接口,有需要的小伙伴可以了解一下,文檔地址:

    https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4

    裂變紅包:一次可以發放一組紅包。首先領取的用戶為種子用戶,種子用戶領取一組紅包當中的一個,并可以通過社交分享將剩下的紅包給其他用戶。裂變紅包充分利用了人際傳播的優勢。

    查詢紅包記錄

    用于商戶對已發放的紅包進行查詢紅包的具體信息,可支持普通紅包和裂變包。

    這個接口很簡單,就是查詢已經發送的紅包記錄,根據商戶發放紅包的商戶訂單號查詢即可。

    接口鏈接

    https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo

    是否需要證書

    調用接口

    應用代碼:

    /*** 查詢現金紅包** @author yclimb* @date 2018/9/18*/ private void getHbInfo() throws Exception {WXPay wxPay = new WXPay(AsydWXPayConfigImpl.getInstance());Map<String, String> resultMap = wxPay.getHbInfo("1502348237482342342");System.out.println("wxPay.getHbInfo:" + resultMap); }

    查詢接口代碼:

    /*** 作用:查詢紅包記錄<br>* 場景:用于商戶對已發放的紅包進行查詢紅包的具體信息,可支持普通紅包和裂變包。* 接口文檔地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_6&index=5** @param mch_billno 商戶訂單號* @return API返回數據* @throws Exception e*/ public Map<String, String> getHbInfo(String mch_billno) throws Exception {/** 構造請求參數數據 **/Map<String, String> data = new HashMap<>();// 商戶訂單號 mch_billno 是 10000098201411111234567890 String(28) 商戶訂單號(每個訂單號必須唯一。取值范圍:0~9,a~z,A~Z)接口根據商戶訂單號支持重入,如出現超時可再調用。data.put("mch_billno", mch_billno);// 訂單類型 bill_type 是 MCHT String(32) MCHT:通過商戶訂單號獲取紅包信息。data.put("bill_type", "MCHT");/** 以下四個參數,在 this.fillRequestData 方法中會自動賦值 **/// 商戶號 mch_id 是 10000098 String(32) 微信支付分配的商戶號// 隨機字符串 nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 隨機字符串,不長于32位// 簽名 sign 是 C380BEC2BFD727A4B6845133519F3AD6 String(32) 詳見簽名生成算法// 公眾賬號appid appid 是 wx8888888888888888 String(32) 微信分配的公眾賬號ID(企業號corpid即為此appId)。在微信開放平臺(open.weixin.qq.com)申請的移動應用appid無法使用該接口。// 微信調用接口Map<String, String> resultMap = this.getHbInfo(data);WXPayUtil.getLogger().info("wxPay.getHbInfo:" + resultMap);return resultMap; }

    此接口通過商戶訂單號獲取紅包信息,很簡單,對于返回參數小伙伴們可以查看官方文檔,注意一下錯誤代碼即可。

    結語

    以上為商戶平臺開通現金紅包、指定用戶發放、紅包記錄查詢相關的解釋和源碼,小伙伴們一定要注意看看官方文檔哦,具體的源碼可以看作者的github,里面對每個方法有詳細的注釋。

    如果小伙伴有遇到解決不了的問題,可以關注作者微信公眾號,加入討論群中發出疑問,和小伙伴們一起解決哦~

    預告:下一篇文章會講發放獎勵的另一種方式 商戶平臺代金券或立減優惠開通、指定用戶發放、查詢等,敬請期待!!!

    ?如果想要提前一覽源碼的小伙伴,可以先看看我的 github,地址如下:
    ?
    ??https://github.com/YClimb/wxpay-sdk/blob/master/README.md ?

    關注作者微信公眾號,點擊下方討論群,掃碼即可加入微信支付討論群與小伙伴一起探討哦~

    到此本文就結束了,關注公眾號查看更多推送!!!



    總結

    以上是生活随笔為你收集整理的浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。