Browse Source

支付宝电脑网站支付调整

huangct 8 years ago
parent
commit
cc1c63e337

+ 1 - 1
donate-service/src/main/java/com/uas/service/donate/api/AlipayApi.java

@@ -36,7 +36,7 @@ public class AlipayApi {
      * @throws {AlipayApiException}
      * @throws IOException
      */
-    public static void tradePage(HttpServletResponse httpResponse, AlipayTradePagePayModel model, AlipayClient alipayClient, String notifyUrl, String returnUrl) throws AlipayApiException, IOException{
+    public static void tradePage(HttpServletResponse httpResponse, AlipayTradePagePayModel model, AlipayClient alipayClient, String returnUrl, String notifyUrl) throws AlipayApiException, IOException{
         AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
         alipayRequest.setBizModel(model);
         alipayRequest.setNotifyUrl(notifyUrl);

+ 39 - 29
donate-service/src/main/java/com/uas/service/donate/controller/AlipayController.java

@@ -5,11 +5,11 @@ import com.alipay.api.AlipayApiException;
 import com.alipay.api.AlipayClient;
 import com.alipay.api.DefaultAlipayClient;
 import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.domain.AlipayTradePagePayModel;
 import com.alipay.api.domain.AlipayTradeWapPayModel;
 import com.alipay.api.internal.util.AlipaySignature;
 import com.alipay.api.request.AlipaySystemOauthTokenRequest;
 import com.alipay.api.request.AlipayTradeAppPayRequest;
-import com.alipay.api.request.AlipayTradePagePayRequest;
 import com.alipay.api.request.AlipayUserInfoShareRequest;
 import com.alipay.api.response.AlipaySystemOauthTokenResponse;
 import com.alipay.api.response.AlipayTradeAppPayResponse;
@@ -98,7 +98,7 @@ public class AlipayController {
             model.setOutTradeNo(projectRecode.getId().toString());
             model.setProductCode("QUICK_WAP_PAY");
 
-            AlipayApi.wapPay(response, model, alipayClient, AlipayConfig.NOTIFY_URL, AlipayConfig.RETURN_URL);
+            AlipayApi.wapPay(response, model, alipayClient, AlipayConfig.RETURN_URL, AlipayConfig.NOTIFY_URL);
         } catch (Exception e) {
             response.getWriter().write(e.getMessage());
             e.printStackTrace();
@@ -111,6 +111,7 @@ public class AlipayController {
     @ResponseBody
     @RequestMapping(value = "/pcPay", method = RequestMethod.GET)
     public void pcPay(@RequestParam String jsonStr, HttpServletRequest request, HttpServletResponse response) throws IOException {
+        //AlipayTradePayModel  sellerId
         ProjectRecode projectRecode= null;
         try {
             projectRecode = this.createProjectRecode(jsonStr);
@@ -119,14 +120,14 @@ public class AlipayController {
             return;
         }
 
-        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request
+        /*AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request
         alipayRequest.setReturnUrl(AlipayConfig.RETURN_URL);
         alipayRequest.setNotifyUrl(AlipayConfig.NOTIFY_URL);//在公共参数中设置回跳和通知地址
         alipayRequest.setBizContent("{" +
                 "    \"out_trade_no\":" + projectRecode.getId().toString() + "," +
                 "    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
                 "    \"total_amount\":" + projectRecode.getAmount().toString() + "," +
-                "    \"subject\":" + "不晓得填什么" + "," +
+                "    \"subject\":" + "PC网页支付" + "," +
                 "    \"body\":" + projectRecode.getProjectName() + "," +
                 "    \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +
                 "  }");//填充业务参数
@@ -139,30 +140,39 @@ public class AlipayController {
         response.setContentType("text/html;charset=" + AlipayConfig.CHARSET);
         response.getWriter().write(form);//直接将完整的表单html输出到页面
         response.getWriter().flush();
-        response.getWriter().close();
-
-//        try {
-//            String totalAmount = "0.01";
-//            String outTradeNo = NumberGenerator.generateId();
-//
-//            String returnUrl = AlipayConfig.RETURN_URL;
-//            String notifyUrl = AlipayConfig.NOTIFY_URL;
-//            AlipayTradePagePayModel model = new AlipayTradePagePayModel();
-//
-//
-//            model.setTimeoutExpress("5m");//该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。该参数数值不接受小数点, 如 1.5h,可转换为 90m。
-//            //model.setSellerId("2088102171369624");
-//            model.setOutTradeNo(outTradeNo);
-//            model.setProductCode("FAST_INSTANT_TRADE_PAY");
-//            model.setTotalAmount(totalAmount);
-//            model.setSubject("PC支付测试");
-//            model.setBody("PC支付测试body");
-//            model.setPassbackParams(URLEncoder.encode("附加消息", "UTF-8"));
-//
-//            AlipayApi.tradePage(response,model,alipayClient,notifyUrl,returnUrl);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
+        response.getWriter().close();*/
+
+        try {
+            AlipayTradePagePayModel model = new AlipayTradePagePayModel();
+            model.setTimeoutExpress("30m");//该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。该参数数值不接受小数点, 如 1.5h,可转换为 90m。
+            //model.setSellerId("2088102171369624");
+            model.setOutTradeNo(projectRecode.getId().toString());
+            model.setProductCode("FAST_INSTANT_TRADE_PAY");
+            model.setTotalAmount(projectRecode.getAmount().toString());
+            model.setSubject(projectRecode.getProjectName());
+            model.setBody("PC网页支付");
+            model.setPassbackParams(URLEncoder.encode("附加消息", "UTF-8"));
+            /*PC扫码支付的方式,支持前置模式和跳转模式。
+                前置模式是将二维码前置到商户
+                的订单确认页的模式。需要商户在
+                自己的页面中以 iframe 方式请求
+                支付宝页面。具体分为以下几种:
+                0:订单码-简约前置模式,对应 iframe 宽度不能小于600px,高度不能小于300px;
+                1:订单码-前置模式,对应iframe 宽度不能小于 300px,高度不能小于600px;
+                3:订单码-迷你前置模式,对应 iframe 宽度不能小于 75px,高度不能小于75px;
+                4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。
+
+                跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。
+                2:订单码-跳转模式
+            */
+            //model.setQrPayMode("2");//跳转模式
+            model.setRequestFromUrl("http://lj.ubtob.com/index");
+
+
+            AlipayApi.tradePage(response,model,alipayClient,AlipayConfig.RETURN_URL,AlipayConfig.NOTIFY_URL);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
 
     }
 
@@ -184,7 +194,7 @@ public class AlipayController {
         AlipayTradeAppPayRequest alipayTradeAppPayRequest = new AlipayTradeAppPayRequest();
         //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
         AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
-        model.setBody("不知道填什么");
+        model.setBody("APP端支付");
         model.setSubject(newProjectRecode.getProjectName());
         model.setOutTradeNo(newProjectRecode.getId().toString());
         model.setTimeoutExpress("30m");