离线购物车的实现
离线购物车就是不用登录的购物车。
首先,在用户的浏览器Cookie里保存用户的ID(临时生成的)。
然后,采用Redis的HashMap结构实现:
- key是
cart:用户ID
- field是产品ID
- value是产品数量
设置过期时间,因为对于离线购物车,不用永久的持久化。
最后:
如果用户进行了登录,就把Redis中的离线购物车同步到DB中去。
在线购物车
即登录后的购物车,一般大型公司会直接持久化到DB中去,并且采用分库分表的方式来减轻数据库的压力。因为购物车是读写最多的地方。
Alipay三方支付流程
首先,引入依赖包:
<!-- 支付宝支付 -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.3.87.ALL</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.11</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- 支付宝依赖结束 -->
然后,将Alipay官方提供的Demo文件拷贝到项目中:
然后,将配置文件拷贝到Resource中,并且修改对应的属性。
最后,写业务逻辑。