日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot + 微信公眾號JSAPI支付功能的實現(xiàn)

瀏覽:185日期:2022-06-16 08:30:27

1、pom.xml依賴配置

<!-- 微信支付 --><dependency> <groupId>com.egzosn</groupId> <artifactId>pay-java-wx</artifactId> <version>2.12.4</version></dependency>

2、application.yml文件配置微信公眾號的基礎(chǔ)信息

#微信公眾號支付配置wechatpay: mchId: # 商戶Id appId: #應(yīng)用id storePassword: #秘鑰支付密碼 secretKey: # 密鑰 notifyUrl: #微信支付回調(diào) keyStore: # 證書所在位置

3、設(shè)置配置文件 WechatPayConfig.java

package com.example.emoticon.wechat; import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component; /** * @ClassName WechatPayConfig * @Description 微信支付配置 * @Author WangJing * @Date 2021/3/23 4:38 下午 * @Version V1.1.0 */ @Data@Component@ConfigurationProperties(prefix = 'wechatpay')public class WechatPayConfig { private String mchId;//合作者id(商戶號 private String appId;//應(yīng)用id private String secretKey;//密鑰 private String notifyUrl; private String keyStore;// 支付密鑰存放位置 文件是以.p12為后綴名字 private String storePassword; }

4、controller 邏輯代碼

package com.example.emoticon.controller; import com.egzosn.pay.common.api.PayService;import com.egzosn.pay.common.bean.PayOrder;import com.egzosn.pay.common.bean.RefundOrder;import com.egzosn.pay.common.http.HttpConfigStorage;import com.egzosn.pay.common.util.sign.SignUtils;import com.egzosn.pay.wx.api.WxPayConfigStorage;import com.egzosn.pay.wx.api.WxPayService;import com.egzosn.pay.wx.bean.WxTransactionType;import com.example.emoticon.wechat.WechatPayConfig;import io.swagger.annotations.ApiOperation;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController; import javax.annotation.PostConstruct;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.math.BigDecimal;import java.util.Date;import java.util.Map; /** * @ClassName WechatPayController * @Description 微信支付Controller * @Author WangJing * @Date 2021/3/23 4:35 下午 * @Version V1.1.0 */@RestController@RequestMapping('/wechatPay')@Slf4jpublic class WechatPayController { @Autowired WechatPayConfig wechatPayConfig; private PayService service = null; @PostConstruct public void init() { WxPayConfigStorage wxPayConfigStorage = new WxPayConfigStorage(); wxPayConfigStorage.setMchId(wechatPayConfig.getMchId()); // 合作者id(商戶號 wxPayConfigStorage.setAppid(wechatPayConfig.getAppId()); // 應(yīng)用id wxPayConfigStorage.setSecretKey(wechatPayConfig.getSecretKey()); // 密鑰 wxPayConfigStorage.setNotifyUrl(wechatPayConfig.getNotifyUrl()); // 異步回調(diào)地址 http://域名:端口號/項目名/回調(diào)接口名稱 wxPayConfigStorage.setSignType(SignUtils.MD5.name()); wxPayConfigStorage.setInputCharset('utf-8'); // 支付api證書設(shè)置,退款必須 方式一 HttpConfigStorage httpConfigStorage = new HttpConfigStorage(); httpConfigStorage.setKeystore(wechatPayConfig.getKeyStore());// 支付密鑰存放位置 文件是以.p12為后綴名字 httpConfigStorage.setStorePassword(wechatPayConfig.getStorePassword()); // 是否為證書地址 httpConfigStorage.setPath(true); service = new WxPayService(wxPayConfigStorage, httpConfigStorage); // 請求連接池配置 // 最大連接數(shù) httpConfigStorage.setMaxTotal(20); // 默認的每個路由的最大連接數(shù) httpConfigStorage.setDefaultMaxPerRoute(10); service.setRequestTemplateConfigStorage(httpConfigStorage); } @ApiOperation('返回訂單信息') @RequestMapping(value = 'weixinpay', method = RequestMethod.POST) public Map<String, Object> weixinpay(HttpServletRequest request) { //備注:這個可以獲取預(yù)支付的訂單,根據(jù)需要調(diào)用這個接口,可有前臺向后臺傳遞參數(shù)。然后后臺根據(jù)需要進行處理。 init(); // 在這一步,可以傳入一個訂單Id,自行去搜索訂單信息,并填寫以下內(nèi)容 PayOrder payOrder = new PayOrder();// 這個就是支付成功后,在微信支付里面返回的信息(支付訂單信息) // 一下內(nèi)容需要分情況而定,自行填寫。 payOrder.setSubject('商品名稱'); payOrder.setBody('商品描述'); payOrder.setAddition('附加信息'); payOrder.setPrice(new BigDecimal(0.2));// 價格 payOrder.setOutTradeNo('商戶訂單號'); payOrder.setBankType('銀行卡類型'); payOrder.setDeviceInfo('設(shè)備信息'); payOrder.setSpbillCreateIp('支付創(chuàng)建ip');// 可用IPUtils.getIpAddr(request) payOrder.setOpenid('用戶微信openid'); payOrder.setTransactionType(WxTransactionType.JSAPI);// 支付方式 Map orderInfo = service.orderInfo(payOrder);// 返回創(chuàng)建的訂單信息 log.debug('獲取預(yù)支付訂單信息回參' + orderInfo.toString()); // 可自行選擇 ,是否將支付的流水插入到數(shù)據(jù)庫中。返回的信息由:signType appId timeStamp nonceStr package sign return orderInfo; } /** * 這就是支付回調(diào)地址 * * @param request * @return * @throws IOException */ @ApiOperation('回調(diào)地址') @RequestMapping(value = 'weixinpayBack') public String payBack(HttpServletRequest request) throws IOException { init(); // 獲取支付方返回的對應(yīng)參數(shù) Map<String, Object> params = service.getParameter2Map(request.getParameterMap(), request.getInputStream()); if (null == params) { log.debug('通知失敗'); return service.getPayOutMessage('failed', '通知失敗').toMessage(); } log.debug('微信公眾號支付結(jié)果通知:' + params.toString()); // 校驗 if (service.verify(params)) { // 這里處理業(yè)務(wù)邏輯 支付成功后的代碼邏輯塊 // ......業(yè)務(wù)邏輯處理塊........ log.debug('通知支付成功'); return service.getPayOutMessage('success', '支付成功').toMessage(); } log.debug('通知支付失敗'); return service.getPayOutMessage('fail', '支付失敗').toMessage(); } @ApiOperation('微信公眾號退款') @RequestMapping(value = 'weixinAccRefund') public String weixinRefund() { init(); RefundOrder refundOrder = new RefundOrder();//退款訂單信息 refundOrder.setRefundNo('退款單號,每次進行退款的單號,此處唯一'); refundOrder.setTradeNo('支付平臺訂單號,交易號'); refundOrder.setOutTradeNo('商戶單號'); refundOrder.setRefundAmount(new BigDecimal(0.2));//退款金額 refundOrder.setTotalAmount(new BigDecimal(0.5));//訂單總金額 refundOrder.setOrderDate(new Date());//退款交易日期 refundOrder.setDescription('退款說明'); Map<String, Object> refund = service.refund(refundOrder);//微信退款 //退款成功后,寫其他的邏輯 log.debug('微信公眾號退款結(jié)果:=' + refund.toString()); return 'Success'; }}

到此這篇關(guān)于SpringBoot + 微信公眾號JSAPI支付功能的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot 微信公眾號JSAPI支付內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 微信
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美亚洲tv| 亚洲毛片在线免费| 日韩专区一卡二卡| 一本色道久久精品| 在线一区二区三区视频| 欧美午夜不卡| 综合国产精品| 国产欧美日韩视频在线 | 久久在线视频免费观看| 国产精品人人爽人人做我的可爱| 日韩精品一级二级 | 国产精品黄网站| 国产一区二区三区免费在线| 亚洲91精品| 亚洲欧美日韩专区| 久久国产三级精品| sm久久捆绑调教精品一区| 美女少妇全过程你懂的久久| 亚洲精品影院在线观看| 国产精品v一区二区三区| 精品日韩视频| 亚久久调教视频| 久久精品二区亚洲w码| 亚洲小说欧美另类婷婷| 奇米色欧美一区二区三区| 久久电影tv| 奶水喷射视频一区| 久久不见久久见中文字幕免费| 日韩欧美自拍| 五月国产精品| 麻豆mv在线观看| 亚洲精品免费观看| 国产精品专区免费| 亚洲2区在线| 日韩av首页| 日韩欧美四区| 久久精品青草| 国产欧美日韩免费观看| 99精品美女| 91亚洲精品在看在线观看高清| 日韩激情一区| 中文字幕日韩亚洲| 国产一区二区三区不卡视频网站 | 亚洲伊人影院| 超级白嫩亚洲国产第一| 久久亚洲电影| 亚洲国产成人二区| 日本aⅴ精品一区二区三区| 久久久久一区| 国产精品欧美一区二区三区不卡 | 精品欧美视频| 日韩欧美2区| 国产综合视频| 国产成人精选| 欧美日韩亚洲一区二区三区在线| 美女亚洲一区| 日韩av自拍| 国产欧美一区二区色老头| 黄色亚洲在线| 久久久人人人| 老司机精品视频网| 日本亚洲最大的色成网站www| 国产91精品对白在线播放| 久久成人福利| 久久国产婷婷国产香蕉| 久久国产精品久久久久久电车| 日韩精品诱惑一区?区三区| 国产人成精品一区二区三| 一区二区国产在线观看| 米奇777超碰欧美日韩亚洲| 日本一区二区免费高清| 欧美三区不卡| 日本精品一区二区三区在线观看视频| 亚洲午夜黄色| 日韩欧美另类一区二区| 久久精品理论片| 久久国内精品| 亚洲精品欧洲| 国产精品美女久久久| 日韩高清中文字幕一区二区| 精品国产一区二| 欧美一级一区| 国产探花一区二区| 欧美日韩亚洲一区二区三区在线| 亚洲精品乱码| 婷婷综合一区| 日本在线成人| 日韩黄色免费网站| 亚洲一级大片| 亚洲精品免费观看| 日本在线观看不卡视频| 五月国产精品| 日韩国产成人精品| 日韩福利在线观看| 日韩不卡一区二区三区| 日韩高清电影一区| 日韩av一区二区三区四区| 亚洲精品在线a| 午夜久久av| 欧美久久亚洲| 久久中文字幕一区二区三区| 欧美成人一二区| 国产一区二区三区四区大秀| 久久精品国产成人一区二区三区| 免费一级欧美片在线观看网站| 美女国产精品久久久| 丰满少妇一区| 成人看片网站| 精品91久久久久| 免费成人性网站| 日本一区二区三区中文字幕| 国产精品永久| 97人人精品| 不卡一区2区| 中文一区一区三区免费在线观 | 中文字幕日韩亚洲| 欧美日韩18| 免费在线成人| 久久理论电影| 亚洲欧美在线综合| 九九久久国产| 欧美日韩少妇| 视频一区日韩精品| 久久久精品国产**网站| 欧美精品日日操| 爽好多水快深点欧美视频| 欧美午夜网站| 日韩国产专区| 美女精品在线| 国产激情久久| 欧美日韩中文字幕一区二区三区| 自拍自偷一区二区三区| 你懂的国产精品| 99久久九九| 欧美一级一区| 视频福利一区| 亚洲青青久久| 麻豆国产一区| 图片区亚洲欧美小说区| 欧美日韩a区| 99久久激情| 国产美女撒尿一区二区| 久久美女精品| 国产精品亚洲一区二区在线观看| 日本不卡免费高清视频在线| 蜜桃视频第一区免费观看| 精品国产欧美日韩一区二区三区| 婷婷亚洲综合| 国产乱码精品一区二区亚洲| 99久久99视频只有精品| 国产色噜噜噜91在线精品| 香蕉成人av| 日本v片在线高清不卡在线观看| 国产一区二区视频在线看| 免费人成精品欧美精品| 一区二区三区四区日本视频| 亚洲区国产区| 欧美不卡高清| 麻豆成人综合网| 欧美日韩国产高清电影| 国产伦精品一区二区三区在线播放| 在线日韩中文| 精品资源在线| 日韩精品导航| 欧美日韩三区| 狠狠久久伊人| 日本午夜精品| 香蕉精品视频在线观看| 97精品一区| 欧美精品成人| 亚洲欧洲日韩精品在线| 欧美日中文字幕| 国产成年精品| 国产欧美在线| 亚洲精选91| 在线国产一区二区| 久草免费在线视频| 国产精品对白| 亚洲精品在线二区| 模特精品在线| 精品91久久久久| 日韩一区二区在线免费| 欧美亚洲综合视频| 日韩中文字幕一区二区三区| 久久免费黄色| 中文av在线全新| 麻豆国产精品| 国产探花一区| 日本国产一区| 亚洲人成毛片在线播放女女| 黑丝一区二区三区| 亚洲午夜电影| 欧美中文一区二区| 日韩av福利| 日韩免费一区| 国产中文在线播放| 亚洲国产欧美日本视频| 久久精品亚洲| 大香伊人久久精品一区二区| 久久久国产精品网站|