淘宝R2去模糊化+聚石塔+奇门

 

淘宝api订单直连 R2级数据必须经过聚石塔奇门输出:大部分是按照网上速卖通方式配置的 下面的截取信息

一 服务器:

 聚石塔

1.1首先是聚石塔的购买,此处需要说明聚石塔就是服务器,只是换了名字

根据需求选择相应配置购买就可以了
1.2 聚石塔购买成功后会跳转到下图所示页面

点击实例管理,就会进入如下图所示页面  要选择张家口的 +专用网络+外网ip

1.3 接下来就是配置实例信息,第一次使用时,需要重置连接密码,请注意,这个连接密码不是登录服务器的密码,请不要搞错了,远程登录密码只在第一次登录时会用到,登录服务器的用户名密码是需要自己设置的,此处还有一点需要注意,因为我选择的系统是linux的,所以用户名是root,这个是官方规定的,直接用就可以了,点击重置实例密码,就可以修改密码了,还有一点需要注意,密码修改成功之后会提示重启,是重启服务器不是重启自己的电脑,重启服务器

重启服务器

1.4 设置好实例的密码之后,接下来就是在服务器上配置环境部署代码此处就不啰嗦了

2.奇门

2.1 使用奇门之前,需要先创建场景,奇门提供了官方场景和自定义场景,由于官方场景只有一部分,所以有些场景是需要自定义的,以获取类目信息为例,由于官方场景中没有集成类目这块,所以就需要我们选择自定义场景


场景名称和业务类型请根据需求来选择

2.2 场景创建好了之后,下来就是创建API

此处有个注意的地方就是自定义参数名最好是设置成方法的传入参数名一致这样比较方便,如果不一致可以在下面的body中做映射

2.3 奇门和聚石塔接口映射,此处是个重点,奇门官方给出的linux系统下http请求的端口是80,这个是默认的,为了方便起见我自己代码中设置的端口也是80,下图所示的地址是请求聚石塔接口的地址,虽然代码部署到聚石塔就可以访问了,但是官方规定如果这个服务上线之后就必须通过奇门,所以奇门是必须要的,这个ip地址我用的是聚石塔的公网地址,配置好之后点击下一步

2.4 上面一步是设置请求参数,下来就是设置响应参数,请注意对象和列表类型的选择,这一步只需要设置这里就可以了,点击下一步

2.5 预览页面,可以看下配置的是否正确,如果没问题点进入到自测环境,没有问题的话就点上一步修改

2.6 API设置好了之后,下来就是测试页面的测试了,但是在设置之前,点击左边的授权配置,在页面中配置响应的信息

2.7 授权配置好了之后就可以进行测试了,由于这个API还没有发布,所以是选择测试环境

appSecret和AppKey就是之前创建应用成功之后系统分配的,如果报错说ip不在白名单,那么要在插入一个操作将ip添加到ip白名单

这样就可以了,可以调通接口了
 

使用速卖通AE新版开放平台,我们先看看需要哪些条件

1,要有一个企业级别的支付宝帐号,注:必须是企业级别。

2,要有软著,就是软件著作权证书

这2个都有了,才能去申请。

 

申请类型有2种

1,商用授权,适合专门的软件公司

2,自研授权,适合电商公司有独立研发团队

我们公司申请的是自研类型

 

1,创建应用

这个环节用于获取AppKey和Secret,后面获取令牌用的。这里要说下和老版的区别

1、新版本没有Refresh和Access令牌的区别,只有Access令牌。正式发布后,这个令牌的期限是一年(相比老版本24小时的时限,时间延长了好久,给个赞)

2、我们使用SDK的时候,有的方法中,参数名称是SessionKey,其实就是这个令牌(官方文档从来不说,就是不告诉你)

 

2,授权报备

这里是要绑定一个速卖通的店铺,你会得到一个cn前缀的字符串,记住这个字符串,后面会很有用

 

3,下载SDK。这是淘宝官方提供的,各版本都有。我们使用的是Net版本。

注:这里最后下载源码加载至项目中,方便调试。因为后面有个坑,你不进入源码调试,到死都不知道怎么回事?!(官方就是不说)

注1:SDK我们是可以随时编译下载的

注2:如果我们使用自定义场景,创建成功若干API的话,重新编译下载SDK,会发现输入输出参数,已经帮我们定义好类了。我们还是像官方场景那样,直接使用即可

注:这里最后下载源码加载至项目中,方便调试。因为后面有个坑,你不进入源码调试,到死都不知道怎么回事?!(官方就是不说)

5,设置白名单

一般设置3个IP地址就可以了

106.11.,没错,就是*.*,这个IP是奇门要求的

106.14.,这个是聚石塔里的

