企业付款到零钱(微信小程序提现,用户提现到零钱)
pom 增加
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>3.2.0</version>
</dependency>
附上github https://github.com/Wechat-Group/WxJava/wiki
一、证书申请
企业付款需要用到p12证书,证书可以在商户平台的 账户平台 - API安全 - API证书 中申请到。(注:需要升级一下)
二、WxPayConfig配置
将 com.github.binarywang.wxpay.service.WxPayService 作为Bean注入到项目中
实现代码如下,具体作用读者可引入pom后自行查看,binarywang作者的注释非常详细。有问题可留言讨论
我在使用@Autowired 注解时无法注入 所以就注掉了 具体调用方法下面会贴上
/**
* 企业支付WxPayConfig配置
* @author hsw
*/
@Configuration
public class WxConfig {
// @Autowired
// private WxMpProperties wxMpProperties;
@Bean
public WxPayConfig wxPayConfig() {
// final List<WxMpProperties.MpConfig> configs = wxMpProperties.getConfigs();
WxPayConfig payConfig = new WxPayConfig();
// payConfig.setAppId(configs.get(1).getAppId());
// payConfig.setMchId(configs.get(1).getPayMchId());
// payConfig.setMchKey(configs.get(1).getPaySecretKey());
// payConfig.setNotifyUrl(configs.get(1).getPayResultUrl());
// payConfig.setKeyPath(configs.get(1).get);
payConfig.setTradeType("JSAPI");
payConfig.setSignType("MD5");
return payConfig;
}
@Bean
public WxPayService wxPayService(WxPayConfig payConfig) {
WxPayService wxPayService = new WxPayServiceImpl();
wxPayService.setConfig(payConfig);
return wxPayService;
}
3、API调用
/**
* 进行微信提现操作 (企业付款至用户零钱)
* @param openId
* @param amout 提现金额
* @param partnerTradeNo 单号
* @param desc 备注
*/
private EntPayResult getWithdrawal(String openId, BigDecimal amout,String partnerTradeNo, String desc, HttpServletRequest request){
final List<WxMpProperties.MpConfig> configs = wxMpProperties.getConfigs();
EntPayRequest entPayRequest = new EntPayRequest();
entPayRequest.setAppid(configs.get(1).getAppId());
entPayRequest.setMchId(configs.get(1).getPayMchId());
entPayRequest.setPartnerTradeNo(partnerTradeNo);
entPayRequest.setOpenid(openId);
entPayRequest.setCheckName("NO_CHECK");
entPayRequest.setAmount(Integer.valueOf(amout.multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).stripTrailingZeros().toPlainString()));
entPayRequest.setDescription(desc);
entPayRequest.setSpbillCreateIp(IpUtils.getIpAddr(request));
EntPayResult entPayResult = null;
try {
//此处调用=============================================================
// 通过Java配置来实例化Spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(WxConfig.class);
// 在Spring容器中获取Bean对象
WxConfig wxConfig = context.getBean(WxConfig.class);
WxPayService wxPayService = wxConfig.wxPayService(wxConfig.wxPayConfig());
entPayResult = wxPayService.getEntPayService().entPay(entPayRequest);
log.info("entPayResult : " + entPayResult);
System.out.println(entPayResult);
} catch (WxPayException e) {
log.error("付款失败,返回报文" + e);
throw new ApiException(e.getCustomErrorMsg());
}
return entPayResult;
}
企业付款到零钱(微信小程序提现,用户提现到零钱)的更多相关文章
- [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...
- 基于微信小程序的用户列表点赞功能
代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...
- 微信小程序 获取用户信息并保存登录状态
微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml
- Laravel wxxcx 微信小程序获取用户信息
wxxcx 是Laravel5微信小程序登录获取用户信息扩展 部署 12345678 # 安装$ composer require iwanli/wxxcx# 注册服务# 在 /config/app. ...
- 干货,看微信小程序后台用户数据如何演变和递增
这几天发现附近小程序又多了好几家,其中有普通小程序和门店小程序,把它们做一个对比,门店小程序更多的像一张名片,只有基本的企业名称.地址.营业时间.电话和门店照片,和普通小程序相比显得逊色许多.楼下的水 ...
- 微信小程序之用户数据解密(七)
[未经作者本人同意,请勿以任何形式转载] 经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程: 加密过程微信服务器完成,解密过程在小程序和自身服务器完成, ...
- 微信小程序中用户登录和登录态维护
提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户 ...
- 微信小程序 获得用户输入内容
在微信小程序里,如何获得用户输入的内容?? js: document.getElementById("Content").value jq:$("#Content&quo ...
- 微信小程序获取用户手机号详解
最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...
- 微信小程序开发 - 用户授权登陆
准备:微信开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 微信小程序开发文档:htt ...
随机推荐
- python+playwright安装+使用vsocde运行代码
python虚拟环境 1.安装python,环境配置 2.修改pip镜像源 3.新增虚拟环境 注意路径,例子的路径是在python的目录下生成一个venv文件夹 进入venv文件夹,使用virtual ...
- 人工智能大语言模型起源篇,低秩微调(LoRA)
上一篇: <规模法则(Scaling Law)与参数效率的提高> 序言:您在找工作时会不会经常听到LoRA微调,这项技术的来源就是这里了. (12)Hu.Shen.Wallis.Allen ...
- SQLServer单表无缝转换到MySQL
场景:SQLServer 单表结构,无缝转换到MySQL 方法: 1. Navicat-右键需要导出的数据表-逆向表到模型 2. 弹出来的模型窗口里,选择 转换模型为 默认MySQL8.0 确认 3 ...
- Vue开启Gzip
Vue配置 1.安装 npm install --save-dev compression-webpack-plugin@5.0.0 const CompressionWebpackPlugin = ...
- 【Python】【爬虫】【爬狼】003_获取搜索结果的页数
# 获取搜索内容的页数 需要的包 import urllib.request # 获取网页源码 import re # 正则表达式,进行文字匹配 from bs4 import BeautifulSo ...
- arch linux deepin-wine-wechat
https://aur.archlinux.org/packages/deepin-wine-wechat md5sum for WeChatSetup-3.9.0.28.exe should be ...
- 如何在 Kubernetes Pod 和您的机器之间复制文件
在 Kubernetes Pod 中运行的容器是不需要手动交互的独立计算单元.有时您可能需要将文件复制到 Pod 的文件系统或从 Pod 的文件系统复制文件,这可能是因为您正在调试问题并希望存档存储在 ...
- 安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案
安装OpenCV时,会遇到下面的错误 /home/zhang/slam/opencv-3.4.5/opencv_contrib/modules/xfeatures2d/src/boostdesc.cp ...
- [转]vue项目启动时,npm run serve 和 npm run dev 的区别
npm run serve 和 npm run dev 的区别 在我们运行一些 vue 项目的时候,输入npm run serve或者 npm run dev的其中一个时,系统会报错: PS C:\U ...
- python-nmap实现python利用nmap扫描分析
目录 前言 python-nmap的基本使用 PortScanner扫描 PortScannerAsync异步扫描 python-nmap的源码分析 前言 Nmap是一个非常用的网络/端口扫描工具,如 ...