| | |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.domain.ExtendParams; |
| | | import com.alipay.api.domain.RoyaltyDetailInfos; |
| | | import com.alipay.api.domain.RoyaltyInfo; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import lombok.Synchronized; |
| | | import org.apache.commons.collections.map.HashedMap; |
| | | import org.bouncycastle.jce.provider.BouncyCastleProvider; |
| | | import org.dom4j.Document; |
| | |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.crypto.BadPaddingException; |
| | | import javax.crypto.Cipher; |
| | | import javax.crypto.IllegalBlockSizeException; |
| | |
| | | |
| | | private String key = "";//微信商户号 |
| | | |
| | | private String callbackPath = "";//支付回调网关地址 |
| | | private String callbackPath = "http://8.137.22.229:56666/other";//支付回调网关地址 |
| | | |
| | | private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径 |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl){ |
| | | // //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(callbackPath + notifyUrl); |
| | | |
| | | |
| | | |
| | | |
| | | //分账 |
| | | // Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo); |
| | | // Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo); |
| | | // Integer siteBookings = siteClient.queryByCode(outTradeNo); |
| | | // List<Integer> stores = new ArrayList<>(); |
| | | // stores.add(coursePackagePayments); |
| | | // stores.add(paymentCompetitions); |
| | | // stores.add(siteBookings); |
| | | |
| | | // OperatorUser operatorUser = siteClient.queryOperator(stores); |
| | | // |
| | | // String alipayProportion = operatorUser.getAlipayProportion(); |
| | | // String alipayNum = operatorUser.getAlipayNum(); |
| | | |
| | | // extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID"); |
| | | |
| | | // ExtendParams extendParams = new ExtendParams(); |
| | | // model.setExtendParams(extendParams); |
| | | // RoyaltyInfo royaltyInfo = new RoyaltyInfo(); |
| | | // royaltyInfo.setRoyaltyType("transfer"); |
| | | |
| | | |
| | | // RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos(); |
| | | // royaltyDetailInfo1.setTransOutType("userId"); |
| | | // royaltyDetailInfo1.setTransOut(aliAppid); |
| | | // royaltyDetailInfo1.setTransInType("loginName"); |
| | | // royaltyDetailInfo1.setTransIn("18398968484"); |
| | | // |
| | | // royaltyDetailInfo1.setDesc("分账描述1"); |
| | | // royaltyDetailInfo1.setAmountPercentage("10"); |
| | | // List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos); |
| | | // model.setRoyaltyInfo(royaltyInfo); |
| | | // System.err.println("========royaltyInfo=========="+royaltyInfo); |
| | | |
| | | |
| | | |
| | | try { |
| | | //这里和普通的接口调用不同,使用的是sdkExecute |
| | | AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("orderString", response.getBody()); |
| | | System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 |
| | | System.err.println("========map=========="+map);//就是orderString 可以直接给客户端请求,无需再做处理。 |
| | | map.put("siteBooking",passbackParams); |
| | | return ResultUtil.success(map); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public ResultUtil queryALIOrder(String out_trade_no) throws Exception{ |
| | | public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception{ |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2"); |
| | | AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_trade_no\":\"" + out_trade_no + "\"" + |
| | | "}"); |
| | | AlipayTradeQueryResponse response = alipayClient.execute(request); |
| | | |
| | | if(response.isSuccess()){ |
| | | String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) |
| | | return ResultUtil.success(tradeStatus); |
| | | return response; |
| | | } else { |
| | | return ResultUtil.error(response.getMsg()); |
| | | // return ResultUtil.error(response.getMsg()); |
| | | return response; |
| | | } |
| | | } |
| | | |
| | |
| | | String s1 = this.weixinSignature(map3); |
| | | map3.put("sign", s1); |
| | | System.err.println(map3); |
| | | map3.put("siteBookingId",attach); |
| | | return ResultUtil.success(map3); |
| | | } |
| | | return null; |