注:聚石塔里的数据,输入输出都要经过奇门,所有只要你想用AE平台,先申请聚石塔吧

115.233,这个是我们自己的服务器IP。如果你还没有买聚石塔的服务器,平台可以给你3天的塔外测试。就是这个IP地址

 

6,绑定测试帐号

这个帐号就是之前申请的速卖通店铺帐号,直接用这个帐号测试就可以。只有3天时间,但过期了可以延长的

 

7,设置回调地址

必须要设置的环节。用于获取AccessToken令牌

 

 

好了,通过上面的几步,准备工作算是完成了。下面,我们正式写代码,还是一步一步来

注:以aliexpress.logistics.listlogisticsservice,获取物流服务列表的API为例

 

1,调用AE平台的API。这是我们的关键业务,建议直接使用官方提供的SDK即可,简单方便。

qoEry5oMTUGJtzb0U8xymQ==.png

其中

AliApiUrlPrefix是AE开放平台的调用地址:http://gw.api.taobao.com/router/rest。

AppKey和AppSecret是之前申请应用时得到的

这步一般是都可以调通的。注:此时还没有塔和奇门

 

2,下面就开始搭塔了,就是聚石塔。

聚石塔可以理解为阿里云,即一个独立的操作系统,你上面写好的程序要部署的吧,你必须要部署在聚石塔里才可以(别问我为什么,官方说的)

2.1,部署好以后,直接调用塔里的程序,还是通的。有人会问,即然通了,还要奇门干啥

现在通了,是我们申请的塔外测试的原因。正式发布的程序,还是要通过奇门才能调用塔里的数据

2.2,塔里部署成功后,达到能访问返回正确数据即可

 

3,下面就要讲重头戏了:奇门

什么是奇门?奇门就是外部程序和聚石塔必须要经过的一道桥梁。没有奇门,你就没门进去,根本访问不了聚石塔里的应用

 

3.1,奇门的位置

云工作台->业务系统构建&集成

BFLOjrHsMUG97R_j-rNyFg==.png

 

3.2,场景选择

yUxI3byYYUOzI8CLXmSF7g==.png

场景包含2种:自定义场景和官方场景。个人建议先选择官方场景,因为它内置了传入和传出的参数格式。

我们肯定会自定义场景(因为官方场景只提供的30%的API)

 

3.3,官方场景API列表

nwtlCvdNXUaGENrMc-bTRg==.png

场景由API组成,每个方法都需要配置和发布(发布前要自测通过+验签)

 

 

3.4,官方场景API配置(划重点了,这里有个大坑)

3.4.1,配置请求映射

这个坑,研究了2小时,得出结论

这个地址是聚石塔里,你程序的部署地址

注1:是到方法名称级别

注2:Net版本,可以部署成WebAPI程序(推理得出:WebService也可以,Handler也可以)

 

 

3.4.2,请求参数

记住这个格式,后面肯定会用到

 

3.4.3,请求Demo

这是标准的参数格式,含输入和输出。也要记住,后面会用到

 

3.4.4,响应参数(即输出参数)

记住+1

 

3.4.5,请求和响应demo

Ph5RY6BYckeXIktqimvbXA==.png

这个最开始没有注意,导致后面开发耽误了时间。划重点了

注意验签Demo的返回格式

 

3.4.6,自测API

到这个环节,就可以开始测试了。

注1:返回格式有2种:XML和Json。一般选择Json

注2:Query id,这个参数是cn的那个字符串,但在这里没有影响,传啥都可以

注2.1:这个参数我认为在发布后相当有关系。一个AppKey可能同时关联多个店铺,这是用来区分店铺信息的。知道是哪个店铺,才能获取对应店铺的令牌(令牌就是AccessToken,就是SDK中的SessionKey)

注3:有的API方法,参数有个param1的参数。这个怎么理解呢?这个可以理解成方法需要的其他参数内容,都放到这里,Json格式传入。特别说明:它是有格式要求的,就是前面的输入参数格式

 

到这时,你会发现各种调试失败。。。但官方给出的错误码并没有什么卵用。下面重新讲一遍正确的姿势,小板凳搬好

 

3.5,正确做法

3.5.1,先定义返回Model基类,按照3.4.4,响应参数定义即可(还有验签的格式)。相当于每个方法都会返回这些属性值

tvV3DIpDU0qURCyqt8m-TQ==.png

这个类,同时还参照了奇门的输出参数定

 

3.5.2,修改Service层的方法。

主要修改输出参数,改成什么格式呢?就是我之前提到的,验签Demo的那个格式。相当于方法必须返回验签Demo格式才行。否则,打死都通不过

Hwoljhwt90ifZBMk1hmLDw==.png

