企业付款到零钱「微信小程序别样发放红包」

目录

一、开发前的准备工作

二、接入微信企业付款到零钱API

1)接入「企业付款到零钱」API

2)接入「查询企业付款」API

三、开发过程的参数封装以及工具类封装

四、调试注意事项汇总


 

一、开发前的准备工作

  1. 前往商户平台开通「企业付款到零钱」。
  2. 配置好API密钥和生成API证书。

「企业付款到零钱」介绍:

开通注意事项见下图。详情请戳:企业付款场景介绍&操作指导

二、接入微信企业付款到零钱API

先附上微信官方文档:企业付款到零钱  & 查询企业付款

1)接入「企业付款到零钱」API

API 接入注意事项参见下方截图:
 


嗯,浏览官网文档后,相信应该已经找到感觉,哪怕一丁点都好!
接下来,总体梳理一下编码思路:

  • 读取对接必需配置项:appid & 商户号mch_id & 商户API密钥mchKey
  • 读取微信「企业付款到零钱」接口URL配置项
  • SSL加载API证书
  • 组装「企业付款到零钱」接口所需的请求参数
  • 按照既定规则生成商户订单号
  • 生成签名
  • 正式请求「企业付款到零钱」API
  • 接收API响应结果,处理相关业务逻辑

 

2)接入「查询企业付款」API

嗯,还是梳理编码步骤:

  • 读取对接必需配置项:appid & 商户号mch_id & 商户API密钥mchKey
  • 读取微信「查询企业付款」接口URL配置项
  • SSL加载API证书
  • 组装「查询企业付款」接口所需的请求参数(此处商户订单号跟付款API使用的商户订单号保持一致)
  • 生成签名
  • 正式请求「查询企业付款」API
  • 接收API响应结果,处理相关业务逻辑

   /**
     * @return java.util.Map<java.lang.String, java.lang.String>
     * @throws
     * @description 查询企业付款
     * @params [partnerTradeNo]
     */
    @Override
    public Map<String, String> getTransferInfo(String partnerTradeNo) throws IOException {

        // 加载API证书
        SSLContext sslContext = initSSLContext();

        SSLConnectionSocketFactory sslSkF = new SSLConnectionSocketFactory(sslContext, new String[]{"TLSv1"},
                null, SSLConnectionSocketFactory.getDefaultHostnameVerifier());

        SortedMap<String, Object> parameters = new TreeMap<>();

        // 组装请求参数
        parameters.put("partner_trade_no", partnerTradeNo);
        parameters.put("nonce_str", weChatUtils.gen32RandomString());
        parameters.put("appid", wxEpProperties.getAppid());
        parameters.put("mch_id", wxEpProperties.getMchId());

        // 生成签名
        String sign = weChatUtils.createSign(parameters, wxEpProperties.getMchKey());
        parameters.put("sign", sign);

        try {

            // 查询企业付款 响应结果=> Xml格式
            String entPaymentQueryRes = weChatUtils.executeHttpPost(wxEpProperties.getGetTransferInfoUrl(), parameters, sslSkF);

            log.info("WeChatEntPaymentServiceImpl.getTransferInfo ======== 查询企业付款响应结果:[{}] ======== ", entPaymentQueryRes);

            // XML => Map
            Map<String, String> resInfoMap = weChatUtils.transferXmlToMap(entPaymentQueryRes);

            log.info("WeChatEntPaymentServiceImpl.getTransferInfo ======== 查询企业付款响应结果Map结构:[{}] ======&#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值