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;
|
}
|
|
|
}
|