微信支付配置
This commit is contained in:
parent
3fbe1020d9
commit
7976fc79d3
|
@ -20,29 +20,33 @@ public class WxPayConfig implements WXPayConfig {
|
|||
//此处暂时用不到,这里是读取证书的地方
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAppID() {
|
||||
return "这里是你的appid";
|
||||
return "wx865aefa5a7115ae0";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMchID() {
|
||||
//申请普通商户时分配给你的商户号
|
||||
return "这里是你的商户号";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
//这里的key 就是你在支付平台设置的API密钥
|
||||
return "这是就是你的Key了";
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStream getCertStream() {
|
||||
ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
|
||||
return certBis;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHttpConnectTimeoutMs() {
|
||||
return 8000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHttpReadTimeoutMs() {
|
||||
return 10000;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
package com.bigdata.wxappserver.controller;
|
||||
|
||||
import com.bigdata.wxappserver.config.WxPayConfig;
|
||||
import com.github.wxpay.sdk.WXPay;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("pay")
|
||||
public class PayController {
|
||||
|
||||
@RequestMapping("payment")
|
||||
public Object getPayment(HttpServletRequest request, @RequestParam("totalFee") String totalFee, String tradeno) throws Exception {
|
||||
// 获取到当前登录用户,因为这里我保存了openid , 方法大家可以自己处理,这里就不展示了
|
||||
// User user = User.getCurrentUserInfo().getUser();
|
||||
//当前就是我们自己配置的支付配置。appid 商户号 key 什么的;
|
||||
WxPayConfig config = new WxPayConfig();
|
||||
//当前类是官方为我们封装的一些使用的方法
|
||||
WXPay wxpay = new WXPay(config);
|
||||
//获取到 IP
|
||||
String clientIp = getIpAddress(request);
|
||||
System.err.println(clientIp);
|
||||
//封装请求参数 参数说明看API文档,当前就不进行讲解了
|
||||
Map<String, String> data = new HashMap<>();
|
||||
data.put("body", "腾讯充值中心-QQ会员充值");
|
||||
data.put("out_trade_no", "2016090910595900000012");
|
||||
data.put("device_info", "12345679"); //此处设备或商品编号
|
||||
data.put("fee_type", "CNY"); // 货币类型 人民币
|
||||
|
||||
// 支付中没有小数点,起步以分做为单们,当前为1 分钱,所以自行调整金额 ,这里可以做为传参,
|
||||
//选取商品金额传到后端来
|
||||
data.put("total_fee", "1");
|
||||
|
||||
data.put("spbill_create_ip", "123.12.12.123");
|
||||
data.put("notify_url", "http://www.example.com/wxpay/notify");
|
||||
data.put("trade_type", "JSAPI"); // 此处指定JSAPI
|
||||
data.put("product_id", "12");
|
||||
data.put("openid", "这是是登录获取到的openId 必传");
|
||||
//调用统一下单方法
|
||||
Map<String, String> order = wxpay.unifiedOrder(data);
|
||||
//获取到需要的参数返回小程序
|
||||
return order;
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 获取 IP
|
||||
public static String getIpAddress(HttpServletRequest request) {
|
||||
String ip = request.getHeader("x-forwarded-for");
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("WL-Proxy-Client-IP");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("HTTP_CLIENT_IP");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
|
||||
}
|
||||
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
||||
ip = request.getRemoteAddr();
|
||||
}
|
||||
return ip;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue