H5集成支付宝App支付客户端+服务端(java)
H5集成⽀付宝App⽀付客户端+服务端(java)
由于最近项⽬需要接⼊第三⽅开发,⽀付宝⽀付,⽀付,OSS图⽚上传以及短信服务。为避免第⼀次开发⽀付宝再次花时间查看⽂档,今天总结⼀下接⼊⽀付宝的过程,以及接⼊过程中遇到的问题。
2.在已申请应⽤中查看签约状态,若状态为已⽣效才可以继续开发,签约状态查看如下所⽰,注意:未完成签约的应⽤是⽆法接⼊成功的。
3.配置密钥
4.客户端开发
客户端开发相对简单,可根据需要⾃⾏添加业务。
1var channel=null;
惠普打印机墨盒
2// 1. 获取⽀付通道
最喜小儿无赖
3                    Channels(function(channels){
4                        channel=channels[0];
5                    },function(e){
6                        alert("获取⽀付通道失败:"+e.message);
7                    });
8var ALIPAYSERVER=AppDataURL + '/weixinpay.do?price=1';
9// 2. 发起⽀付请求
10function pay(id){
11var PAYSERVER='';
12if(id=='alipay'){
13                        PAYSERVER=ALIPAYSERVER;
14                    }else if(id=='wxpay'){
15                        PAYSERVER=WXPAYSERVER;
身份证过期了能买火车票吗
16                    }else{
17                        plus.nativeUI.alert("不⽀持此⽀付通道!",null,"");
18return;
19                    }
20var xhr=new XMLHttpRequest();
21                    adystatechange=function(){
adyState){
23case 4:
24                            ast("xhr.status:"+xhr.status);
25if(xhr.status==200){
六一儿童节有趣文案26                                quest(sponseText,function(result){
27                                    plus.nativeUI.alert("⽀付成功!",function(){
28                                        back();
29                                    });
30                                },function(error){
31                                    plus.nativeUI.alert("⽀付失败:" + ssage);
32                                });
33                            }else{
34                                alert("获取订单信息失败!");
35                            }
36break;
37default:
38break;
39                        }
40                    }
41                    xhr.open('GET',PAYSERVER);
42                    xhr.send();
5.服务端开发
以下代码只需配置好正确参数即可使⽤。
1  @RequestMapping(value = "/AliPay.do")
2public void aliPayInfo(HttpServletRequest request, HttpServletResponse response) {
3        response.setHeader("Access-Control-Allow-Origin", "*");
4        String money = Parameter("money");
5        String subject = Parameter("subject");
6        String orderCode = Parameter("orderCode");
7        String outTradeNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + (int) (Math.random() * 90000 + 88888);
8//实例化客户端
9        AlipayClient alipayClient = new DefaultAlipayClient(ConfigUtil.ALI_SERVER_URL, ConfigUtil.ALI_APPID, ConfigUtil.ALI_PRIVATEKEY);
10//实例化具体API对应的request类,类名称和接⼝名称对应,当前调⽤接⼝为ade.app.pay
11        AlipayTradeAppPayRequest requestR = new AlipayTradeAppPayRequest();
12        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
13        model.setBody("我是测试数据");
14        model.setSubject(subject);
15        model.setOutTradeNo(outTradeNo);
16        model.setTimeoutExpress("30m");
17        model.setTotalAmount(money);
18        model.setProductCode("QUICK_MSECURITY_PAY");
19        requestR.setBizModel(model);
20        requestR.setNotifyUrl(ConfigUtil.ALI_NOTIFYURL);中国邮政储蓄银行个人网上银行登录
21try {
22            OrderInfo orderInfo = OrderIdByOrderCode(orderCode);
23if (orderInfo != null){
24boolean res = iTouristService.updateOrderInfoByPrepareField(orderInfo,outTradeNo); 25
26if (res){
27                    AlipayTradeAppPayResponse responseR = alipayClient.sdkExecute(requestR);
28                    String cao = Body();
29                    Writer().write(cao);
30                    Writer().flush();
31                    Writer().close();
32                }
33            }
34        } catch (Exception e) {
保养灯归零35// TODO: handle exception
36        }
37    }
初次做第三⽅开发,经验不⾜,如有错误,希望指点⼀⼆,谢谢!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。