工资代发与批量付款的解决方案

首先,您最关心的资金安全是托管给支付宝,安全才是第一位。

我们可以协助贵公司向支付宝申请该资质,所有的资金进出都是在支付宝上完成的,完全可以自己掌控。

付款的工作可以导入订单也可以API完成。

    public void pay(Map tixian, Map bank) {String txid = StringUtil.isbank(tixian, TableEnum.component_accounttx.id);try {Map channel = companypayChannelMapper.findchannel("alipay_balance");String channelid = StringUtil.isbank(channel, TableEnum.component_companypay_channel.id);AlipayClient alipayClient = this.alipayClient(channelid);AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();model.setOutBizNo(txid);//商家侧唯一订单号,由商家自定义。对于不同转账请求,商家需保证该订单号在自身系统唯一。model.setRemark("提现单号:" + txid);//业务备注。//转账业务请求的扩展参数,支持传入的扩展参数如下://payer_show_name_use_alias:是否展示付款方别名,可选,收款方在支付宝账单中可见。枚举支持://* true:展示别名,将展示商家支付宝在商家中心 商户信息 > 商户基本信息 页面配置的 商户别名。//* false:不展示别名。默认为 false。model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");model.setBizScene("DIRECT_TRANSFER");//业务场景。单笔无密转账固定为 DIRECT_TRANSFER。Participant payeeInfo = new Participant();//收款方信息//当 identity_type=ALIPAY_USER_ID 时,填写支付宝用户 UID。示例值:2088123412341234。//当 identity_type=ALIPAY_LOGON_ID 时,填写支付宝登录号。示例值:186xxxxxxxx。payeeInfo.setIdentity(StringUtil.isbank(bank, TableEnum.guanyi_shop_bankcar.bank_code));payeeInfo.setIdentityType("ALIPAY_LOGON_ID");//参与方真实姓名。如果非空,将校验收款支付宝账号姓名一致性。//当 identity_type=ALIPAY_LOGON_ID 时,本字段必填。若传入该属性,则在支付宝回单中将会显示这个属性。payeeInfo.setName(StringUtil.isbank(bank, TableEnum.guanyi_shop_bankcar.bank_name));model.setPayeeInfo(payeeInfo);model.setTransAmount(this.tixianBalance(tixian));//订单总金额,单位为元,不支持千位分隔符,精确到小数点后两位,取值范围[0.1,100000000]。model.setProductCode("TRANS_ACCOUNT_NO_PWD");//销售产品码。单笔无密转账固定为 TRANS_ACCOUNT_NO_PWDmodel.setOrderTitle(this.getCongigStr(ConfigEnum.alipay_balance.title, channelid));//转账业务的标题,用于在支付宝用户的账单里显示。request.setBizModel(model);AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);if (response.isSuccess()) {tixian.put(TableEnum.component_accounttx.pay_state.toString(), "5");tixian.put(TableEnum.component_accounttx.pay_no.toString(), response.getOrderId());tixian.put(TableEnum.component_accounttx.pay_bak.toString(), StringUtil.isbank(channel, TableEnum.component_companypay_channel.channel_name) + ":代付成功");tixian.put(TableEnum.component_accounttx.pay_time.toString(), new Date());tixian.put(TableEnum.component_accounttx.companypay_channel.toString(), channelid);accounttxMapper.baseUpdata(tixian);} else {if ("BALANCE_IS_NOT_ENOUGH".equals(response.getSubCode())) {accounttxStopMapper.add(txid, "余额不足");} else {tixian.put(SystemConstant.results, "1");tixian.put(SystemConstant.message, response.getSubMsg());accounttxMapper.tuihui(tixian);}}} catch (Exception e) {accounttxStopMapper.add(txid, "程序异常:" + e.getMessage());}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部