Spring Boot集成支付宝(最新版SDK)—— 手机支付

前言

前些日子写了一篇关于H5网页集成支付宝的文章:

Spring Boot集成支付宝(最新版SDK)—— H5/网页支付

当时写了好久,往那一坐就是俩小时,写完直接就发布了,发布之后才感觉少点啥——只写了网页支付,忘了写移动端APP支付

APP集成支付宝,还是很简单的(当然建立在上一篇文章的基础上),本文应该写在上一篇文章的,但是上一篇文章的篇幅已经很长了,读起来会很累。

所以此文将作为上一篇文章的下集,请先看我的上一篇文章再回来读此文,再次贴出链接:

Spring Boot集成支付宝(最新版SDK)—— H5/网页支付

 

移动端APP集成支付宝

打开官方文档,还记得我们上一节说的API规范吗:

基于此,我们继续往下看:

 

看到了吧,简直不要太容易,换一下调用的方法即可,接下来修改代码:

package com.course.java.alipay.service;

import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.app.models.AlipayTradeAppPayResponse;
import com.alipay.easysdk.payment.facetoface.models.AlipayTradePayResponse;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import com.course.java.alipay.bo.PaymentBO;
import com.course.java.alipay.util.OrderUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;

/**
 *  支付宝支付,业务实现
 *
 * @author wangziyang
 * @date 2020-10-01
 * */
@Service
public class PayService {

    //支付成功后要跳转的页面
    @Value("${alipay.returnUrl}")
    private String returnUrl;

    /**
     *  下单支付
     * */
    public Object pay (PaymentBO bo) throws Exception {

        //从存储介质(如MySQL、Redis)查询商品信息、总金额等敏感信息

        //…………省略相关代码,这里直接赋值…………

        bo.setSubject("测试商品");
        bo.setTotal(new BigDecimal(10.00));

        //调用sdk,发起支付
        /*AlipayTradePagePayResponse response = Factory.Payment
                //选择网页支付平台
                .Page()
                .asyncNotify("http://98d89k.natappfree.cc/pay/fallback")
                //调用支付方法,设置订单名称、我们自己系统中的订单号、金额、回调页面
                .pay(bo.getSubject() , OrderUtil.getOrderNo(), bo.getTotal().toString() , returnUrl);*/

        //只需要换一个支付场景即可
        AlipayTradeAppPayResponse response = Factory.Payment
                //选择app支付平台
                .App()
                //可通过此方法单独设置异步回调,优先级大于配置文件
                .asyncNotify(returnUrl)
                .pay(bo.getSubject() , OrderUtil.getOrderNo() , bo.getTotal().toString());

        //这里的response.body,就是一个订单串,直接返回给移动端。
        // (实际场景要用统一的响应模板进行封装,code、msg、data,偷个懒)
        return response.body;
    }
}

这就好了,只需要把支付宝返回的订单串原封不动的返回给移动端,移动端就可以唤起支付宝支付。异步回调的API该咋写就咋写,和之前一样;至于支付完成之后的页面,由移动端控制

手笨,不会安卓和IOS,就不演示效果了,反正后端是没问题,拜~~~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值