提交 ace7a897 authored 作者: zgy's avatar zgy

完成shopify商品查询

上级 7eb0eb3f
......@@ -28,7 +28,20 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--必须排除,否者部署报冲突-->
<exclusions>
<!-- 排除自带的logback依赖 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
<!-- <exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>-->
<!-- 移除嵌入式tomcat插件 -->
<!--<exclusions>
<exclusion>
......@@ -37,6 +50,14 @@
</exclusion>
</exclusions>-->
</dependency>
<!--引入logback-->
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<!-- <dependency>-->
<!-- <groupId>ch.qos.logback</groupId>-->
<!-- <artifactId>logback-classic</artifactId>-->
<!-- <version>1.2.3</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security -->
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -84,6 +105,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>jaxb-api</artifactId>
<groupId>javax.xml.bind</groupId>
</exclusion>
</exclusions>
</dependency>
<!--springframework.boot-->
......@@ -189,6 +216,12 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
<exclusions>
<exclusion>
<artifactId>activation</artifactId>
<groupId>javax.activation</groupId>
</exclusion>
</exclusions>
</dependency>
<!--发邮件 END-->
......@@ -227,6 +260,12 @@
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <artifactid>mybatis-spring-boot-starter</artifactid>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
</dependency>
<!--stripe-->
<dependency>
......@@ -240,37 +279,6 @@
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.egzosn</groupId>
<artifactId>pay-java-paypal</artifactId>
<version>2.12.8</version>
</dependency>
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>rest-api-sdk</artifactId>
<version>1.4.2</version>
</dependency>
<!-- <dependency>
<groupId>com.flutterwave</groupId>
<artifactId>Rave-Java</artifactId>
<version>1.03</version>
<exclusions>
<exclusion>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</exclusion>
</exclusions>
</dependency>-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
......@@ -313,6 +321,14 @@
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>fastjson</artifactId>
<groupId>com.alibaba</groupId>
</exclusion>
<exclusion>
<artifactId>jsoup</artifactId>
<groupId>org.jsoup</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
......@@ -327,16 +343,34 @@
</exclusions>
</dependency>
<dependency>
<groupId>com.flutterwave</groupId>
<artifactId>Rave-Java</artifactId>
<version>1.03</version>
<groupId>com.egzosn</groupId>
<artifactId>pay-java-paypal</artifactId>
<version>2.12.8</version>
<exclusions>
<exclusion>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>rest-api-sdk</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>com.github.theresasogunle</groupId>
<artifactId>Rave</artifactId>
<version>1.0.1</version>
</dependency>
<!--<dependency>
<groupId>com.github.theresasogunle</groupId>
<artifactId>Rave</artifactId>
<version>1.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/Rave-1.0.1.jar
</systemPath>
</dependency>-->
</dependencies>
<build>
......@@ -344,8 +378,35 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
......
package com.diaoyun.zion.chinafrica.controller;
import com.diaoyun.zion.chinafrica.service.ShopifyService;
import com.diaoyun.zion.master.base.Result;
import com.diaoyun.zion.master.config.DomainProperties;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Auther: wudepeng
* @Date: 2019/11/15
* @Description: 调用shopify API,获取商品信息
*/
@Api(tags = "获取shopify的商品信息")
@RestController
@RequestMapping("/shopify")
public class ShopifyController {
@Autowired
private ShopifyService shopifyService;
/**
* 查询商品
*
* @return
*/
@ApiOperation(value = "查询商品")
@GetMapping("/queryproducts")
public Result queryShopifyProducts() {
return shopifyService.queryShopifyProducts();
}
/**
* 查询分类商品
*
* @param product_type
* @return
*/
@ApiOperation(value = "查询分类商品")
@GetMapping("/queryproductsbytype")
public Result queryProductsByType(@ApiParam("商品分类") @RequestParam("product_type") String product_type,
@ApiParam("商品分类") @RequestParam(value = "product_id", required = false) String product_id) {
return shopifyService.queryProductsByType(product_type, product_id);
}
}
package com.diaoyun.zion.chinafrica.service;
import com.diaoyun.zion.master.base.Result;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @Auther: wudepeng
* @Date: 2019/11/15
* @Description:
*/
public interface ShopifyService {
public Result queryShopifyProducts();
public Result queryProductsByType(String product_type,String product_id);
}
......@@ -95,7 +95,7 @@ public class FlutterWaveServiceImpl implements FlutterWaveService {
JSONObject chargevisa = ch.chargeVisaAndIntl();
//if timeout, poll
//JSONObject pollvisa = ch.chargeVisaAndIntl(true);
//System.out.println(chargevisa);
System.out.println("======>>>>"+chargevisa);
net.sf.json.JSONObject object = net.sf.json.JSONObject.fromObject(chargevisa.toString());
String status = object.getString("status");
//System.out.println("========>>>" + status);
......
package com.diaoyun.zion.chinafrica.service.impl;
import com.diaoyun.zion.chinafrica.service.ShopifyService;
import com.diaoyun.zion.chinafrica.vo.ShopifyConstant;
import com.diaoyun.zion.master.base.Result;
import com.diaoyun.zion.master.enums.ResultCodeEnum;
import com.diaoyun.zion.master.util.HttpClientUtil;
import com.github.pagehelper.PageInfo;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import netscape.javascript.JSObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.github.pagehelper.page.PageMethod.startPage;
/**
* @Auther: wudepeng
* @Date: 2019/11/15
* @Description:
*/
@Service("shopifyService")
public class ShopifyServiceImpl implements ShopifyService {
private static Logger logger = LoggerFactory.getLogger(ShopifyServiceImpl.class);
/**
* 查询商品
*
* @return
*/
@Override
public Result queryShopifyProducts() {
Result result = new Result();
Map<String, Object> params = new HashMap<>();
List<String> list = new ArrayList();
try {
List type = getProductType();
for (int i = 0; i < type.size(); i++) {
params.put("product_type", type.get(i));
params.put("limit", ShopifyConstant.SHOPIFY_LIMIT);
String data = HttpClientUtil.createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
list.add(data);
}
JSONArray jsonArr = JSONArray.fromObject(list);
result.setData(jsonArr).setMessage("success");
} catch (IOException e) {
result.setCode(ResultCodeEnum.QUERY_ERROR.getCode()).setMessage(e.getMessage());
logger.error(e.getMessage(), e);
return result;
}
return result;
}
/**
* 查询分类商品
*
* @param product_type
* @return
*/
@Override
public Result queryProductsByType(String product_type, String product_id) {
Result result = new Result();
Map<String, Object> params = new HashMap<>();
params.put("product_type", product_type);
params.put("limit", ShopifyConstant.SHOPIFY_PAGE_SIZE);
params.put("since_id", product_id);
try {
String data = HttpClientUtil.createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
JSONObject jsonObject = JSONObject.fromObject(data);
System.out.println(jsonObject);
result.setData(jsonObject);
} catch (IOException e) {
result.setCode(ResultCodeEnum.QUERY_ERROR.getCode()).setMessage(e.getMessage());
logger.error(e.getMessage(), e);
return result;
}
return result;
}
/**
* 查询所有商品分类
*
* @return
* @throws IOException
*/
public List getProductType() throws IOException {
Map<String, Object> params = new HashMap<>();
params.put("fields", "product_type");
String connection = HttpClientUtil.createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
List list = new ArrayList();
JSONArray products = JSONObject.fromObject(connection).getJSONArray("products");
for (int i = 0; i < products.size(); i++) {
String string = products.getString(i);
JSONObject jsonObject = JSONObject.fromObject(string);
String product_type = jsonObject.getString("product_type");
if (!"".equals(product_type) && !list.contains(product_type)) {
list.add(product_type);
}
}
return list;
}
}
package com.diaoyun.zion.chinafrica.vo;
import io.swagger.models.auth.In;
/**
* @Auther: wudepeng
* @Date: 2019/11/15
* @Description: Shopify url
*/
public class ShopifyConstant {
public static String SHOPIFY_LIMIT = "4";
public static String SHOPIFY_PAGE_SIZE = "10";
//apikey
public static String SHOPIFY_API_KEY = "7f0e048ac4016b9357bb1eb2217e4201";
//hostname
public static String SHOPIFY_HOSTNAME = "mollykitty.myshopify.com";
//password
public static String SHOPIFY_PASSWORD = "1c97a1222c5b40e0597c816c6dfecac0";
//api
public static String SHOPIFY_PRODUCTS_API = "/admin/api/2019-10/products.json";
//https://7f0e048ac4016b9357bb1eb2217e4201:1c97a1222c5b40e0597c816c6dfecac0@mollykitty.myshopify.com/admin/api/2019-10/products.json?fields=product_type;
public static String productTypeUrl() {
return "https://" + SHOPIFY_API_KEY + ":" + SHOPIFY_PASSWORD + "@" + SHOPIFY_HOSTNAME + SHOPIFY_PRODUCTS_API;
}
}
......@@ -4,6 +4,7 @@ public enum ResultCodeEnum {
SUCCESS(1,"success"),
ORDER_PAY_ERROR(9008,"payment failure"),
REFUND_PAY_ERROR(9009,"payment failure"),
QUERY_ERROR(9005,"query fails"),
ERROR(9999,"unknown error"),
APPLICATION_ERROR(9000,"application error"),
VALIDATE_ERROR(9001,"validate error"),
......
package com.diaoyun.zion.master.util;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeConstants;
import org.joda.time.format.DateTimeFormat;
......@@ -18,7 +19,7 @@ public class JodaDateUtil {
/**
* 日期转换格式数组
*/
public static Map<String,Pattern> regularExp = new HashMap<String,Pattern>() {{
public static Map<String, Pattern> regularExp = new HashMap<String, Pattern>() {{
put("\\d{4}-((([0][1,3-9]|[1][0-2]|[1-9])-([0-2]\\d|[3][0,1]|[1-9]))|((02|2)-(([1-9])|[0-2]\\d)))\\s+([0,1]\\d|[2][0-3]|\\d):([0-5]\\d|\\d):([0-5]\\d|\\d)",
Pattern.yyyy_MM_dd_HH_mm_ss);
put("\\d{4}-((([0][1,3-9]|[1][0-2]|[1-9])-([0-2]\\d|[3][0,1]|[1-9]))|((02|2)-(([1-9])|[0-2]\\d)))",
......@@ -43,16 +44,16 @@ public class JodaDateUtil {
*/
private static Pattern getDateFormat(String dateStr) {
Pattern pattern = Pattern.yyyy_MM_dd_HH_mm_ss;
if (StringUtils.isBlank(dateStr)) {
return Pattern.yyyy_MM_dd_HH_mm_ss;
}
for(String patternMatchStr :regularExp.keySet()) {
if(dateStr.matches(patternMatchStr)) {
pattern=regularExp.get(patternMatchStr);
break;
}
if (StringUtils.isBlank(dateStr)) {
return Pattern.yyyy_MM_dd_HH_mm_ss;
}
for (String patternMatchStr : regularExp.keySet()) {
if (dateStr.matches(patternMatchStr)) {
pattern = regularExp.get(patternMatchStr);
break;
}
return pattern;
}
return pattern;
}
public static String date2str(Date date, Pattern pattern) {
......@@ -482,17 +483,16 @@ public class JodaDateUtil {
*
* @return Date
*/
public static String timeStamp2DateStr(long timeStamp,Pattern datePattern) {
Date date=new Date(timeStamp*1000);
if(datePattern==null) {
datePattern= Pattern.yyyy_MM_dd_HH_mm_ss;
public static String timeStamp2DateStr(long timeStamp, Pattern datePattern) {
Date date = new Date(timeStamp * 1000);
if (datePattern == null) {
datePattern = Pattern.yyyy_MM_dd_HH_mm_ss;
}
String dateStr = date2str(date,datePattern);
String dateStr = date2str(date, datePattern);
return dateStr;
}
public enum Pattern {
//如果不够用可以自己添加
yyyy_MM("yyyy-MM"),
......
......@@ -8,7 +8,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
......@@ -103,7 +104,7 @@ public class SMSUtil {
//编码格式。发送编码格式统一用UTF-8
String ENCODING = "UTF-8";
long tpl_id = 3253208;//模板ID
String code = RandomStringUtils.randomNumeric(6);// 生成6位随机验证码
String code = RandomStringUtils.randomNumeric(6);// 生成6位随机验证码
String tpl_value = URLEncoder.encode("#code#",ENCODING) +"="
+ URLEncoder.encode(code, ENCODING) ;
System.out.println(tpl_value);
......
......@@ -72,4 +72,4 @@ paypal.client.secret=EIyDryMDyM0BDWp2mtuGFdSU2WOkWtmSuGGaRnUiIom7kxuM7JhuSFfETbC
flutterwave.public.key=FLWPUBK_TEST-fe034e806c47ab16cd85c4a8df1e1a0e-X
flutterwave.secret.key=FLWSECK_TEST-f7335806b11db9c42d2ef10847199f71-X
flutterwave.encryption.key=FLWSECK_TEST97c23ad56b5f
flutterwave.merchant.id=5876535
\ No newline at end of file
flutterwave.merchant.id=58765350
package com.diaoyun.zion;
import com.diaoyun.zion.chinafrica.vo.ShopifyConstant;
import com.diaoyun.zion.master.base.Result;
import com.diaoyun.zion.master.enums.ResultCodeEnum;
import com.diaoyun.zion.master.util.HttpClientUtil;
import com.github.pagehelper.PageInfo;
import com.google.gson.JsonArray;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.junit.Test;
import java.io.IOException;
import java.util.*;
import static com.github.pagehelper.page.PageMethod.startPage;
/**
* 微信
......@@ -13,12 +25,45 @@ import net.sf.json.JSONObject;
*/
public class PayTest {
public static void main(String[] args) {
@Test
public void test() throws IOException {
Map<String, Object> params = new HashMap<>();
params.put("fields", "product_type");
String connection = HttpClientUtil.createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
List list = new ArrayList();
JSONArray products = JSONObject.fromObject(connection).getJSONArray("products");
for (int i = 0; i < products.size(); i++) {
String string = products.getString(i);
JSONObject jsonObject = JSONObject.fromObject(string);
String product_type = jsonObject.getString("product_type");
if (!"".equals(product_type) && !list.contains(product_type)) {
list.add(product_type);
}
}
System.out.println(list);
}
@Test
public void test1() {
Result result = new Result();
Map<String, Object> params = new HashMap<>();
params.put("product_type", "Face");
List list = new ArrayList<>();
try {
String data = HttpClientUtil.createConnection(ShopifyConstant.productTypeUrl(), params, "UTF-8");
System.out.println("===========>>>>>>>>>"+data);
JSONArray products = JSONObject.fromObject(data).getJSONArray("products");
for (int i = 0; i < products.size(); i++) {
JSONObject object = products.getJSONObject(i);
list.add(object);
}
String str="{\"status\":\"fail\",\"data\":\"Error: Cannot refund non-existent transaction\",\"message\":\"request failed\"}";
String s = str.replaceAll("'\'", " ");
JSONObject jsonObject = JSONObject.fromObject(s);
System.out.println(jsonObject.getString("status"));
// System.out.println(list.size());
System.err.println(products.get(1));
JSONArray jsonArray = JSONArray.fromObject(list);
} catch (IOException e) {
result.setCode(ResultCodeEnum.QUERY_ERROR.getCode()).setMessage(e.getMessage());
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论