您的位置:首页 > 运维架构 > 网站架构

java接入支付宝手机网站支付

2017-03-06 12:12 573 查看
适用范围:申请支付宝手机网站支付接口并完成认证,适用于手机wap网页,微信默认不支持可通过引导用户至浏览器支付,发送请求后调用支付宝客服端完成支付,如果没有安装APP则使用网页支付。

支付宝其他支付方式,如即时到账,APP支付类似。

第一步 导入依赖

<!-- 支付宝支付依赖 -->
<!-- https://mvnrepository.com/artifact/com.pentahohub.nexus/alipay-sdk-java -->
<dependency>
<groupId>com.pentahohub.nexus</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>20170209153303</version>
<scope>system</scope>
<systemPath>${basedir}/libs/alipay-sdk-java20170209153223.jar</systemPath>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>注:
${basedir}为您自己的jar包存放地址,将支付宝jar下载至本地,避免冲突

第二步 java发起支付请求

public void alipay(WObject wObject)
{
// JSONObject id = wObject.fnOf(0);
// HttpServletRequest request= (HttpServletRequest) wObject.getRequest().getOriginalRequest();
try
{
HttpServletResponse httpResponse = (HttpServletResponse) wObject.getRequest().getOriginalResponse();
// APPID,申请通过后在支付宝商户中心查看
String APP_ID = "";
// 商戶私钥,在支付宝商户中心配置
String APP_PRIVATE_KEY = "";
// 商戶公钥,在支付宝商户中心配置
String ALIPAY_PUBLIC_KEY = "";

// 上线正式地址
//            String gateway = "https://openapi.alipay.com/gateway.do";
// 沙箱测试地址
String gateway = "https://openapi.alipaydev.com/gateway.do";
AlipayClient alipayClient = new DefaultAlipayClient(gateway,
APP_ID, APP_PRIVATE_KEY, "json", "UTF-8", ALIPAY_PUBLIC_KEY, "RSA2"); //获得初始化的AlipayClient
AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//创建API对应的request
alipayRequest.setReturnUrl("http://www.xxxx.com/CallBack/return_url.jsp");
alipayRequest.setNotifyUrl("http://www.xxxx.com/CallBack/notify_url.jsp");//在公共参数中设置回跳和通知地址
alipayRequest.setBizContent("{" +
"    \"out_trade_no\":\"20170320010101002\"," +
"    \"total_amount\":\"88.88\"," +
"    \"subject\":\"Iphone6 16G\"," +
"    \"seller_id\":\"2088102169838480\"," +
"    \"product_code\":\"QUICK_WAP_PAY\"" +
"  }");//填充业务参数
String form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
httpResponse.setContentType("text/html;charset=" + "UTF-8");
httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
} catch (Exception e)
{
e.printStackTrace();
}

}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: