|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|
|  |  |  | // TODO: 请准备商户开发必要参数,参考:https://pay.weixin.qq.com/doc/v3/merchant/4013070756 | 
|---|
|  |  |  | //        TransferToUser client = new TransferToUser( | 
|---|
|  |  |  | //                "1229817002",                    // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756 | 
|---|
|  |  |  | //                "3FE90C2F3D40A56E1C51926F31B8A8D22426CCE0",         // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053 | 
|---|
|  |  |  | //                "d://wechatApiclient_key.pem",    // 商户API证书私钥文件路径,本地文件路径 | 
|---|
|  |  |  | //                "PUB_KEY_ID_0112298170022025071700291836000600",      // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816 | 
|---|
|  |  |  | //                "d://pub_key.pem"          // 微信支付公钥文件路径,本地文件路径 | 
|---|
|  |  |  | //        ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TransferToUser client = new TransferToUser( | 
|---|
|  |  |  | "1229817002",                    // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756 | 
|---|
|  |  |  | "3FE90C2F3D40A56E1C51926F31B8A8D22426CCE0",         // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053 | 
|---|
|  |  |  | "1661772003",                    // 商户号,是由微信支付系统生成并分配给每个商户的唯一标识符,商户号获取方式参考 https://pay.weixin.qq.com/doc/v3/merchant/4013070756 | 
|---|
|  |  |  | "3C9A32FB6CD453FAAAF97F9737ECAEA9D6625727",         // 商户API证书序列号,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013053053 | 
|---|
|  |  |  | "d://wechatApiclient_key.pem",    // 商户API证书私钥文件路径,本地文件路径 | 
|---|
|  |  |  | "PUB_KEY_ID_0112298170022025071700291836000600",      // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816 | 
|---|
|  |  |  | "d://pub_key.pem"          // 微信支付公钥文件路径,本地文件路径 | 
|---|
|  |  |  | "47E172124E73E8098A565E971064C20ACDE7C911",      // 微信支付公钥ID,如何获取请参考 https://pay.weixin.qq.com/doc/v3/merchant/4013038816 | 
|---|
|  |  |  | "d://wechatpay_47E172124E73E8098A565E971064C20ACDE7C911.pem"          // 微信支付公钥文件路径,本地文件路径 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TransferToUserRequest request = new TransferToUserRequest(); | 
|---|
|  |  |  | 
|---|
|  |  |  | request.outBillNo = "plfk2020042016"; | 
|---|
|  |  |  | request.transferSceneId = "1005"; | 
|---|
|  |  |  | request.openid = "oKKHU5IFKpss_DIbFX1lqghFJOEg"; | 
|---|
|  |  |  | request.userName = client.encrypt("施旭辉"); | 
|---|
|  |  |  | request.transferAmount = 91L; | 
|---|
|  |  |  | //        request.userName = client.encrypt("施旭辉"); | 
|---|
|  |  |  | request.transferAmount = 10L; | 
|---|
|  |  |  | request.transferRemark = "~~~"; | 
|---|
|  |  |  | request.notifyUrl = "https://www.weixin.qq.com/wxpay/pay.php"; | 
|---|
|  |  |  | //        request.notifyUrl = "https://www.weixin.qq.com/wxpay/pay.php"; | 
|---|
|  |  |  | request.userRecvPerception = "劳务报酬"; | 
|---|
|  |  |  | request.transferSceneReportInfos = new ArrayList<>(); | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | public TransferToUserResponse run(TransferToUserRequest request,String name) { | 
|---|
|  |  |  | String uri = PATH; | 
|---|
|  |  |  | request.appid = WxMiniConfig.wxProperties.getSubAppId(); | 
|---|
|  |  |  | //        request.notifyUrl = WxMiniConfig.wxProperties.getWechatNotifyUrl(); | 
|---|
|  |  |  | request.transferSceneId = "1005"; | 
|---|
|  |  |  | request.userRecvPerception = "劳务报酬"; | 
|---|
|  |  |  | if(request.transferAmount >= 30){ | 
|---|
|  |  |  | 
|---|
|  |  |  | Request.Builder reqBuilder = new Request.Builder().url(HOST + uri); | 
|---|
|  |  |  | reqBuilder.addHeader("Accept", "application/json"); | 
|---|
|  |  |  | reqBuilder.addHeader("Wechatpay-Serial", WxMiniConfig.wxProperties.getWechatPayPublicKeyId()); | 
|---|
|  |  |  | reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(WxMiniConfig.wxProperties.getMchId(), | 
|---|
|  |  |  | reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(WxMiniConfig.wxProperties.getSubMchId(), | 
|---|
|  |  |  | WxMiniConfig.wxProperties.getWechatSerialNumer(), | 
|---|
|  |  |  | WXPayUtility.loadPrivateKeyFromPath(WxMiniConfig.wxProperties.getWechatPrivateKeyPath()), | 
|---|
|  |  |  | METHOD, uri, reqBody)); | 
|---|
|  |  |  | 
|---|
|  |  |  | Request.Builder reqBuilder = new Request.Builder().url(HOST + uri); | 
|---|
|  |  |  | reqBuilder.addHeader("Accept", "application/json"); | 
|---|
|  |  |  | reqBuilder.addHeader("Wechatpay-Serial", wechatPayPublicKeyId); | 
|---|
|  |  |  | reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(WxMiniConfig.wxProperties.getMchId(), | 
|---|
|  |  |  | reqBuilder.addHeader("Authorization", WXPayUtility.buildAuthorization(WxMiniConfig.wxProperties.getSubMchId(), | 
|---|
|  |  |  | WxMiniConfig.wxProperties.getWechatSerialNumer(), | 
|---|
|  |  |  | WXPayUtility.loadPrivateKeyFromPath(WxMiniConfig.wxProperties.getWechatPrivateKeyPath()), | 
|---|
|  |  |  | METHOD, uri, null)); | 
|---|