微信は学習ノートの呼び出しcomを支払う.github.binarywang.wxpay.サービスインタフェース
2733 ワード
:https://github.com/binarywang
手順:
/**
* ip
* @param httpservletrequest
* @return
*/
public static String getClientIP(HttpServletRequest httpservletrequest) {
if (httpservletrequest == null)
return null;
String s = httpservletrequest.getHeader("X-Forwarded-For");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("Proxy-Client-IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("WL-Proxy-Client-IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("HTTP_CLIENT_IP");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getHeader("HTTP_X_FORWARDED_FOR");
if (s == null || s.length() == 0 || "unknown".equalsIgnoreCase(s))
s = httpservletrequest.getRemoteAddr();
return s;
}
public WxPayUnifiedOrderRequest toPayInfo(String clientIp) {
WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
request.setDeviceInfo("WEB");//
request.setBody(this.getProductName());//
request.setOutTradeNo(this.getOrderNo());//
request.setDetail(this.getProductName());//
request.setTotalFee(this.getPrice());// |
request.setSpbillCreateIp(clientIp);// IP
request.setNotifyUrl(this.getNotifyUrl());//
request.setTradeType("JSAPI");//
request.setProductId(this.getProductId().toString());// id
request.setOpenid(this.getOpenId());
return request;
}
/**
* , .
*
* @param {@link com.github.binarywang.wxpay.bean.order}
* @param request
* @return {@link com.github.binarywang.wxpay.bean.order}
* @throws WxPayException the wx pay exception
*/
T createOrder(WxPayUnifiedOrderRequest request) throws WxPayException;
// request , ,
WxPayMpOrderResult result = payService.createOrder(wxPayUnifiedOrderRequest);
WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) throws WxPayException;