企业付款到零钱(微信小程序提现,用户提现到零钱)
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 ...
随机推荐
- JDK 18 及以上使用标准输出流中文输出乱码问题
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/ 来源:終わり ...
- blender low poly + unity 3d游戏制作
会是一个有趣的方向,适合独立游戏制作人,独立动画电影制作人.
- Collector的配置和使用
目录 Collector的配置和使用 Collector配置 Receivers Processors Exporters Service Extensions 使用环境变量 Collector的使用 ...
- error C1083: 无法打开包括文件:“iostream.h”: No such file or directory
用VS2010打开VC++6程序,按下F5键会发现有错误提示:error C1083: 无法打开包括文件:"iostream.h": No such file or directo ...
- 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功
问题: 启动redis失败Could not create server TCP listening socket 127.0.0.1:6379:bind:操作成功 解决方法: 在命令行提示符C:\P ...
- COCI 2024/2025 #3
T1 P11474 [COCI 2024/2025 #3] 公交车 / Autobus 愤怒,从红升橙足以说明其恶心,考场上调了半小时才过. 这道题的车能够开 \(24\) 小时,并且他能从前一天开到 ...
- IM通讯协议专题学习(八):金蝶随手记团队的Protobuf应用实践(原理篇)
本文由金蝶随手记技术团队丁同舟分享. 1.引言 跟移动端IM中追求数据传输效率.网络流量消耗等需求一样,随手记客户端与服务端交互的过程中,对部分数据的传输大小和效率也有较高的要求,普通的数据格式如 J ...
- Royal Elementor Addons Pro v1.3.987 + v1.5.0 elementor网页设计元素组件插件下载
Royal Elementor Addons Pro elementor网页设计元素组件插件破解版简介&下载 Royal Elementor Addons Pro Nulled Element ...
- Solution Set -「NOIP Simu.」20221003
\(\mathscr{A}\sim\) 二分图排列 定义一个数列 \(\{a_n\}\) 合法, 当且仅当无向图 \(G=(\{1..n\},\{(i,j)\mid i<j\land a_i ...
- ofd文件拆分合并思路探索 -- 附下载程序
前言 ofd文件拆分合并会在多个场合用到,但市面上此类工具并不多.拆分和合并虽然为两个功能,但从编程角度考虑,其处理思路有相同之处.文章就以合并为例,讲一下处理思路.作者也写了一个拆分合并小工具 ...