看到木有?无论能否返回正确的数据,它要的验签格式。你必须返回。

而且你发现木有,验签的格式不光属性,属性值也要求完全一致。

 

3.5.3,Controller层方法(继续划重点,又一个大坑)

注1:这里先解释下什么是验签,作者之前也理解错误,现在更正下:验签就是平台给塔里程序发个错误的请求,平台要接收到它认为正确的数据,验签就通过了,其实就是这么简单)正确的数据就是上图的数据,即是验签Demo的格式(属性值也相同)

注2:再看看Net版本的验签,你会发现它的一个参数是System.Web.HttpRequest。我找了好久也没找到在哪里传进去,百思不得其解。后来才发现它不是在Service层的,是在WebAPI的Controller层

xps7tUXsFUWJuieVKcuI9A==.png

看,这就是验签。是不是有种恍然大悟的感觉。而且这是Controller层完整的方法。包括验签+调用Service层+返回格式

 

3.5.4,外部程序调用?

验签通过以后,就可以发布了。发布成功,意味着外部程序可以直接使用了。注意:不是直接调用塔里的程序,塔的所有数据,都要通过奇门

uMQ8Jn8YIEuWLgYoUxYgSw==.png

这里根据奇门SDK写的方法,外部程序最后调用的是这个方法。不是前面我们写的那些

 

3.6,自定义场景

昨天也把自定义场景调试通过了。它和官方场景有什么区别呢?如下所示

a,方法名称自行定义

b,输入参数自行定义

c,输出参数自行定义

d,验签格式不可定义(必须按照官方的格式)

其他的没有什么坑,验签通过就可以发布(有个审核的操作,基本都通过的)

 

3.7,安全扫描

整个应用发布前,会有一个安全扫描的过程,官方说是3小时(实际要超出这个时间,都问题不大)

 

最后总结下

1,官方的文档要认真看,每句话都有它的含义(为毛他们不明说呢,非要我们自己猜)

2,所有的环节都是互相关联的,一步配置不对,就都有影响

3,申请令牌的程序是可以部署在塔外的

4,官方场景或自定义场景中,每个方法的验签返回格式不是都相同的。要注意,必须和验签格式完成相同才可以

5,多店铺时,关于SessionKey(即AccessToken)如何使用?每个店铺都有id(就是cn123456)的字符串,这是可以通过参数传进去的。这样可以在塔里部署一个txt文件,定义好id和令牌的关系。这样就可以根据Id获取令牌了 

二.rds数据库

订单同步服务进rds 

https://open.taobao.com/doc.htm?spm=a219a.7386653.0.0.3995669aIDcY1V&docId=101587&docType=1

rds同步的库 只读类型 本身的业务需要新建库

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
使用r2dbc+mysql+springboot创建表需要以下步骤: 1. 配置MySQL连接信息,包括数据库名称、用户名、密码和MySQL的URL等。 2. 创建一个Java Bean,用于表示表中的字段和数据类型。例如,如果要创建一个名为person的表,可以在Java中创建一个名为Person的类,该类包含与表中字段对应的属性。 3. 创建一个Repository接口,用于定义插入、查询、更新和删除数据等操作。在接口中通过SQL语句进行定义,例如使用@Query注解定义插入数据的SQL语句。 4. 在Spring Boot应用程序启动时,使用Spring的自动化配置功能自动创建表。可以通过在应用程序的配置文件中添加spring.jpa.hibernate.ddl-auto属性来控制表的创建方式,例如可以将该属性设置为create或update等选项。 下面是一个简单的示例代码,用于创建一个名为person的表: 1. 在application.properties中添加MySQL数据库连接配置信息: ``` spring.r2dbc.url=r2dbc:mysql://localhost:3306/testdb spring.r2dbc.username=testuser spring.r2dbc.password=testpass ``` 2. 创建一个Person类,在其中定义表中的字段和数据类型: ```java @Data public class Person { private Long id; private String firstName; private String lastName; } ``` 3. 创建一个PersonRepository接口,在其中定义对person表的操作: ```java public interface PersonRepository extends ReactiveCrudRepository<Person, Long> { @Query("INSERT INTO person (first_name, last_name) VALUES (:firstName, :lastName)") Mono<Void> insert(@Param("firstName") String firstName, @Param("lastName") String lastName); @Query("SELECT * FROM person WHERE id = :id") Mono<Person> findById(@Param("id") Long id); } ``` 4. 在启动类中添加@EnableR2dbcRepositories注解,开启R2DBC仓库的自动化配置: ```java @SpringBootApplication @EnableR2dbcRepositories public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 5. 启动应用程序,Spring Boot将自动创建名为person的表。如果表已经存在,则不会进行任何操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值