微信营销红包-企业付款到零钱升级,微信转账系统,接口改造API,付核心代码示例

大概从去年年底,微信官方即财付通的“企业付款到零钱”能力做了升级,除了纳入到当下的“微信商家转账”能力范畴之内,最大的改变,就是在于C端用户如何接受转账/入账的流程上。

也因此,不少接入微信企业付款到零钱的旧系统或产品,需要做适应性的改造/接口升级。

东哥在网上找了一圈,发现系统性介绍这块改造/升级的信息不多,那东哥就花时间整理了出来。

对于业务代码改造,最大的改造在于:之前通过微信小程序/公众号的openid完成静默转账,到现在生成package_info,再手动确认接收转账的模式。

更重要的是,不仅仅只是代码的改造,还涉及到交互流程,产品经理们也要想到业务流程代码可能也要大改。

部分业务,因为涉及到“用户主动确认收款后”的动作,这个如何做用户的通知,在业务流程上,也要好好考虑,保障这个触达率,及触达后的确认率才行。

以最近的微信官方文档为例,东哥用“微信评价返现红包系统”作为示例,从“发起转账->生成package_info->用户确认收款”三个核心环节,来做一个改造演示,应该能帮到不少关注东哥的读者。

1.发起转账,服务端代码:以java代码为示例

     WxPayAuthConfig wxPayAuthConfig = transferReq.getWxPayAuthConfig();
        Config config = getWxReqConfig(wxPayAuthConfig);

        System.out.println("==============>config==========>"+config);


        String req = "{"
                + "\"appid\":\"" + wxPayAuthConfig.getAppId() + "\","
                + "\"out_bill_no\":\""+transferReq.getPartnerTradeNo()+"\","
                + "\"transfer_scene_id\":\""+transferReq.getTransferSceneId()+"\"," 
                + "\"openid\":\""+transferReq.getOpenid()+"\","
//                + "\"user_name\":\"encrypted_user_name\"," // config.createEncryptor().encrypt("张三")
                + "\"transfer_amount\":"+transferReq.getTransAmount()+","
                + "\"transfer_remark\":\""+transferReq.getTransferRemark()+"\","
                + "\"notify_url\":\"https://www.weixin.qq.com/wxpay/pay.php\","
                + "\"user_recv_perception\":\"现金奖励\","
                + "\"transfer_scene_report_infos\":["
                + "    {\"info_type\":\"活动名称\",\"info_content\":\"新会员有礼\"},"
                + "    {\"info_type\":\"奖励说明\",\"info_content\":\"新会员首单奖励\"}"
                    + "]"
                + "}";

        HttpHeaders headers = new HttpHeaders();
        headers.addHeader("Accept", MediaType.APPLICATION_JSON.getValue());
        headers.addHeader("Content-Type", MediaType.APPLICATION_JSON.getValue());
        headers.addHeader("Wechatpay-Serial", config.createEncryptor().getWechatpaySerial());
        // 请求体
        JsonRequestBody body = new JsonRequestBody.Builder().body(req).build();
        log.info("【微信商家打款】请求体:{}", req);
        HttpRequest httpRequest =
                new HttpRequest.Builder()
                        .httpMethod(HttpMethod.POST)
                        .url(TRANSFER_URL)
                        .headers(headers)
                        .body(body)
                        .build();
        HttpClient httpClient = new DefaultHttpClientBuilder().config(config).build();
        HttpResponse<WxTransferRsp> httpResponse = httpClient.execute(httpRequest,
                WxTransferRsp.class);
        log.info("【微信商家打款】返回结果:{}", httpResponse.getServiceResponse());
        WxTransferRsp serviceResponse = httpResponse.getServiceResponse();
        log.info("【微信商家打款-更新平台订单状态和流水号,跳转领取页面的package信息】 开始..............");
        // TODO 更新平台订单状态和流水号

        log.info("【微信商家打款-更新平台订单状态和流水号,跳转领取页面的package信息】 结束..............");
        return serviceResponse;

2.服务端生成的package,用户接收转账的客户端代码示例

 wx.ready(function () {
        wx.checkJsApi({
          jsApiList: ['requestMerchantTransfer'],
          success: function (res) {
            if (res.checkResult['requestMerchantTransfer']) {
              WeixinJSBridge.invoke('requestMerchantTransfer', {
                  mchId: mchId,
                  //appid
                  appId: appId,
                  package: packageInfo,
                },
                function (res) {
                  if (res.err_msg === 'requestMerchantTransfer:ok') {
                    // res.err_msg将在页面展示成功后返回应用时返回success,并不代表付款成功
                  }
                }
              );
            } else {
              //alert('你的微信版本过低,请更新至最新版本。');
            }
          }
        });

3.最后完成“确认收款”,交互体验如下

https://gitee.com/elton_xia/wechat-transfer-hb-v3

完整交互可参考:微信红包系统-java+vue+小程序/公众号: 产品运营中涉及红包评价返现、运营返款、群发红包促活等场景,会让客服给粉丝发红包。利用微信的“企业付款到零钱”能力,本项目针对最新版的微信官方接口API,做了代码示例,尤其是针对“用户确认接收后入账”的流程改造,方便大家学习交流。请勿做其他商业用途。

有不了解的可以找东哥交流。本文严禁除优快云外的其他转载!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值