|
|
@@ -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");
|