一点一滴开始搭建自己的项目框架之支付宝篇 支付宝PC支付

      APP支付:APP支付

      其实支付宝的PC支付和APP的支付区别并不是很大区别只是在预下单这一块 APP是直接拿到加签串拉起支付宝进行直接支付  PC是拿到支付宝的串去生成二维码供支付宝直接扫描进行支付。好了 直接开始上源码

      APP支付源码

/**
	 * 
	 * @Title: sitePayAli   
	 * @Description: TODO(站点充值支付宝支付)   
	 * @author 
	 * @date 2018-7-24
	 * @param request
	 * @return
	 */
	@RequestMapping(value = "trans", method = RequestMethod.POST)
	@ResponseBody
	@CrossOrigin(origins="*",maxAge=3600)
	public String trans(PayModelVo payModelVo){
		ResultModel resultModel = new ResultModel();
		try {
			//回调地址
			payModelVo.setNotifyUrl(AliPayConfig.NOTIFY_URL);
			payModelVo.setReturnUrl(AliPayConfig.RETURN_URL);
			//返回支付宝请求
			String orderString = AliPayConfig.aliPayPc(payModelVo);
			resultModel.setError(200);
			resultModel.setErrorCode("10007");
			resultModel.setMsg("预下单成功");
			resultModel.setResult(orderString);
		}catch (Exception e) {
			log.error("支付宝支付异常", e);
			resultModel.setError(500);
			resultModel.setErrorCode("10008");
			resultModel.setMsg("预下单失败");
			resultModel.setResult("");
		}
		log.info("支付宝支付pc:" + resultModel);
		return String.valueOf(resultModel.getResult());
	}

直接调取这个方法可以直接发起支付 向支付宝发起预下单请求方法

public static String aliPayPc(PayModelVo payModelVo) {
		AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
		alipayRequest.setReturnUrl(payModelVo.getReturnUrl());// 前台通知
		alipayRequest.setNotifyUrl(payModelVo.getNotifyUrl());// 后台回调
		JSONObject bizContent = new JSONObject();
		bizContent.put("out_trade_no", payModelVo.getOutTradeNo());
		bizContent.put("total_amount", payModelVo.getMoney());// 订单金额:元
		bizContent.put("subject", payModelVo.getSubject());// 订单标题
		bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
		bizContent.put("body", payModelVo.getBody());
		bizContent.put("enable_pay_channels", "moneyFund,debitCardExpress");
		String biz = bizContent.toString().replaceAll("\"", "'");
		alipayRequest.setBizContent(biz);
		String form = Constants.FAIL;
		AlipayClient alipayClient = getAlipayClient();
		try {
			form = alipayClient.pageExecute(alipayRequest).getBody();
		} catch (AlipayApiException e) {
		}
		return form;
	}

OK  这样PC就可以直接拿到串进行二维码的生成了  也可以后台直接生成放到固定的服务器上 发给PC一个链接 让他显示 这样更加安全一些

二维码生成:二维码生成附带水印

下一篇 支付宝的提现功能

猜你喜欢

转载自blog.csdn.net/qq_38689769/article/details/86362900
今日推荐