<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微信支付代金券開發(fā)包分享

          共 3321字,需瀏覽 7分鐘

           ·

          2020-12-06 22:59

          點擊上方藍色“程序猿DD”,選擇“設(shè)為星標”

          回復“資源”獲取獨家整理的學習資料!

          1. 前言

          距離上次發(fā)原創(chuàng)分享應(yīng)該有 12 天了,最近忙里忙外的,無論是 Spring Security OAuth2 相關(guān)的,還是微信支付相關(guān)的都留了很多坑沒有來得及去補,所以十分抱歉。今天得空趕緊分享一些有用的東西。今天就分享一下關(guān)于微信支付代金券的一些開發(fā)知識。

          2. 微信支付營銷

          微信支付提供了商家券、代金券、立減金等營銷能力來幫助商家進行拉新?;?,增強與用戶的互動性。從開發(fā)層面上來說比接入微信支付要難一些,而且涉及的策略也會更多一些。那么本次分享胖哥將分享自己的一些經(jīng)驗。

          3. 開發(fā)前準備

          開發(fā)前我們需要申請微信支付相關(guān)的賬號,手續(xù)還是比較多的。

          微信商戶賬號

          地址為https://pay.weixin.qq.com 用來開通微信支付能力,沒有商戶號是無法使用微信支付的。而且后續(xù)申請的公眾號 appid 和移動應(yīng)用、小程序的 appid 都要同微信商戶帳號進行綁定。

          微信開放平臺賬號

          地址為https://open.weixin.qq.com 用來開發(fā)第三方平臺、移動應(yīng)用、公眾平臺、網(wǎng)站應(yīng)用的開發(fā)。后續(xù)申請的微信公眾號服務(wù)號、移動應(yīng)用 appid 需要綁定到開放平臺中。

          微信公眾平臺服務(wù)號

          通過https://mp.weixin.qq.com申請,?切記是服務(wù)號,不是訂閱號,也不是個人號!服務(wù)號才是企業(yè)開發(fā)用的。申請認證完畢后需要同微信商戶帳號和微信開放平臺帳號進行綁定。

          具體的操作步驟去查看官方指引,總之需要準備的材料是比較多的,而且走的流程也比較多,需要專人去辦理。

          4. 微信支付 V3

          在之前對微信支付 V3 的一些難點胖哥也做了一些介紹。其實這個東西你研究了才會發(fā)現(xiàn),無論微信支付也好還是支付寶也好都是下面的流程:

          1. 收集對應(yīng) API 的參數(shù)。
          2. 對參數(shù)進行簽名。
          3. 請求對應(yīng)的 API
          4. 對響應(yīng)的來源的驗證以確保響應(yīng)來自支付服務(wù)器。
          5. 對響應(yīng)進行解析。
          6. 對回調(diào)請求的響應(yīng)。

          所以針對上面的流程,胖哥做了一個小小的模型設(shè)計,以代金券創(chuàng)建為例:

          /**
          ?*?創(chuàng)建代金券批次API.
          ?*
          ?*?@param?params?the?params
          ?*?@return?the?wechat?response?entity
          ?*/

          public?WechatResponseEntity?createStock(StocksCreateParams?params)?{
          ????WechatResponseEntity?wechatResponseEntity?=?new?WechatResponseEntity<>();
          ????//?1.?根據(jù)請求類型組織參數(shù)
          ????this.client().withType(WechatPayV3Type.MARKETING_FAVOR_STOCKS_COUPON_STOCKS,?params)
          ????????//?2.?對參數(shù)進行歸納處理
          ????????????.function(this::createStocksFunction)
          ????????//?3.?嵌入對結(jié)果進行消費的邏輯
          ????????????.consumer(wechatResponseEntity::convert)
          ????????????.request();

          ????return?wechatResponseEntity;
          }

          無論微信支付 V3 的哪個 API 都可以按照上面的模型進行封裝。

          5. 微信支付開發(fā)包

          針對上面的設(shè)計,以 Spring Boot Starter 的形式封裝了一個開發(fā)包,第三方依賴幾乎為零。僅僅使用了 Spring 框架提供的RestTemplateJackson類庫。目前對代金券封裝已經(jīng)結(jié)束并進行了測試,其它的 API 封裝只剩下體力活了,我會盡快完善。

          github : https://github.com/NotFound403/payment-spring-boot.git

          集成

          Spring Boot Starter的形式集成到項目中,目前并沒有提交到 maven 中央倉庫,需要自己編譯安裝。

          ??????<dependency>
          ????????????<groupId>cn.felordgroupId>
          ????????????<artifactId>payment-spring-boot-starterartifactId>
          ????????????<version>1.0.0.RELEASEversion>
          ??????dependency>

          配置

          在 Spring Boot 項目中的application.yaml中配置wechat.pay相關(guān)參數(shù)。

          wechat:
          ??pay:
          ????v3:
          #??應(yīng)用appId?必填
          ??????app-id:?xxxxxxxx
          #??api?密鑰?必填
          ??????app-secret:?xxxxxxxxxxx
          #??api?v3?密鑰?必填
          ??????app-v3-secret:?xxxxxxxx
          #??微信支付商戶號?必填
          ??????mch-id:?xxxxxxx
          #??合作商?選填
          ??????partner-key:
          #??商戶服務(wù)器域名?用于回調(diào)??需要放開回調(diào)接口的安全策略?必填
          ??????domain:?https://xxxx.xxx.com
          #??商戶?api?證書?必填
          ??????cert-path:?apiclient_cert.p12
          #??微信服務(wù)號?優(yōu)惠券必須
          ??????mp:
          ????????app-id:?xxxxxxxxx
          ????????app-secret:?xxxxxxxxxxxxxxxxxxx

          然后啟用@EnableWechatPay注解:

          @EnableMobilePay
          @Configuration
          public?class?PayConfig?{
          }

          請注意:只有wechat.pay.v3.app-id設(shè)置了有效值才能啟用下面的 API。

          API 使用

          微信支付 V3 開放接口引入:

          ????//?支付API
          ????@Autowired
          ????WechatPayApi?wechatPayV3Api;
          ????//?營銷API
          ????@Autowired
          ????WechatMarketingApi??wchatMarketingApi;

          例如查詢優(yōu)惠券

          ?????//?查詢商戶下的優(yōu)惠券
          ?????@Test
          ?????public?void?v3MchStocks()?{
          ?????????StocksQueryParams?params?=?new?StocksQueryParams();
          ?????????params.setOffset(0);
          ?????????params.setLimit(10);
          ?????????WechatResponseEntity?objectNodeWechatResponseEntity?=?wechatPayV3Api.queryStocksByMch(params);
          ?????????System.out.println("objectNodeWechatResponseEntity?=?"?+?objectNodeWechatResponseEntity);
          ?????}

          如果你在微信支付中有什么疑問可以給我留言,知無不答。感謝對胖哥的關(guān)注。

          推薦關(guān)注本文作者

          DD自研的滬牌代拍業(yè)務(wù),點擊直達


          【往期推薦】

          殊途同歸!招聘軟件與社交軟件最終都要走向約P宿命?

          2020-12-05

          Spring-Retry重試實現(xiàn)原理

          2020-12-05

          今年最后一月數(shù)據(jù)庫排名公布!前三難以撼動!

          2020-12-04

          8 種常見的SQL錯誤用法

          2020-12-04

          一手好牌打的稀爛,如今面臨倒計時,網(wǎng)友哭求眾籌活下去...

          2020-12-03

          Elasticsearch Top 51 重中之重面試題及答案

          2020-12-03



          深度內(nèi)容

          推薦加入





          瀏覽 86
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区无码精品 | 亚洲无吗高清视频 | 免费九九九 | 欧美一级视频网站 | 国产欧美在线观看 |