🆕 #1746: 【企业微信】第三方应用增加授权配置接口,同时增加向员工付款的接口

This commit is contained in:
LinXiaoHuChong
2020-11-29 23:00:38 +08:00
committed by GitHub
parent c0af379370
commit 0e2186632a
6 changed files with 324 additions and 2 deletions

View File

@@ -0,0 +1,229 @@
package com.github.binarywang.wxpay.bean.entwxpay;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.*;
import me.chanjar.weixin.common.annotation.Required;
import java.util.Map;
/**
* Created on 2020/11/29.
* 向员工付款请求对象
* @author 拎小壶冲
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
@XStreamAlias("xml")
public class EntWxEmpPayRequest extends BaseWxPayRequest {
/**
* <pre>
* 字段名:商户订单号.
* 变量名partner_trade_no
* 是否必填:是
* 示例值10000098201411111234567890
* 类型String
* 描述:商户订单号
* </pre>
*/
@Required
@XStreamAlias("partner_trade_no")
private String partnerTradeNo;
/**
* <pre>
* 字段名:需保持唯一性 用户openid.
* 变量名openid
* 是否必填:是
* 示例值oxTWIuGaIt6gTKsQRLau2M0yL16E
* 类型String
* 描述商户appid下某用户的openid
* </pre>
*/
@Required
@XStreamAlias("openid")
private String openid;
/**
* <pre>
* 字段名:设备号.
* 变量名device_info
* 是否必填:否
* 示例值13467007045764
* 类型String(32)
* 描述:微信支付分配的终端设备号
* </pre>
*/
@XStreamAlias("device_info")
private String deviceInfo;
/**
* <pre>
* 字段名:校验用户姓名选项.
* 变量名check_name
* 是否必填:是
* 示例值OPTION_CHECK
* 类型String
* 描述NO_CHECK不校验真实姓名 
* FORCE_CHECK强校验真实姓名未实名认证的用户会校验失败无法转账 
* OPTION_CHECK针对已实名认证的用户才校验真实姓名未实名认证用户不校验可以转账成功
* </pre>
*/
@Required
@XStreamAlias("check_name")
private String checkName;
/**
* <pre>
* 字段名:收款用户姓名.
* 变量名re_user_name
* 是否必填:可选
* 示例值:马花花
* 类型String
* 描述:收款用户真实姓名。
* 如果check_name设置为FORCE_CHECK或OPTION_CHECK 则必填用户真实姓名
* </pre>
*/
@XStreamAlias("re_user_name")
private String reUserName;
/**
* <pre>
* 字段名:金额.
* 变量名amount
* 是否必填:是
* 示例值10099
* 类型int
* 描述:企业付款金额, 单位为分
* </pre>
*/
@Required
@XStreamAlias("amount")
private Integer amount;
/**
* <pre>
* 字段名:企业付款描述信息.
* 变量名desc
* 是否必填:是
* 示例值:理赔
* 类型String
* 描述:企业付款操作说明信息。必填。
* </pre>
*/
@Required
@XStreamAlias("desc")
private String description;
/**
* <pre>
* 字段名Ip地址.
* 变量名spbill_create_ip
* 是否必填:是
* 示例值192.168.0.1
* 类型String(32)
* 描述调用接口的机器Ip地址
* </pre>
*/
@Required
@XStreamAlias("spbill_create_ip")
private String spbillCreateIp;
/**
* <pre>
* 字段名: 付款消息类型
* 变量名: ww_msg_type
* 是否必填: 是
* 示例值NORMAL_MSG
* 描述NORMAL_MSG普通付款消息 APPROVAL _MSG审批付款消息
* </pre>
*/
@Required
@XStreamAlias("ww_msg_type")
private String wwMsgType;
/**
* <pre>
* 字段名: 审批单号
* 变量名: approval_number
* 是否必填: 否
* 示例值: 201705160008
* 描述ww_msg_type为APPROVAL _MSG时需要填写approval_number
* </pre>
*/
@XStreamAlias("approval_number")
private String approvalNumber;
/**
* <pre>
* 字段名: 审批类型
* 变量名: approval_type
* 是否必填: 否
* 示例值: 1
* 描述ww_msg_type为APPROVAL _MSG时需要填写1
* </pre>
*/
@XStreamAlias("approval_type")
private Integer approvalType;
/**
* <pre>
* 字段名: 项目名称
* 变量名: act_name
* 是否必填: 是
* 示例值: 产品部门报销
* 描述项目名称最长50个utf8字符
* </pre>
*/
@Required
@XStreamAlias("act_name")
private String actName;
/**
* <pre>
* 字段名: 付款的应用id
* 变量名: agentid
* 是否必填: 否
* 示例值: 1
* 描述以企业应用的名义付款企业应用id整型可在企业微信管理端应用的设置页面查看。
* </pre>
*/
@XStreamAlias("agentid")
private Integer agentId;
@Override
protected void checkConstraints() throws WxPayException {
}
@Override
protected boolean isWxWorkSign() {
return true;
}
@Override
protected void storeMap(Map<String, String> map) {
map.put("appid", appid);
map.put("mch_id", mchId);
map.put("device_info", deviceInfo);
map.put("partner_trade_no", partnerTradeNo);
map.put("openid", openid);
map.put("check_name", checkName);
map.put("re_user_name", reUserName);
map.put("amount", amount.toString());
map.put("desc", description);
map.put("spbill_create_ip", spbillCreateIp);
map.put("act_name", actName);
map.put("ww_msg_type", wwMsgType);
map.put("approval_number", approvalNumber);
map.put("approval_type", approvalType.toString());
map.put("agentid", agentId.toString());
}
}