00:00
上堂课呢,我们讲了微信支付的一个native支付的完整流程,那么这节课呢,我们就对这个流程做一个实现,首先呢,我们要实现这个步骤的内容生成订单。然后调用统一下单API,那微信支付端呢,生成支付交易,最后呢,返回给我们一个预支付交易链接,也就是扣的URL。所以首先我们要在我们的应用程序当中创建一个native的统一下单的接口。我们打开controller。在controller里面呢,创建一个类,这个类我们给它起个名字叫微信pay controller,好,那么下面呢,我们写一些注解,这个是跨域注解。Controller注解,Request mapping注解,那么request mapping注解这面呢?我们定义路径是API微信。
01:16
接下来最后一个是API注解。那这个呢,是的注解,我们定义这个名字呢,叫网站。微信支付。API好,然后呢,我们再来定义一个。在service这个包下面,我们先创建一个接口。微信配service。嗯。那么这个呢,应该是一个接口interface,接下来我们在IPM包下面创建一个。
02:00
当前接口的实现类。那么不要忘了在这个上面写一个好。在接下来呢,我们在微信配controller里面。打开微信配controller啊,我们呢要调用我们的这个service当中的方法,所以呢,我们就需要在微信配controller里面注入这个微信配service。Resource。Private微信配service。那么我们来定义一个接口,这个是返回值。这个是S的注解,API生成、支付、二维码调用统一。
03:12
下单API生成支付二维码,接下来呢,我们把这个二类引入。那么我们调用统一下单API生成支付二维码,它的前端操作是什么样的呢?我们来看一下,我们希望呢,在这个地方选择某一个商品,然后点击确认支付,提交给刚才咱们创建的这个接口。那么也就意味着我们需要在前端获取到商品信息,那最简单的方式呢,就是把商品的ID传过去,所以呢,这边我们可以用pass的形式。传递一个商品ID。
04:03
那因为我们数据库当中,商品表当中的ID呢,是in的哈,所以呢这边呢,我们就使用。这个ID类,那然在呢,我们。提交的路径当中就需要有这个。那这是我们接口的定义。接下来呢,为了在开发的过程当中方便调试,我们呢在这个地方打印一个日志,那么打印日志的方式除了这个system之外哈,我们还有一种非常方便的在项目当中常用的方式就是用日志对象来打印,那么在我们的controller这个地方,我们写一个SLJ,它呢是longbo给我们提供的一个注解,可以帮助我们方便的呢生成日志打印对象,那么这样的话呢,我们在应用程序当中就会自动的被注入一个log对象,我们可以用这个log对象呢进行日志的打印。
05:26
好,接下来呢,我们要调用微信当中的一个方法,当然了,这个方法我们还没有写,一会呢,我们会把它创建出来。那么这个方法呢?我们希望它接收product ID这个参数,并且返回一个值。返回什么呢?我们返回一个map集合。好,集合的内容呢,不确定哈,所以我们返回object。
06:01
那么这个map集合里面我们要返回具体什么内容呢?我们要返回支付二维码链接和订单号。那接下来呢,我们把这个map呢,放到我们的R对象当中传递给前端,所以这面呢,我们返回给前端的是一个r.OK。啊,然后点我们这map置那问,因为法呀,它是Y的返回值,我们看一下这个data自动生成的S方法。那很典型的一个数据赋值的方法,它的返回值是的,所以呢,在这面,因为方法呢,让整个的这个表达式呢,变成了Y的,所以我们就必须这样写了。
07:00
先把这个二创建出来。这个呢,叫二哈。然后呢,r.map最后呢,我们把返回。但是实际上呢啊,如果我们要像刚才那样写的话呢,程序可能看起来更简洁,所以呢,我们可以在这个位置给这个类添加一个注解叫做。等于什么意思呢?就是可以让我们当前的这个对象进行式操作,那你会发现只要我添加了access chin等于true啊这样的一个注解之后呢,所有的set方法,它的返回值就变成了,二对象本身,那么这个有什么作用呢?简单的举一个例子哈,我们在这个地方一旦拗一个R之后,并且对R进行值的设置的时候呢,那么我们可以这样进行链式操作,所以呢,我们在这个地方加一个链式操作,然后呢,这个地方我们就可以像刚才一样了,二点点set map,好,那这是最终我们的接口方法。
我来说两句