微信公众号对接支付宝教程

1.微信公众号中的网页如何调用支付宝

支付宝沙箱环境 登录 - 支付宝

基本流程

1.前端页面调用后台下单接口,后台接口返回支付宝支付url。

2.前端跳转后台返回的支付宝url,跳转到支付宝付款页面

3.用户支付订单,支付成功后,支付宝异步回调我们在支付宝后台配置的应用网管URL。

4.用户在异步回调接口做相应业务逻辑。

步骤2因为微信浏览器对支付宝进行屏蔽,我们要进行相应的处理

支付宝官方提供了相应的解决方案,点我

基本思想是做一个引导页,打开外部浏览器的方式来打开支付页面。

以上url在前端拼装,改为后端返回比较妥当,只需把goUrl改为后端返回url。后台接口如下

java代码

网页端唤起支付宝接口

 public void aliapyForm(HttpServletRequest request, HttpServletResponse response) {
// //设置编码
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
        request.setNotifyUrl("你的回调通知url");
        request.putOtherTextParam("app_auth_token", "商户accessToken"); //如果是isv,代商户发起支付请求,那么如何区别是那个商户呢,此参数用于区别商户。
        String out_trade_no = "o123";
        String subject = "这是一笔支付订单";
        request.setBizContent("{\\"out_trade_no\":\\"" + para.getOrderCode() + \"\\", "
                + "\"total_amount\":\"" + 1 + "\","
                + "\"subject\":\"" + subject + "\","
                + "\"product_code\":\"QUICK_WAP_WAY\"}"
        );
        AlipayTradeWapPayResponse response = null;
        AlipayClient alipayClient = new DefaultAlipayClient(this.getGatewayUrl(), // 支付宝网关(固定)
                this.getAppId(), // APPID 即创建应用后生成
                this.getPrivateKey(), // 开发者私钥,由开发者自己生成
                "json", // 参数返回格式,只支持json
                this.getCharset(), // 编码集,支持GBK/UTF-8
                this.getPublicKey(), // 支付宝公钥,由支付宝生成
                this.getSignType()); // 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,
        try {
            response = alipayClient.pageExecute(request, "get");
        } catch (AlipayApiException e) {
            log.error("发起支付宝付款失败", e);
            throw new RuntimeException("", "发起支付宝付款失败");
        }
        if (response.isSuccess()) {
            return response.getBody();
        } else {
            throw new RuntimeException("", response.getSubMsg());
        }
        out.println(response.getBody());
    }

 response = alipayClient.pageExecute(request, "get"); 传参get,此方法会返回url,不传参,支付宝返回form表单字符串

未完待续,支付成功后相关教程将在后续推出

有问题请联系 微信号 120213828
相关效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值