支付宝H5支付

一、应用开发前准备工作

1、去蚂蚁金服开放平台 https://open.alipay.com/platform/manageHome.htm,登录。

2、开发者中心-->网站&移动应用 点击

3、点击支付接入

4、创建应用,输入名称(注意:名称中不要含有支付宝,阿里巴巴等字样,亲测aliPay也不行)

5、修改应用图标(不要使用其他网站图标,到时候会审核不通过),选择应用功能(我的只剩了手机网站支付)

6、下载签名工具,https://docs.open.alipay.com/291/105971/,下载windows版,解压,打开.bat文件,点击生成秘钥,会生成商户私钥和应用秘钥,并且会以文本的方式保存起来。

7、回到开放平台 的应用完善页面,点击设置应用公钥,接收验证码,输入上一步生成的商户应用公钥,点击确定。然后会生成对应的支付宝公钥,商户应用公钥和支付宝公钥要明确区分开,开发代码中要使用到 支付宝公钥  和 商户应用私钥

8、提交审核,一天之后,审核完成,显示应用上线。此后,可以开始后台代码开发。(正式项目需要商户签约)

二、支付宝支付代码开发

1、引入java SDK 依赖,        

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>3.0.52.ALL</version>
        </dependency>

2、写一个参数类,方便修改

3、申请个虚拟域名,保证支付回调正常。(可以参考https://natapp.cn/article/natapp_newbie,内网穿透)

4、调起支付宝支付页面,新建servlet,写方法,out_trade_no 自定义订单号,并且保证唯一,total_amount 支付金额,单位元,product_code 固定值,其他 是关于商品相关的属性。

public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
throws ServletException, IOException {
    try {
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig2.URL,         AlipayConfig2.APPID,
        AlipayConfig2.RSA_PRIVATE_KEY, "json", "UTF-8", AlipayConfig2.ALIPAY_PUBLIC_KEY, "RSA2"); 
        AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
        JSONObject order = new JSONObject();
        order.put("out_trade_no", "23242345rfg34534fertgedf");
        order.put("subject", "songSir支付");
        order.put("product_code", "QUICK_WAP_WAY");
        order.put("body", "儿童泳装|泳具");
        order.put("total_amount", "2000.00");
        order.put("subject", "竞浪男童平角泳裤");
        alipayRequest.setBizContent(order.toString());
        /**
        * 在公共参数中设置回跳和通知地址
        */
        alipayRequest.setNotifyUrl(AlipayConfig2.NOTIFY_URL);
        alipayRequest.setReturnUrl(AlipayConfig2.RETURN_URL);
        String form = alipayClient.pageExecute(alipayRequest).getBody(); 
        httpResponse.setContentType("text/html;charset=utf-8");
        httpResponse.getWriter().write(form);
        httpResponse.getWriter().flush();
        httpResponse.getWriter().close();
    } catch (AlipayApiException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

5、在电脑打开谷歌浏览器,设置为手机浏览器模式,打开链接 http://j5d2bz.natappfree.cc/aliPay/AliPay (其中,域名对应的我的localhost:8080,aliPay是项目名,最后面Alipay是servlet方法名)

此时,即可打开支付宝登录页面。在手机端访问可以打开支付宝客户端。

 

6、回调方法和支付完成的返回方法。

回调方法,做一系列 订单操作。支付完成返回页可以是订单详情页。

 

展开阅读全文

没有更多推荐了,返回首页