package com.ks.app.utils.vip; import com.alipay.api.AlipayApiException; import com.ks.app.entity.vip.OrderType; import com.ks.app.utils.Constant; import com.ks.app.utils.PayConstant; import org.apache.commons.io.IOUtils; import org.yeshi.utils.alipay.AlipayH5PayUtil; import org.yeshi.utils.entity.alipay.AlipayAppInfo; import org.yeshi.utils.entity.wx.WXAPPInfo; import org.yeshi.utils.entity.wx.WXPlaceOrderParams; import org.yeshi.utils.wx.WXPayV3Util; import java.io.IOException; import java.math.BigDecimal; import java.util.Properties; public class VipUtil { public static AlipayAppInfo getAlipayApp() { try { Properties properties = new Properties(); properties.load(VipUtil.class.getClassLoader().getResourceAsStream("alipay.properties")); String appId = properties.getProperty("app_id"); String privateKey = properties.getProperty("private_key"); String publicKey = properties.getProperty("alipay_public_key"); AlipayAppInfo appInfo = new AlipayAppInfo(appId, privateKey, publicKey); return appInfo; } catch (IOException e) { e.printStackTrace(); } return null; } /** * 获取微信app * * @return */ public static WXAPPInfo getWXAPP() { String privateKey = ""; try { String content = IOUtils.toString(VipUtil.class.getClassLoader().getResourceAsStream("wx/apiclient_key.pem")); privateKey = content.replace("-----BEGIN PRIVATE KEY-----", "") .replace("-----END PRIVATE KEY-----", "") .replaceAll("\\s+", ""); } catch (Exception e) { } Properties properties = new Properties(); try { properties.load(VipUtil.class.getClassLoader().getResourceAsStream("wxpay.properties")); } catch (IOException e) { e.printStackTrace(); } String appId = properties.getProperty("app_id"); String mchId = properties.getProperty("mch_id"); String mchSerialNo = properties.getProperty("mch_serial_no"); String apiV3Key = properties.getProperty("api_v3_key"); WXAPPInfo app = new WXAPPInfo(appId, mchId, mchSerialNo, privateKey, apiV3Key); return app; } /** * 获取会员充值支付宝支付表单 * * @param orderNo * @param money * @return */ public static String getVipChargeAlipayForm(Long id, OrderType orderType, String orderNo, BigDecimal money) { try { String goodsTitle = "会员购买"; String returnUrl = getPaySuccessUrl(id); String notifyUrl = PayConstant.ALIPAY_NOTIFY_URL; AlipayAppInfo appInfo = getAlipayApp(); String form = AlipayH5PayUtil.createOrderForm(appInfo, orderNo, money, goodsTitle, returnUrl, notifyUrl); return form; } catch (AlipayApiException e) { e.printStackTrace(); } return null; } public static String getPaySuccessUrl(Long id) { return PayConstant.PAY_SUCCESS_LINK.replace("{id}", id+""); } /** * 微信下单 * * @param ip * @param orderNo * @param money * @param title * @return * @throws Exception */ public static String createWXOrder(Long id, String ip, String orderNo, BigDecimal money, String title) throws Exception { WXPlaceOrderParams params = new WXPlaceOrderParams(); params.setIp(ip); params.setOrderNo(orderNo); params.setNotifyUrl(PayConstant.WX_NOTIFY_URL); params.setFee(money); params.setBody(title); params.setApp(getWXAPP()); String returnUrl = PayConstant.WX_PAY_FINISH_LINK.replace("{id}", id+""); String payUrl = WXPayV3Util.createH5Order(params, returnUrl); return payUrl; } }