日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信、支付宝二码合一扫码支付实现思路

發(fā)布時間:2023/12/31 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信、支付宝二码合一扫码支付实现思路 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、支付二維碼(預訂單)

? ? ? ? 根據需要購買的信息創(chuàng)建預訂單,將訂單信息保存到Redis中,并設置有效期,注意生產二維碼的鏈接后的參數可以關聯到Redis中的key;

? ? ? ?QRCode? 為servlet掃碼請求的URL;

? ? ? ?UUIDUtils.getUUID()? 為預訂單單號,在servlet請求中截取,然后在Redis中查找對應的Key的數據;

? ? ? ? 二維碼地址:http://kung900519.qicp.io/interface/QRCode/UUIDUtils.getUUID();

二、創(chuàng)建二維碼掃碼請求地址servlet:QRCodeServlet;微信支付重定向請求servlet:WechatPayServlet;支付寶重定向請求servlet:AliPayServlet;

? ? QRCodeServlet? 用于用戶使用微信或者支付寶掃碼二維碼進行客戶端識別及重定向到對應的業(yè)務處理;

package com.platform.cloudlottery.servlet;import java.io.IOException;import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.context.support.SpringBeanAutowiringSupport;import com.platform.cloudlottery.common.CommonConfig; import com.platform.cloudlottery.common.alipay.config.MyAliPayConfig; import com.platform.cloudlottery.common.wechat.config.WXPublicConfig; import com.platform.cloudlottery.common.wechat.util.HttpUtil; import com.platform.cloudlottery.model.SysPayChannel; import com.platform.cloudlottery.service.Impl.SysPayChannelServiceImpl; import com.platform.cloudlottery.web.StatusContant.PayTypeConstant;/*** @ClassName: QRCodeServlet* @Description: TODO(根據請求的后綴獲取該數據編碼對應的數據,并重定向到頁面)* @author chenkun* @date 2018年12月29日**/ public class QRCodeServlet extends HttpServlet {private static final long serialVersionUID = -8457626626670970403L;protected Logger logger = LoggerFactory.getLogger(getClass());private static final String UrlStr = "QRCode/";private static final String wechatPay = "wechatPay/";private static final String aliPay = "aliPay/";@Autowiredprivate SysPayChannelServiceImpl payChannelService;public void init(ServletConfig servletConfig) throws ServletException {super.init(servletConfig);SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, servletConfig.getServletContext());}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {logger.info("####################請求開始####################");String userAgent = request.getHeader("user-agent");String RequestURL = request.getRequestURL().toString();logger.info("URL : " + RequestURL);String ReqInfo = RequestURL.substring(RequestURL.indexOf(UrlStr)+UrlStr.length());logger.info("URL : " + ReqInfo);CommonConfig commonConfig = new CommonConfig();if (userAgent != null && userAgent.contains("AlipayClient")) {logger.info("來自支付寶");String redirecturi = HttpUtil.urlEnCode(commonConfig.getDomain() + aliPay + ReqInfo);logger.info("REDIRECT_URI="+redirecturi);SysPayChannel channel = payChannelService.selectByChannelType(PayTypeConstant.Alipay);MyAliPayConfig aliPayConfig = new MyAliPayConfig();aliPayConfig.setAppId(channel.getAppid());// 授權頁面地址String requestUrl = aliPayConfig.getAuthgateway();requestUrl = requestUrl.replace("APPID", aliPayConfig.getAppId()).replace("SCOPE", aliPayConfig.getScope()).replace("REDIRECT_URI", redirecturi);// 重定向到授權頁面response.sendRedirect(requestUrl);} else if (userAgent != null && userAgent.contains("MicroMessenger")) {logger.info("來自微信");String redirecturi = HttpUtil.urlEnCode(commonConfig.getDomain() + wechatPay + ReqInfo);logger.info("REDIRECT_URI="+redirecturi);SysPayChannel channel = payChannelService.selectByChannelType(PayTypeConstant.Wechat);WXPublicConfig publicConfig = new WXPublicConfig();publicConfig.setAppId(channel.getAppid());publicConfig.setOriginId(channel.getOriginid());publicConfig.setAppSecret(channel.getAppsecret());publicConfig.setEncodingAESKey(channel.getEncodingaeskey());// 授權頁面地址String requestUrl = publicConfig.getAuthorizeinterface();requestUrl = requestUrl.replace("APPID", publicConfig.getAppId()).replace("REDIRECT_URI", redirecturi).replace("SCOPE", publicConfig.getScope()).replace("STATE", publicConfig.getState());// 重定向到授權頁面response.sendRedirect(requestUrl);} else {logger.info("未知來源");}logger.info("####################請求結束####################");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }

? ?WechatPayServlet 在獲取到Redis中預訂單數據后,創(chuàng)建真實訂單并調用微信“統(tǒng)一下單接口”;

package com.platform.cloudlottery.servlet;import com.alibaba.fastjson.JSONObject; import com.github.wxpay.sdk.WXPayUtil; import com.platform.cloudlottery.common.CommonConfig; import com.platform.cloudlottery.common.jedis.JedisUtil; import com.platform.cloudlottery.common.lang.StringUtils; import com.platform.cloudlottery.common.utils.BusinessCodeUtils; import com.platform.cloudlottery.common.wechat.bean.WeiXinOAuth2Token; import com.platform.cloudlottery.common.wechat.bean.WeiXinUserInfo; import com.platform.cloudlottery.common.wechat.config.WXPayConfig; import com.platform.cloudlottery.common.wechat.config.WXPublicConfig; import com.platform.cloudlottery.common.wechat.util.WeiXinOAuth2Util; import com.platform.cloudlottery.common.wechat.util.WeiXinPayUtils; import com.platform.cloudlottery.model.SysPayChannel; import com.platform.cloudlottery.service.Impl.LotteryOrderServiceImpl; import com.platform.cloudlottery.service.Impl.SysPayChannelServiceImpl; import com.platform.cloudlottery.service.Impl.UserMemberServiceImpl; import com.platform.cloudlottery.service.OrderServcie; import com.platform.cloudlottery.service.UserInfoService; import com.platform.cloudlottery.web.ResultContant; import com.platform.cloudlottery.web.StatusContant.PayTypeConstant; import com.platform.cloudlottery.web.SysKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.context.support.SpringBeanAutowiringSupport; import redis.clients.jedis.Jedis;import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map;/** * @ClassName: WechatPayServlet * @Description: TODO(這里用一句話描述這個類的作用) * @author chenkun * @date 2019年1月5日 **/ public class WechatPayServlet extends HttpServlet {private static final long serialVersionUID = -8457626626670970403L;protected Logger logger = LoggerFactory.getLogger(getClass());private static Jedis redis = JedisUtil.getJedis();@Value("${config.domain}")private String domain;@Value("${config.isProduction}")private boolean isProduction;// 請求路徑包含的字符串private static final String UrlStr = "wechatPay/";@Autowiredprivate SysPayChannelServiceImpl payChannelService;@Autowiredprivate UserMemberServiceImpl memberService;@Autowiredprivate LotteryOrderServiceImpl lotteryOrderService;public void init(ServletConfig servletConfig) throws ServletException {super.init(servletConfig);SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, servletConfig.getServletContext());}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {logger.debug("####################請求開始####################");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");try {// 用戶同意授權后,能獲取到codeString code = request.getParameter("code");// 用戶同意授權if (!"authdeny".equals(code)) {CommonConfig commonConfig = new CommonConfig();String RequestURL = request.getRequestURL().toString();logger.debug("URL : " + RequestURL);String QRCodeUrl = RequestURL.substring(RequestURL.indexOf(UrlStr) + UrlStr.length());String QRCodeReqInfo = QRCodeUrl.split("&")[0];String operatorId = QRCodeUrl.split("&")[1];logger.debug("QRCodeReqInfo : " + QRCodeReqInfo +";operatorId : " + operatorId);String advancekey = commonConfig.getLotteryorder() + QRCodeReqInfo;SysPayChannel channel = payChannelService.selectByChannelType(PayTypeConstant.Wechat);WXPublicConfig publicConfig = new WXPublicConfig();publicConfig.setAppId(channel.getAppid());publicConfig.setOriginId(channel.getOriginid());publicConfig.setAppSecret(channel.getAppsecret());publicConfig.setEncodingAESKey(channel.getEncodingaeskey());WXPayConfig payConfig = new WXPayConfig();payConfig.setMchId(channel.getMchid());payConfig.setAppId(channel.getAppid());payConfig.setKey(channel.getWxkey());payConfig.setApicertPath(channel.getPayCertUrl());payConfig.setSpbillCreateIp(channel.getSpbillcreateip());// 獲取網頁授權access_tokenWeiXinOAuth2Token weixinOauth2Token = WeiXinOAuth2Util.getOAuth2AccessToken(publicConfig,code);// 網頁授權接口訪問憑證String accessToken = weixinOauth2Token.getAccessToken();logger.debug("accessToken=" + accessToken);// 用戶標識String openId = weixinOauth2Token.getOpenId();logger.debug("openId="+openId);// 獲取用戶信息WeiXinUserInfo userInfo = WeiXinOAuth2Util.getOAuth2UserInfo(publicConfig, accessToken, openId);logger.debug(userInfo.getNickName()+"=====微信支付====="+userInfo.getOpenId());//添加或更新用戶信息String userid = UserInfoService.CreateUserMember(userInfo,memberService);if (!redis.exists(advancekey)) {// 判斷key是否存在logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}if (StringUtils.trimToEmpty(redis.get(advancekey)).equals("")) {logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}JSONObject jsonObject = JSONObject.parseObject(redis.get(advancekey));if (null == jsonObject) {logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}if (redis.get(advancekey + "_lock") != null && !redis.get(advancekey + "_lock").equals("")){logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}redis.setex(advancekey + "_lock", 1, "lock");String orderid = BusinessCodeUtils.getOrderNo(jsonObject.getString(SysKey.deviceSn));int money = jsonObject.getIntValue(SysKey.money);int lotterytype = jsonObject.getIntValue(SysKey.lotteryType);if (!orderid.equals("") && money!=0) {//創(chuàng)建訂單boolean bool = OrderServcie.createorder(QRCodeReqInfo, PayTypeConstant.Wechat, payConfig.getAppID(), userid, openId, orderid, jsonObject, lotteryOrderService);if (bool) {//刪除預訂單信息redis.del(advancekey);//一個預訂單只能創(chuàng)建一個訂單String paymoney = String.valueOf(money);if (!isProduction) {//測試環(huán)境paymoney = BigDecimal.valueOf(Long.valueOf(paymoney)).divide(new BigDecimal(100)).toString();//真實金額除100}logger.debug("是否生產環(huán)境:"+isProduction+";訂單金額為:"+String.valueOf(money)+";實際支付金額為:"+paymoney);//創(chuàng)建微信訂單Map<String, String> map = WeiXinPayUtils.createOrderJsapi(domain, payConfig, orderid, paymoney, lotterytype==0?"即開票":"電腦票", openId);logger.debug("創(chuàng)建微信支付預訂單返回數據:"+JSONObject.toJSONString(map));if (map != null) {if (map.get("return_code").equals("SUCCESS")) {if (map.get("result_code").equals("SUCCESS")) {logger.debug("創(chuàng)建微信支付預訂單成功");Map<String, String> data = new LinkedHashMap<String, String>();data.put("appId", payConfig.getAppID());data.put("timeStamp", String.valueOf(new Date().getTime()/1000));data.put("nonceStr", WXPayUtil.generateNonceStr());data.put("package", "prepay_id="+map.get("prepay_id"));data.put("signType", "MD5");data.put("paySign", WXPayUtil.generateSignature(data, payConfig.getKey()));logger.debug("返回到客戶端的數據:"+JSONObject.toJSONString(data));request.setAttribute("appId", data.get("appId"));request.setAttribute("timeStamp", data.get("timeStamp"));request.setAttribute("nonceStr", data.get("nonceStr"));request.setAttribute("package", data.get("package"));request.setAttribute("signType", data.get("signType"));request.setAttribute("paySign", data.get("paySign"));request.setAttribute("code", ResultContant.sucess);request.setAttribute("message", "成功");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}else{logger.debug("創(chuàng)建訂單失敗: 創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗:創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗:創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗:創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗;訂單金額或者訂單號數據有誤");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}}} catch (Exception e) {e.printStackTrace();logger.debug("系統(tǒng)異常");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../wechat/WechatPay.jsp").forward(request, response);}logger.debug("####################請求結束####################");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }

? ?AliPayServlet??在獲取到Redis中預訂單數據后,創(chuàng)建真實訂單并調用支付寶“手機網站支付接口”;

package com.platform.cloudlottery.servlet;import com.alibaba.fastjson.JSONObject; import com.platform.cloudlottery.common.CommonConfig; import com.platform.cloudlottery.common.alipay.bean.AliPayOAuth2Token; import com.platform.cloudlottery.common.alipay.bean.AliPayUserInfo; import com.platform.cloudlottery.common.alipay.config.MyAliPayConfig; import com.platform.cloudlottery.common.alipay.uitl.AliPayOAuth2Util; import com.platform.cloudlottery.common.alipay.uitl.AlipayPayUtils; import com.platform.cloudlottery.common.jedis.JedisUtil; import com.platform.cloudlottery.common.lang.StringUtils; import com.platform.cloudlottery.common.properties.PropertiesUtils; import com.platform.cloudlottery.common.utils.BusinessCodeUtils; import com.platform.cloudlottery.model.SysPayChannel; import com.platform.cloudlottery.service.Impl.LotteryOrderServiceImpl; import com.platform.cloudlottery.service.Impl.SysPayChannelServiceImpl; import com.platform.cloudlottery.service.Impl.UserMemberServiceImpl; import com.platform.cloudlottery.service.OrderServcie; import com.platform.cloudlottery.service.UserInfoService; import com.platform.cloudlottery.web.ResultContant; import com.platform.cloudlottery.web.StatusContant.PayTypeConstant; import com.platform.cloudlottery.web.SysKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.context.support.SpringBeanAutowiringSupport; import redis.clients.jedis.Jedis;import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.util.Properties;/** * @ClassName: AliPayServlet * @Description: TODO(這里用一句話描述這個類的作用) * @author chenkun * @date 2019年1月5日 **/ public class AliPayServlet extends HttpServlet {private static final long serialVersionUID = -8457626626670970403L;protected Logger logger = LoggerFactory.getLogger(getClass());private static Jedis redis = JedisUtil.getJedis();@Value("${config.domain}")private String domain;@Value("${config.isProduction}")private boolean isProduction;// 請求路徑包含的字符串private static final String UrlStr = "aliPay/";@Autowiredprivate SysPayChannelServiceImpl payChannelService;@Autowiredprivate UserMemberServiceImpl memberService;@Autowiredprivate LotteryOrderServiceImpl lotteryOrderService;public void init(ServletConfig servletConfig) throws ServletException {super.init(servletConfig);SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, servletConfig.getServletContext());}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {logger.debug("####################請求開始####################");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");try {//用戶同意授權后,能獲取到codeString code = request.getParameter("auth_code");//用戶同意授權if (!code.equals("")) {CommonConfig commonConfig = new CommonConfig();//具體業(yè)務String RequestURL = request.getRequestURL().toString();logger.debug("URL : " + RequestURL);String QRCodeUrl = RequestURL.substring(RequestURL.indexOf(UrlStr) + UrlStr.length());String QRCodeReqInfo = QRCodeUrl.split("&")[0];String operatorId = QRCodeUrl.split("&")[1];logger.debug("QRCodeReqInfo : " + QRCodeReqInfo +";operatorId : " + operatorId);String advancekey = commonConfig.getLotteryorder() + QRCodeReqInfo;SysPayChannel channel = payChannelService.selectByChannelType(PayTypeConstant.Alipay);MyAliPayConfig aliPayConfig = new MyAliPayConfig();aliPayConfig.setAppId(channel.getAppid());String certsrc = channel.getPayCertUrl();Properties propertiesFile = PropertiesUtils.getPropertiesFile(certsrc);if (propertiesFile != null) {aliPayConfig.setPayeeAccount(propertiesFile.getProperty("ALI_PAYEE_ACCOUNT"));aliPayConfig.setAppId(propertiesFile.getProperty("ALI_APP_ID"));aliPayConfig.setAliPayPublicKey(propertiesFile.getProperty("ALI_ALIPAY_PUBLIC_KEY"));aliPayConfig.setAppPayPublicKey(propertiesFile.getProperty("ALI_APP_PAY_PUBLIC_KEY"));aliPayConfig.setAppPrivateKey(propertiesFile.getProperty("ALI_APP_PRIVATE_KEY"));}//獲取網頁授權access_tokenAliPayOAuth2Token aliPayOAuth2Token = AliPayOAuth2Util.getOAuth2AccessToken(aliPayConfig,code);//網頁授權接口訪問憑證String accessToken = aliPayOAuth2Token.getAccessToken();logger.debug("accessToken=" + accessToken);//用戶標識String aliuserid = aliPayOAuth2Token.getUserid();logger.debug("aliuserid="+aliuserid);//獲取用戶信息AliPayUserInfo userInfo = AliPayOAuth2Util.getOAuth2UserInfo(aliPayConfig,accessToken,aliuserid);logger.debug(userInfo.getNickName()+"=====支付寶支付====="+userInfo.getUserId());//添加或更新用戶信息String userid = UserInfoService.CreateUserMember(userInfo,memberService);if (!redis.exists(advancekey)) {// 判斷key是否存在logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}if (StringUtils.trimToEmpty(redis.get(advancekey)).equals("")) {logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}JSONObject jsonObject = JSONObject.parseObject(redis.get(advancekey));if (null == jsonObject) {logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}if (redis.get(advancekey + "_lock") != null && !redis.get(advancekey + "_lock").equals("")){logger.debug("二維碼失效");request.setAttribute("code", ResultContant.notuserdqrcode);request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);logger.debug("####################請求結束####################");return;}redis.setex(advancekey + "_lock", 1, "lock");String orderid = BusinessCodeUtils.getOrderNo(jsonObject.getString(SysKey.deviceSn));int money = jsonObject.getIntValue(SysKey.money);int lotterytype = jsonObject.getIntValue(SysKey.lotteryType);if (!orderid.equals("") && money != 0) {//創(chuàng)建訂單boolean bool = OrderServcie.createorder(QRCodeReqInfo, PayTypeConstant.Alipay, aliPayConfig.getAppId(), userid, aliuserid, orderid, jsonObject, lotteryOrderService);if (bool) {//刪除預訂單信息redis.del(advancekey);//一個預訂單只能創(chuàng)建一個訂單String paymoney = BigDecimal.valueOf(Long.valueOf(money)).divide(new BigDecimal(100)).toString();if (!isProduction) {//測試環(huán)境paymoney = BigDecimal.valueOf(Long.valueOf(paymoney)).divide(new BigDecimal(100)).toString();//真實金額除100}logger.debug("是否生產環(huán)境:"+isProduction+";訂單金額為:"+BigDecimal.valueOf(Long.valueOf(money)).divide(new BigDecimal(100)).toString()+";實際支付金額為:"+paymoney);//創(chuàng)建支付寶訂單String responsestr = AlipayPayUtils.createOrderWapPay(domain, aliPayConfig, orderid, lotterytype==0?"即開票":"電腦票", paymoney, "");logger.debug("創(chuàng)建支付寶支付預訂單返回數據:"+responsestr);if (!responsestr.equals("")) {response.setContentType("text/html;charset=UTF-8");response.getWriter().write(responsestr);//直接將完整的表單html輸出到頁面response.getWriter().flush();response.getWriter().close();response.getWriter().append("Served at: ").append(request.getContextPath());} else {logger.debug("創(chuàng)建訂單失敗:創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗:創(chuàng)建支付預訂單失敗");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);}} else {logger.debug("創(chuàng)建訂單失敗;訂單金額或者訂單號數據有誤");request.setAttribute("code", ResultContant.createordererror);request.setAttribute("message", "創(chuàng)建訂單失敗");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);}}} catch (Exception e) {e.printStackTrace();logger.debug("系統(tǒng)異常");request.setAttribute("code", "二維碼失效");request.setAttribute("message", "二維碼失效");request.getRequestDispatcher("../alipay/AliPay.jsp").forward(request, response);}logger.debug("####################請求結束####################");}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }

三、創(chuàng)建微信支付結果回調接口和支付寶支付接口回調接口,用于接收微信或者支付寶的支付結果通知;

aliPayNotify? 支付寶支付成功回調接口

/*** @Title: aliPayNotify* @Description: TODO(支付寶支付成功過回調)* @author chenkun* @return 參數* @return String 返回類型* @throws*/@RequestMapping(value = "/aliPayNotify", method = RequestMethod.POST)public String aliPayNotify() {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();Map<String, String> params = convertRequestParamsToMap(request); // 將異步通知中收到的待驗證所有參數都存放到map中String paramsJson = JSON.toJSONString(params);logger.info("支付寶支付回調,{" + paramsJson + "}");try {SysPayChannel channel = payChannelService.selectByChannelType(PayTypeConstant.Alipay);MyAliPayConfig aliPayConfig = new MyAliPayConfig();aliPayConfig.setAppId(channel.getAppid());String certsrc = channel.getPayCertUrl();Properties propertiesFile = PropertiesUtils.getPropertiesFile(certsrc);if (propertiesFile != null) {aliPayConfig.setPayeeAccount(propertiesFile.getProperty("ALI_PAYEE_ACCOUNT"));aliPayConfig.setAppId(propertiesFile.getProperty("ALI_APP_ID"));aliPayConfig.setAliPayPublicKey(propertiesFile.getProperty("ALI_ALIPAY_PUBLIC_KEY"));aliPayConfig.setAppPayPublicKey(propertiesFile.getProperty("ALI_APP_PAY_PUBLIC_KEY"));aliPayConfig.setAppPrivateKey(propertiesFile.getProperty("ALI_APP_PRIVATE_KEY"));}// 調用SDK驗證簽名boolean signVerified = AlipaySignature.rsaCheckV1(params, aliPayConfig.getAliPayPublicKey(),aliPayConfig.getCharset(), aliPayConfig.getSigntype());if (signVerified) {logger.info("支付寶回調簽名認證成功");// 按照支付結果異步通知中的描述,對支付結果中的業(yè)務內容進行1\2\3\4二次校驗,校驗成功后在response中返回success,校驗失敗返回failurethis.check(params);// 另起線程處理業(yè)務executorService.execute(new AliPayNotifyTask(params,payCallBackService));// 如果簽名驗證正確,立即返回success,后續(xù)業(yè)務另起線程單獨處理// 業(yè)務處理失敗,可查看日志進行補償,跟支付寶已經沒多大關系。return "success";} else {logger.info("支付寶回調簽名認證失敗,signVerified=false, paramsJson:{}", paramsJson);return "failure";}} catch (AlipayApiException e) {logger.error("支付寶回調簽名認證失敗,paramsJson:{},errorMsg:{}", paramsJson, e.getMessage());return "failure";}}

WechatPayNotify??微信支付成功回調

/*** @Title: WechatPayNotify* @Description: TODO(微信支付成功回調)* @author chenkun* @return 參數* @return String 返回類型* @throws*/@RequestMapping(value = "/WechatPayNotify", method = RequestMethod.POST)public String WechatPayNotify() {ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();String result = "";// 返回給微信的處理結果String notityXml = "";// 微信給返回的東西??String inputLine;try {while ((inputLine = request.getReader().readLine()) != null) {notityXml += inputLine;}request.getReader().close();} catch (Exception e) {logger.error("微信支付回調失敗,paramsJson:{},errorMsg:{}", "回調數據獲取失敗", e.getMessage());result = setXml("fail", "xml獲取失敗");e.printStackTrace();}if (StringUtils.isEmpty(notityXml)) {logger.info("微信支付回調失敗:回調數據為空");result = setXml("fail", "xml為空");}try {logger.info("微信支付回調數據:{" + notityXml + "}");Map<String, String> map = WXPayUtil.xmlToMap(notityXml);String result_code = (String) map.get("result_code");// 業(yè)務結果??String return_code = (String) map.get("return_code");// SUCCESS/FAIL??// 解析各種數據??if (result_code.equals("SUCCESS")) {result = setXml("SUCCESS", "OK");} else {logger.info("微信返回的交易狀態(tài)不正確(result_code=" + result_code + ")");result = setXml("fail", "微信返回的交易狀態(tài)不正確(result_code=" + result_code + ")");}// 如果微信返回的結果是success,則修改訂單狀態(tài)??if (return_code.equals("SUCCESS")) {// 這里是我的業(yè)務........................................String sr = payCallBackService.confirmWechatPayOrder(map,true);logger.debug(sr);if (StringUtils.isNotEmpty(sr)){result = setXml("fail",sr);executorService.execute(new WechatPayRefundTask(map,payCallBackService));} else {result = setXml("SUCCESS", "OK");}} else {result = setXml("fail", return_code);}} catch (Exception e) {logger.error("微信支付回調失敗,paramsJson:{},errorMsg:{}", "回調數據處理失敗", e.getMessage());result = setXml("fail", "回調數據處理失敗");e.printStackTrace();}logger.info("回調成功----返回給微信的xml:" + result);return result;}

僅此供給大家,在大家有這方面的需求時,少走彎路!如果對大家有用,請大家多多點贊支持!

尊重原創(chuàng),轉載請注明出處

kung900519

https://blog.csdn.net/kung_com/article/details/89468673

https://www.jianshu.com/p/b0282b43007b

總結

以上是生活随笔為你收集整理的微信、支付宝二码合一扫码支付实现思路的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

天天操导航 | 免费一级片视频 | 人人澡人 | 黄色大片国产 | 亚洲免费国产视频 | 特黄免费av| 综合网在线视频 | 手机在线中文字幕 | 国产精品久久网站 | 久久久久欠精品国产毛片国产毛生 | 国产伦理久久精品久久久久_ | 人交video另类hd | 99爱这里只有精品 | 91精品视频免费 | 色综合天天综合在线视频 | av福利在线免费观看 | 日韩久久久久久久久久 | 18久久久久久 | 在线看不卡av | 婷婷色中文 | 在线色网站 | 亚洲va男人天堂 | 中文字幕4 | 国产精品一区二区62 | 欧美一级艳片视频免费观看 | 五月婷婷色综合 | 久久久久久久久久免费 | 一区电影 | 国产98色在线 | 日韩 | www.com在线观看 | 国产精品福利视频 | 免费激情网 | 五月花丁香婷婷 | 黄色av一区二区三区 | 国产成人精品综合 | 狠狠久久伊人 | 久久久99精品免费观看app | 操老逼免费视频 | 亚洲va欧美va| 亚洲免费精品视频 | av一区二区在线观看中文字幕 | 久久精品国产成人精品 | 国产精品成人一区二区三区吃奶 | 麻豆视频国产精品 | 成人h视频在线播放 | 91精品久久久久久粉嫩 | 国产精品久久久999 国产91九色视频 | 日韩精品一区二区三区电影 | 丝袜+亚洲+另类+欧美+变态 | 免费中文字幕视频 | 伊色综合久久之综合久久 | 婷婷国产v亚洲v欧美久久 | 伊人中文网 | 日韩久久午夜一级啪啪 | 国产91免费看 | 亚洲三级国产 | 深夜免费小视频 | 久草在线观看资源 | 91精品国产欧美一区二区成人 | 色综合天天综合 | 久久免费影院 | 国产精品自产拍在线观看 | 亚洲一区二区视频在线 | 亚洲国产精品视频在线观看 | 在线看国产一区 | 99久在线精品99re8热视频 | 国产精品成人自拍 | 国产精品久久一 | 一区二区三区 中文字幕 | 天天干天天干天天操 | japanese黑人亚洲人4k | 亚洲最大成人免费网站 | 91麻豆国产 | 麻豆视频免费播放 | 欧美91精品久久久久国产性生爱 | 91精品一区二区三区蜜臀 | 天天艹 | 久久伊人热 | 激情网五月 | 久久影院亚洲 | 九九久久久久久久久激情 | www.av免费观看 | 欧美 另类 交 | 国产精品 美女 | 日韩大片在线 | av 一区二区三区四区 | 日韩精品91偷拍在线观看 | 国产一区在线播放 | 日韩在线国产 | 91久久精品一区二区二区 | 亚洲午夜精品一区二区三区电影院 | 久久人人爽人人爽人人片av免费 | 久久午夜鲁丝片 | 狠狠色综合网站久久久久久久 | 日韩欧美在线高清 | 国产精品电影一区 | 99精品偷拍视频一区二区三区 | 麻豆一区在线观看 | 黄色的片子 | 91色九色| 91福利视频久久久久 | 中文字幕免费高清 | 91成人免费视频 | 激情五月婷婷 | 91视频这里只有精品 | 四虎免费av| 97精品在线视频 | 丁香婷婷激情国产高清秒播 | 天天躁天天操 | 91在线看黄 | 精品国产伦一区二区三区观看体验 | 国产精品女人网站 | 成人a在线观看 | 久久久免费观看完整版 | 日产中文字幕 | 中文字幕在线观看免费高清电影 | 91av在| 999久久久久久久久 69av视频在线观看 | av中文字幕不卡 | 超碰97在线资源站 | 天天操天天添天天吹 | 在线蜜桃视频 | 国产99色 | 久久精品亚洲 | 81国产精品久久久久久久久久 | 欧美大片第1页 | 免费在线观看国产黄 | 色综合小说| 最近中文字幕在线中文高清版 | 免费在线观看不卡av | 9色在线视频 | 欧美一级免费黄色片 | 狠狠久久婷婷 | 久久99久久99精品中文字幕 | 久久精彩免费视频 | 99热这里精品 | 一级a性色生活片久久毛片波多野 | 日本久久久精品视频 | 免费涩涩网站 | 久久最新视频 | 久久久一本精品99久久精品 | 四虎视频 | 欧美日韩中文在线视频 | 91综合色| 成人毛片在线观看 | 国产成人免费观看 | 免费在线播放av电影 | 国产精品亚州 | 国产在线91精品 | 丁香婷婷久久久综合精品国产 | 亚洲成人一区 | 五月天久久综合 | 欧美激情精品久久久久 | 日本视频精品 | 天天干 天天摸 天天操 | 成人精品电影 | 日韩在线视频观看免费 | 97免费中文视频在线观看 | 奇米777777 | 日韩xxxxxxxxx | 亚洲精品欧美精品 | 亚洲精品在线二区 | 91在线观看视频网站 | 久久网址 | 欧美一区二区三区在线播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 99国产一区二区三精品乱码 | 中文字幕免费高清在线 | 成人在线观看免费 | 国产在线精 | 国产在线观看你懂的 | 成人高清在线 | 久久人人看 | 在线免费观看亚洲视频 | 久久成年人网站 | 国产精品亚 | 91在线91拍拍在线91 | 18国产精品福利片久久婷 | 亚洲综合色激情五月 | 尤物一区二区三区 | 手机在线黄色网址 | 日韩av专区| 99在线精品免费视频九九视 | 99久久精品免费看国产免费软件 | 91夜夜夜 | 日本精品视频一区二区 | 欧洲精品视频一区 | 超碰在线1 | 国产精品欧美久久久久无广告 | 天海翼一区二区三区免费 | 一区二区不卡在线观看 | 天天操天天摸天天干 | 亚洲女人天堂成人av在线 | www国产亚洲精品久久麻豆 | 久久久久久麻豆 | 日韩免费一区二区 | 亚洲日本激情 | 日本久久久影视 | 精品国产一区二区三区四区vr | 久久99精品久久久久久清纯直播 | 久久久久久国产一区二区三区 | 国产美女在线免费观看 | 国产三级精品在线 | 女人18片| 久久国产一区二区三区 | 国产精品麻豆91 | 黄色a视频免费 | 在线免费看黄网站 | 超级碰碰碰视频 | 日韩精品第1页 | 色播六月天 | 免费又黄又爽的视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 99热这里精品| 久久免费99精品久久久久久 | 国产激情小视频在线观看 | 91成年人视频 | 久久在线一区 | 亚洲精品在线国产 | 人人干网站 | 天天av在线播放 | www.亚洲| 久久超级碰视频 | av在线免费不卡 | 一区二区三区四区影院 | 国产专区视频 | 精品国产免费久久 | 国产美女在线精品免费观看 | 久久高清精品 | 欧美淫视频 | 成年人在线免费看 | 久久精品这里都是精品 | 另类五月激情 | 久久理论电影网 | 日韩电影一区二区在线观看 | 免费婷婷| 亚州精品天堂中文字幕 | 欧美福利精品 | www.亚洲激情.com | www.夜色321.com| 人人澡人人模 | 四虎欧美 | 亚洲经典在线 | 97在线播放 | 色妞色视频一区二区三区四区 | 午夜成人免费电影 | 成人黄色大片在线观看 | 三级动图 | 亚洲综合精品在线 | 在线观看黄色av | 国产精品一区二区三区四区在线观看 | 亚洲免费观看在线视频 | 99精品福利 | 国产一区二区在线视频观看 | 日韩精品高清不卡 | 国产精品免费视频观看 | 午夜精品一二三区 | 国产精品免费在线播放 | 中文字幕美女免费在线 | 欧美a级免费视频 | 99这里只有久久精品视频 | 久久久久久久久久久久久久电影 | 国产色 在线 | 99久久夜色精品国产亚洲96 | 久久久久久久网 | 色综合久久88 | 韩日精品在线观看 | 综合网久久 | 三级av在线免费观看 | 极品久久久久 | 九九爱免费视频在线观看 | 色.www | 婷婷深爱五月 | 亚洲高清网站 | 亚洲精品久久久久www | 97综合视频| 97精品国产97久久久久久粉红 | a级成人毛片 | 97超碰在线久草超碰在线观看 | 黄色亚洲大片免费在线观看 | 国产小视频在线观看免费 | 91麻豆精品久久久久久 | 探花视频在线观看免费版 | 亚洲精品小区久久久久久 | 黄色av免费电影 | www.伊人网 | 亚洲高清激情 | 色吊丝在线永久观看最新版本 | 色播六月天 | 激情视频一区二区三区 | www日韩欧美| 亚洲成人av一区二区 | 天天干天天插 | www国产亚洲精品久久网站 | 中文字幕在线不卡国产视频 | 久久精品久久99 | 91大神精品视频在线观看 | 操操综合网 | 婷婷福利影院 | 91最新网址在线观看 | 天天干夜夜爱 | 超碰免费久久 | 久久免费精品国产 | 欧美日韩激情视频8区 | 中文字幕免费高 | 一区在线观看 | 91欧美国产 | 99av在线视频 | 欧美日韩国产色综合一二三四 | av片免费播放| 日韩丝袜 | 久久久福利视频 | 免费看特级毛片 | 欧美日韩精品影院 | 黄色一级免费网站 | 青草视频在线看 | 久久韩国免费视频 | 日韩高清成人 | 91精品视频免费看 | 五月天天色 | 奇米四色影狠狠爱7777 | 在线视频欧美亚洲 | 国产精品久久久久久一区二区三区 | 国产h在线观看 | 亚洲精品1区2区3区 超碰成人网 | 国产 日韩 欧美 中文 在线播放 | 极品久久久 | 婷婷中文字幕在线观看 | 国产在线观看你懂得 | 国产成人在线网站 | 草久久久 | 亚洲精品高清在线 | 国产91精品高清一区二区三区 | 亚洲aⅴ免费在线观看 | 在线免费国产视频 | 亚洲成人资源网 | 玖玖在线播放 | 国产福利免费在线观看 | 啪啪精品 | 日日摸日日 | 久久久久国产成人精品亚洲午夜 | 在线视频18在线视频4k | 日韩视频免费观看高清完整版在线 | 精品福利网站 | 国产小视频你懂的在线 | 国产999精品久久久久久 | 日韩动态视频 | .国产精品成人自产拍在线观看6 | 日韩伦理一区二区三区av在线 | 天天搞夜夜骑 | 国产精品久久久久一区 | 色偷偷av男人天堂 | 婷婷视频 | 国产视频精品久久 | 欧美午夜视频在线 | 特级黄色片免费看 | 国产精品一区二区三区四区在线观看 | 欧洲亚洲精品 | 欧美日韩一区二区免费在线观看 | 色天天综合网 | 视频一区二区视频 | 在线亚洲人成电影网站色www | 人人精久 | 人人爱人人做人人爽 | 三级视频国产 | va视频在线| 国产黄色片一级三级 | 久久综合综合久久综合 | 欧美日韩精品影院 | 麻豆一区在线观看 | 久久av伊人 | 69亚洲精品 | www视频免费在线观看 | 超级碰视频 | 日韩视频一二三区 | 中文国产字幕 | 亚洲女在线| 中文字幕一区二 | 欧美一区二区视频97 | 六月丁香婷婷网 | 欧美日韩观看 | 最新超碰| 特级黄色一级 | 久久成人一区二区 | 日韩在线电影观看 | 九九综合久久 | 日本黄色大片免费看 | 69欧美视频 | 免费看黄色91 | 成人一区不卡 | 97电影院在线观看 | 九九导航 | 久久99精品热在线观看 | 色网站在线免费观看 | 免费日韩 精品中文字幕视频在线 | 午夜精品久久久久久久99无限制 | 国产麻豆精品久久 | 黄色录像av | 91精品一区在线观看 | 国产亚洲一级高清 | 国产91勾搭技师精品 | 福利av影院 | 欧美日韩另类在线观看 | 精品国产伦一区二区三区观看说明 | 亚洲va欧美 | 日韩精品一区在线观看 | 国产福利一区二区在线 | 国内精品毛片 | av免费在线免费观看 | 五月激情六月丁香 | 国产老妇av| 国产999视频在线观看 | 亚洲毛片一区二区三区 | 亚洲精品女人久久久 | 亚洲激情在线 | 国产福利91精品一区二区三区 | 九九热精品视频在线播放 | 四虎影视国产精品免费久久 | 久久久久久高潮国产精品视 | 久久久精品久久日韩一区综合 | 久久视屏网 | 日韩免费视频一区二区 | 国产综合婷婷 | 久久免费在线观看视频 | 超碰97.com| 亚洲精品三级 | 91精品视频一区二区三区 | 99久热在线精品视频成人一区 | www日韩精品| 亚洲一级片在线观看 | 九九热免费在线视频 | 在线影视 一区 二区 三区 | 亚洲精品自在在线观看 | 国产不卡免费av | 久艹在线观看视频 | 国产日韩欧美在线 | 国产成人精品一区二区三区免费 | 欧美日一级片 | 国产亚洲无 | 精品一区在线看 | 91久久久久久国产精品 | 在线播放 日韩专区 | 日韩精品一区二区三区视频播放 | 在线观看91av | 国产香蕉97碰碰碰视频在线观看 | 日韩欧美大片免费观看 | 亚洲免费在线视频 | 高清av中文在线字幕观看1 | 91久久国产自产拍夜夜嗨 | 欧美乱码精品一区二区 | 丰满少妇对白在线偷拍 | 亚洲视频专区在线 | 亚洲国内精品 | 精品9999| 国产精品婷婷 | 日韩高清观看 | 在线视频一区二区 | 免费看的黄色小视频 | 久久avav | 在线观看黄色大片 | 日韩在线播放欧美字幕 | 久久婷亚洲五月一区天天躁 | 亚洲毛片一区二区三区 | 中文字幕视频三区 | 国产原创av在线 | 日本久久久久久久久 | 成人在线一区二区三区 | 日韩精品首页 | 亚洲欧美日韩在线一区二区 | 香蕉视频导航 | 亚洲视频在线免费看 | 密桃av在线 | 欧美一区在线看 | 国产午夜精品一区二区三区四区 | 黄网站免费看 | 国产精品对白一区二区三区 | 成人h视频 | 国产免费久久久久 | 97精品国自产拍在线观看 | 日韩区欠美精品av视频 | 黄色小网站在线观看 | 亚洲精品在线网站 | 亚洲九九九在线观看 | 99电影| 亚洲综合丁香 | 欧美精品资源 | 久久99精品一区二区三区三区 | 久久精品视频在线免费观看 | 综合色中文| 天天艹天天操 | 久久国产精品网站 | 免费看av片网站 | 中文字幕一区二区三区乱码在线 | 欧美成人精品欧美一级乱 | 亚洲影视九九影院在线观看 | 国产精品久久中文字幕 | 日韩精品资源 | 免费观看国产视频 | 久久精品香蕉 | 国产高清不卡一区二区三区 | 国产免费又黄又爽 | 国产在线 一区二区三区 | 最近能播放的中文字幕 | 激情在线免费视频 | 97精产国品一二三产区在线 | 国产精品一区二区美女视频免费看 | 国产精品综合久久久久久 | 免费麻豆网站 | 美女免费电影 | 国产五月色婷婷六月丁香视频 | 最近中文字幕大全 | 伊人国产在线观看 | 六月丁香社区 | 日韩视频欧美视频 | 午夜影院日本 | 国产精品久久久免费看 | 青春草免费在线视频 | 在线观看亚洲国产 | 少妇av网| 亚洲欧美一区二区三区孕妇写真 | 午夜久久美女 | 中文字幕日韩高清 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 五月婷在线视频 | 久久精品国产第一区二区三区 | 97久久精品午夜一区二区 | 国产专区在线 | 日韩在线观看中文字幕 | 娇妻呻吟一区二区三区 | 在线网址你懂得 | 国产精品久久免费看 | 一区二区不卡在线观看 | 欧美一级片播放 | 男女拍拍免费视频 | 成人免费在线看片 | 国产日韩欧美在线观看视频 | 成人天堂网 | 婷婷av在线| 国产黄在线播放 | 国产精品伦一区二区三区视频 | 中文字幕 影院 | 色综合久久88色综合天天免费 | www.亚洲精品视频 | 国产麻豆精品一区 | 操天天操 | 最新av免费在线观看 | av黄色影院 | 不卡的av电影 | 免费看片在线观看 | 久久精品之 | 婷婷丁香在线 | 国产精品福利无圣光在线一区 | 中文字幕在线观看第三页 | 嫩模bbw搡bbbb搡bbbb| 成人亚洲精品久久久久 | 亚洲高清免费在线 | 国产久视频| 最近中文字幕视频完整版 | 高清中文字幕 | 在线色亚洲 | 午夜影院三级 | 国产午夜精品在线 | 激情开心网站 | 日韩欧美69 | 久久精品久久精品久久 | 91女神的呻吟细腰翘臀美女 | 国产超碰97 | 狠狠干成人综合网 | 91精品国产福利在线观看 | 国产精品18久久久久vr手机版特色 | 国产明星视频三级a三级点| 日韩亚洲在线 | 精品综合久久久 | 久久在视频 | 91精品久久久久久粉嫩 | 日韩免费看视频 | 国产高清av免费在线观看 | 综合在线观看 | 久久久久久久久毛片精品 | 中文字幕国产精品一区二区 | 免费a现在观看 | 91片在线观看| 色国产精品一区在线观看 | 欧美激情va永久在线播放 | 亚洲涩涩网 | 日韩天天综合 | 一级国产视频 | 色就色,综合激情 | 日本黄色片一区二区 | 亚洲精品午夜久久久 | www日日 | 91网免费看 | 99久久精品国产欧美主题曲 | 日韩电影久久 | 热久久免费国产视频 | 一本色道久久综合亚洲二区三区 | 国产视频一区在线 | 成人黄色片免费看 | 国产资源精品在线观看 | 精品美女在线视频 | 亚洲一区日韩在线 | 日本aaaa级毛片在线看 | 日韩一级精品 | 国产黄色成人av | 久久久国产高清 | www.久久99| 天天摸天天操天天爽 | 一区二区三区四区免费视频 | 亚洲精品99久久久久中文字幕 | 精品国模一区二区 | 国产精品va在线播放 | 最新精品视频在线 | a级片韩国 | 免费黄色特级片 | 伊人五月天婷婷 | 天天操福利视频 | 国产精品成人av电影 | 五月婷婷在线播放 | 欧美日韩一区二区在线 | 久久黄色片 | 国产一区二区三区网站 | 九九免费在线看完整版 | 久久影院亚洲 | 一级黄色在线视频 | 中文在线8新资源库 | 黄色网中文字幕 | 国产精品久久二区 | 成人免费看片网址 | 亚洲精品99久久久久中文字幕 | 中文字幕人成一区 | 狠狠色丁香婷综合久久 | 国产成人a亚洲精品 | 在线视频观看你懂的 | 在线观看中文av | 欧美性色黄大片在线观看 | 韩国中文三级 | 91亚洲激情 | 国产一卡在线 | 亚洲国产精品成人女人久久 | 国产精品久久电影观看 | 色丁香婷婷 | 狠狠色丁香久久婷婷综合丁香 | 成人网页在线免费观看 | 99这里只有 | 国产午夜精品一区二区三区 | 不卡视频在线看 | japanesexxxhd奶水 国产一区二区在线免费观看 | 青青草国产精品视频 | 国产高清一 | 91在线国产观看 | 亚洲精品视频在线观看免费 | 国产午夜三级一区二区三桃花影视 | 欧美日韩三级 | 中文字幕在线观看资源 | 日韩久久精品一区 | 天天做天天爱天天爽综合网 | 超碰人人国产 | 久久精品网站免费观看 | 日本激情视频中文字幕 | 国产精品久久久久av免费 | 中文字幕视频播放 | 狠狠干狠狠插 | 国产精彩在线视频 | 国产成人久久精品77777综合 | 国产福利一区二区三区视频 | 在线 视频 一区二区 | 色婷婷狠狠操 | 99999精品视频 | 精品久久久免费视频 | 人人爱人人做人人爽 | 精品视频123区在线观看 | 亚洲国产精品成人av | 91av99| 日本特黄一级片 | 欧美在线观看视频一区二区三区 | 色网站在线免费观看 | 欧美国产日韩一区二区三区 | 中文字幕在线观看日本 | 欧美激情综合五月色丁香小说 | 日本免费一二三区 | 日韩精品一区二区三区高清免费 | 九九久久免费视频 | 国产热re99久久6国产精品 | 精品人人爽 | 久久激情小说 | 成人免费在线网 | 欧美日韩精品国产 | 久久这里有精品 | 69精品在线观看 | 精品久久网 | 狠狠撸电影| 三级av片| 波多野结衣电影一区二区 | 91精品国产成人 | 黄色片免费在线 | 久久伊人综合 | 日韩aa视频 | 亚洲国产美女精品久久久久∴ | 久久8精品 | 久久久999精品视频 国产美女免费观看 | 久久综合九色综合97_ 久久久 | 在线播放亚洲激情 | 香蕉视频日本 | 中文字幕在线观看免费高清完整版 | 日韩精品2区 | 在线不卡的av | 奇米777777| 成人a视频片观看免费 | 国产极品尤物在线 | av一本久道久久波多野结衣 | 亚洲一区二区麻豆 | 久久九九影院 | 成年人视频在线观看免费 | 伊人网av | 中文字幕一区二区三区乱码在线 | 91欧美视频网站 | 中文字幕在线观看视频免费 | 中文字幕免费中文 | 在线免费观看一区二区三区 | 欧美日韩在线网站 | 久久激情婷婷 | 激情婷婷综合网 | 欧美专区亚洲专区 | 99这里精品 | 国产亚洲免费观看 | 粉嫩高清一区二区三区 | 国产亚洲一区 | 99精品国产一区二区三区麻豆 | 日韩草比 | 欧美激情精品一区 | 91丨精品丨蝌蚪丨白丝jk | 天天射天天操天天色 | 久久美女免费视频 | 色鬼综合网 | 久久亚洲福利视频 | 69av在线播放 | 成年人在线观看视频免费 | 欧美另类高清 | 四虎在线观看网址 | 午夜久久久久久久久久久 | 日本久久成人 | 国产成人精品久久二区二区 | 麻豆成人精品 | 久久免费视频在线 | 日韩免费一区 | 日韩一区二区三 | 日韩精品 在线视频 | 亚洲精欧美一区二区精品 | 美女精品网站 | 日本久久视频 | 91精品国产高清自在线观看 | 日韩激情视频在线 | 日韩欧美高清一区二区 | 欧美性色网站 | 福利视频入口 | 成人精品久久久 | 国产999精品久久久 免费a网站 | 久久人91精品久久久久久不卡 | 午夜美女福利直播 | 精品久久久久久久久中文字幕 | 免费高清男女打扑克视频 | 91欧美精品| 亚洲3级| 国产精品午夜久久久久久99热 | 丁香花在线视频观看免费 | 国产精品视频不卡 | 在线观影网站 | 高清精品在线 | 综合网欧美 | 国产视频网站在线观看 | 日本高清xxxx| 99精品国产一区二区三区麻豆 | 国产福利在线不卡 | 亚洲精品中文字幕在线 | 五月婷婷视频在线 | 在线视频欧美精品 | 久久久久免费电影 | 日韩美av在线 | 中文字幕精品三区 | 激情欧美一区二区三区免费看 | 人人插人人做 | 在线观看中文字幕2021 | 久草在线中文视频 | 人成免费网站 | 色偷偷男人的天堂av | 国产高清在线永久 | 开心激情婷婷 | 亚洲伊人第一页 | 午夜美女网站 | 国产视频亚洲精品 | 欧美精品久久人人躁人人爽 | 久久亚洲二区 | www.婷婷com | 精品国产一区二区三区久久久蜜臀 | 国内精品久久久久影院男同志 | 精品久久久久久久久久国产 | 国产伦理久久 | 国产黄色av影视 | 久久综合婷婷综合 | 成人精品99 | 欧美日韩高清一区二区 | 一区二区视频播放 | 成人久久影院 | 99麻豆久久久国产精品免费 | 亚洲成人频道 | 色婷婷狠狠五月综合天色拍 | 日韩中文字幕免费在线播放 | 久久综合影音 | 九九欧美视频 | 日韩免费网址 | 狠狠撸电影 | 日韩高清无线码2023 | 国产精品麻豆欧美日韩ww | 91精品国产综合久久福利不卡 | 极品久久久久久久 | 中文字幕永久在线 | 色婷婷在线视频 | 美女天天操 | 在线香蕉视频 | 欧美色噜噜噜 | 激情综合网色播五月 | 欧美成人基地 | 97色噜噜| 成年人在线免费看视频 | 国产精品久久久av久久久 | 日韩理论在线观看 | www.av小说| 免费久久99精品国产婷婷六月 | 国产亚洲精品成人 | 狠狠的操狠狠的干 | 亚洲高清不卡av | 婷婷午夜天 | 亚洲草视频 | 久久免费的精品国产v∧ | 国产高清av| 中文字幕麻豆 | 狠狠色狠狠色综合日日92 | 欧美另类激情 | 国产精品久久久一区二区三区网站 | 中文字幕免费观看全部电影 | 国产视频在 | 超碰公开在线观看 | 日日操狠狠干 | 国产精品久久久久免费a∨ 欧美一级性生活片 | a视频免费在线观看 | 激情开心网站 | 在线v| 在线日韩 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 亚洲欧洲在线视频 | 国产亚洲精品女人久久久久久 | 日韩电影在线看 | 国产99久久久国产精品免费二区 | 久久免费视频这里只有精品 | 不卡视频在线 | 国产精品不卡在线播放 | 免费观看91 | 国产精品久久久久久模特 | 国产人成在线视频 | 免费在线观看一区 | 日韩v在线 | 久久久国产视频 | 99色精品视频 | 国产精品激情偷乱一区二区∴ | 18国产精品白浆在线观看免费 | 国产一级二级在线播放 | 三上悠亚一区二区在线观看 | 91在线91拍拍在线91 | 看国产黄色片 | 三级av在线免费观看 | 亚洲国产成人在线观看 | 免费福利在线 | 91精品伦理 | 福利视频网址 | 国产不卡一二三区 | 俺要去色综合狠狠 | 亚洲视频大全 | 热re99久久精品国产99热 | 最新的av网站 | 国产无套一区二区三区久久 | 在线视频国产区 | 久久精品在线免费观看 | 日本99精品 | 亚洲黄色成人网 | 狠狠狠综合 | 亚洲艳情| .国产精品成人自产拍在线观看6 | 国产精品美女视频网站 | 最近日韩免费视频 | 色综合色综合久久综合频道88 | 91精品国产乱码久久桃 | av高清一区二区三区 | 久久香蕉影视 | 国产精品免费观看国产网曝瓜 | 99re中文字幕 | 韩日视频在线 | 日韩久久影院 | 国产黄色精品视频 | 国产 av 日韩| 日韩在线网址 | 偷拍福利视频一区二区三区 | 中文成人字幕 | 亚洲黄色av网址 | 免费观看91 | 久热久草 | 91大神精品视频在线观看 | 一级性av | 欧美日韩高清在线一区 | 欧美在一区 | av免费看av | 看国产黄色片 | 久草精品视频在线观看 | 91精品少妇偷拍99 | 最近最新中文字幕视频 | 国产精品一区二区在线观看 | 中文字幕a∨在线乱码免费看 | 五月婷婷一区二区三区 | 日韩视频在线观看免费 | 在线 成人 | 国产日韩精品在线观看 | 91精品一区二区三区蜜桃 | 一级黄色片在线 | 国产最新福利 | 久久成年人视频 | 国产一区二区精品在线 | 日韩网站在线看片你懂的 | 国产美女精品在线 | 狠狠色狠狠色综合日日小说 | 五月天色综合 | 成年人毛片在线观看 | 久久99国产综合精品 | 午夜精品一区二区三区在线 | 亚洲国产av精品毛片鲁大师 | 精品国内自产拍在线观看视频 | 免费高清国产 | 国产欧美高清 | 亚洲春色奇米影视 | 欧美一区二区精品在线 | av一区在线| 欧美成人tv| 国内精品久久久久久久久久久 | 国产午夜精品视频 | 亚洲毛片在线观看. | 日日夜夜91| 操操操com | 天天色综合1 | 91传媒免费观看 | 久久99国产精品久久99 | 久久国产精品视频免费看 | 国产小视频91 | 国产婷婷在线观看 | 午夜三级福利 | 日韩欧美网址 | 国产精品久久久毛片 | 天堂av在线网址 | 天天色天天干天天色 | 日韩网 | 又黄又爽又湿又无遮挡的在线视频 | 国产精品久久久久高潮 | 爱av在线网| 成人啊 v | 精品免费视频123区 午夜久久成人 | 五月天亚洲婷婷 | 国产精品午夜久久 | 中文字幕黄网 | 国产精品一区一区三区 | 久操97 | 亚洲精品麻豆视频 | 亚洲人毛片 | 国产精品九九热 | 久久久久成 | 成年人在线视频观看 | 国内久久精品视频 | 亚洲一区二区精品3399 | 国产专区日韩专区 | 日韩免费中文 | 日本一区二区高清不卡 | 国产视频高清 | 狠狠网 | 国产免费作爱视频 | 天天插视频 | 丁香婷婷久久久综合精品国产 | 蜜臀av性久久久久蜜臀av | 一区三区在线欧 | 国产亚洲精品日韩在线tv黄 | www..com黄色片 | 欧美综合干 | 国模一区二区三区四区 | 亚洲精品午夜国产va久久成人 | www.久草.com| 91大神在线看| 热re99久久精品国产66热 | 日韩一级片观看 | 波多野结衣视频一区二区 | 久久精品国产精品亚洲 | 欧美一级片免费 | av中文字幕在线电影 | 精品国产一区二区三区免费 |