项目中集成阿里支付

在集成的时候我们使用沙箱环境,如果沙箱环境测试通过后我们只需要把沙箱环境切换到正式环境即可

首先登录到阿里的支付开发环境上如下,使用支付宝登录即可:

https://auth.alipay.com/login/ant_sso_index.htm?redirectType=self&bizFrom=openhome&goto=https%3A%2F%2Fspcenter.alipay.com%2Foperation%2Fmini-portal%2Fdashboard

登录后点击控制台

进入到沙箱中

进入到沙箱环境后,有几个部分需要填写一下

把应用网关设置完后,主要看一下RSA2密钥,沙箱会自动的给你填写个应用公钥,但是没有应用私钥,需要我们重新生成一下,使用支付宝给提供的密钥生成器,我们先点开查看一下。

然后再点击更换应用公钥

下载安装好后

生成好后我们把应用公钥复制粘贴到开发环境里边就可以了,因为我们是简单的测试一下,所以就使用公钥类型的方式就可以了,不需要crs证书

这样我们支付宝开发环境就配置好了。

接下来我们就可以按照官网给的代码示例测试写代码了。

点击文档,然后再点击网页应用

这里有一段代码去支付宝下订单时准备参数,然后让网页重定向到支付宝下订单,下完订单后支付宝走支付流程

我们需要的把支付的sdk使用maven的方式集成进来

我使用的老版的sdk,大家可以尝试使用一下新版的sdk

注意的地方就是验签问题。

可以把参数sys_service_provider_id去掉

参数out_trade_no订单编号不能重复。

public   void   doPost (HttpServletRequest httpRequest,
                      HttpServletResponse httpResponse)   throws  ServletException, IOException  {
    AlipayClient alipayClient =  new  DefaultAlipayClient( "https://openapi.alipay.com/gateway.do" , APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);  //获得初始化的AlipayClient 
    AlipayTradePagePayRequest alipayRequest =  new  AlipayTradePagePayRequest(); //创建API对应的request 
    alipayRequest.setReturnUrl( "http://domain.com/CallBack/return_url.jsp" );
    alipayRequest.setNotifyUrl( "http://domain.com/CallBack/notify_url.jsp" ); //在公共参数中设置回跳和通知地址 
    alipayRequest.setBizContent( "{"  +
         "    \"out_trade_no\":\"20150320010101001\","  +
         "    \"product_code\":\"FAST_INSTANT_TRADE_PAY\","  +
         "    \"total_amount\":88.88,"  +
         "    \"subject\":\"Iphone6 16G\","  +
         "    \"body\":\"Iphone6 16G\","  +
         "    \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\","  +
         "    \"extend_params\":{"  +
         "    }" +
         "  }" ); //填充业务参数 
    String form= "" ;
     try  {
        form = alipayClient.pageExecute(alipayRequest).getBody();  //调用SDK生成表单 
    }  catch  (AlipayApiException e) {
        e.printStackTrace();
    }
    httpResponse.setContentType( "text/html;charset="  + CHARSET);
    httpResponse.getWriter().write(form); //直接将完整的表单html输出到页面 
    httpResponse.getWriter().flush();
    httpResponse.getWriter().close();
}

如果成功以后就会重定向到支付页面

然后可以下载沙箱支付宝,或者登录沙箱账号进行支付

登录沙箱账号进行支付需要注意的是,不能在登录沙箱的环境的浏览器进行支付,不然会出现提示预防钓鱼网站,

如果需要在登录沙箱环境的浏览器测试就把缓存全部清楚掉就可以了


版权声明:本文为u011447164原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。