diff --git a/ghy-admin/pom.xml b/ghy-admin/pom.xml
index 0e64be68..776137e3 100644
--- a/ghy-admin/pom.xml
+++ b/ghy-admin/pom.xml
@@ -95,6 +95,16 @@
com.ghy
ghy-worker
+
+ org.springframework.boot
+ spring-boot-test
+ test
+
+
+ org.springframework
+ spring-test
+ test
+
diff --git a/ghy-admin/src/main/resources/application.yaml b/ghy-admin/src/main/resources/application.yaml
index 878b1c82..16771130 100644
--- a/ghy-admin/src/main/resources/application.yaml
+++ b/ghy-admin/src/main/resources/application.yaml
@@ -154,8 +154,10 @@ qiniu:
mediaUrl: 'http://gqz.opsoul.com/'
adapay:
+ debug: true
+ prod-mode: false
appId: 'app_01af32e7-6173-414f-88e5-79cae64d5e24'
- notifyUrl: 'http://www.opsoul.com/adapay/callback'
+ notifyUrl: 'https://www.opsoul.com/adapay/callback'
apiKey: 'api_live_93a2fb4f-a74a-416f-967d-68557bcde43f'
mockApiKey: 'api_test_88bf2958-583d-41cd-a987-01fe767ff056'
rsaPrivateKey: 'MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMTk5xzz3KXA+waawr1DbU/SaSXZN8tY/22qHON7AAsp+yJ1/JCt+sD6/mpIUGittBS4n69t/9R5+2uHtD5/tVH7hYpJpVixLQw8/lonLPbeLFLgTMBHKJwSytBZXC2delnewHO/Zg6WlTWkdQB7gr73m7/wu2Ss+FDwGq6Q8sXdAgMBAAECgYEAtl8LTr72DjWsjdaFMEcnFftf12XWjyx1Ev+xWGcSiESvT6EXem8bxun1Az7N89eI6HSFvDlX8Fe4MEZ3BjjGGXSEXh3BYg5jI9YY/x4NdPvCxxVf9gGmBo2uBjkPoqYE8IGfpxnF+C4CBEyI5FPjhQRYB7aPKL7hImoCFkaFG4UCQQDojfLHd2ON2sgZdeAML9jxNzf1CBsGVfDrI7GOj+enWG+lWjG5tav/essfDOlZ6rZslyquLQZAGQqZz06cVCMzAkEA2L6WuCiEop9gsnGk03UcO8u54jFC68+2IA4bJeqicFmqMgs73PzsnNZ7t31q51iGsKxvCm3hziTGHGGH9TZyrwJATda1XG5ptCF2uI7r3yhkxNhmsm10HjrF2O6pj747G5hORlpaKn7Ugz7mng4ETURyqwYuEv6fCPVYxwLMnSbMYQJBAMggMkoYH1+IiWA6TlZw64DKuvd/RKs3PpKac7auzw2tvNg4Ry3k2xR1dgYWZ3703miCzoRysOwGSGYsJ7ziaUECQQC1RqZ0UBtEbKSr9fRYxo/lg28ioTlxoMjSL2OumEyJk+2t0S3gPQq5Wz+ylcwnK3Md0kGTyYs5kkTWPyPm9V1F'
diff --git a/ghy-admin/src/main/resources/area.json b/ghy-admin/src/main/resources/area.json
new file mode 100644
index 00000000..a9312eff
--- /dev/null
+++ b/ghy-admin/src/main/resources/area.json
@@ -0,0 +1,1712 @@
+[
+ {
+ "value": "0011",
+ "title": "北京市",
+ "cities": [
+ {
+ "value": "1100",
+ "title": "北京市"
+ }
+ ]
+ },
+ {
+ "value": "0012",
+ "title": "天津市",
+ "cities": [
+ {
+ "value": "1200",
+ "title": "天津市"
+ }
+ ]
+ },
+ {
+ "value": "0013",
+ "title": "河北省",
+ "cities": [
+ {
+ "value": "1301",
+ "title": "石家庄"
+ },
+ {
+ "value": "1302",
+ "title": "保定"
+ },
+ {
+ "value": "1303",
+ "title": "沧州"
+ },
+ {
+ "value": "1304",
+ "title": "承德"
+ },
+ {
+ "value": "1305",
+ "title": "邯郸"
+ },
+ {
+ "value": "1306",
+ "title": "衡水"
+ },
+ {
+ "value": "1307",
+ "title": "廊坊"
+ },
+ {
+ "value": "1308",
+ "title": "秦皇岛"
+ },
+ {
+ "value": "1309",
+ "title": "唐山"
+ },
+ {
+ "value": "1310",
+ "title": "邢台"
+ },
+ {
+ "value": "1311",
+ "title": "张家口"
+ }
+ ]
+ },
+ {
+ "value": "0014",
+ "title": "山西省",
+ "cities": [
+ {
+ "value": "1401",
+ "title": "太原"
+ },
+ {
+ "value": "1402",
+ "title": "长治"
+ },
+ {
+ "value": "1403",
+ "title": "大同"
+ },
+ {
+ "value": "1404",
+ "title": "晋城"
+ },
+ {
+ "value": "1405",
+ "title": "离石"
+ },
+ {
+ "value": "1406",
+ "title": "临汾"
+ },
+ {
+ "value": "1407",
+ "title": "朔州"
+ },
+ {
+ "value": "1408",
+ "title": "忻州"
+ },
+ {
+ "value": "1409",
+ "title": "阳泉"
+ },
+ {
+ "value": "1410",
+ "title": "榆次"
+ },
+ {
+ "value": "1411",
+ "title": "运城"
+ },
+ {
+ "value": "1412",
+ "title": "晋中"
+ },
+ {
+ "value": "1413",
+ "title": "吕梁"
+ }
+ ]
+ },
+ {
+ "value": "0015",
+ "title": "内蒙古自治区",
+ "cities": [
+ {
+ "value": "1501",
+ "title": "呼和浩特"
+ },
+ {
+ "value": "1502",
+ "title": "包头"
+ },
+ {
+ "value": "1503",
+ "title": "阿拉善"
+ },
+ {
+ "value": "1504",
+ "title": "巴彦淖尔"
+ },
+ {
+ "value": "1505",
+ "title": "赤峰"
+ },
+ {
+ "value": "1506",
+ "title": "呼伦贝尔"
+ },
+ {
+ "value": "1507",
+ "title": "乌海"
+ },
+ {
+ "value": "1508",
+ "title": "乌兰察布"
+ },
+ {
+ "value": "1509",
+ "title": "锡林郭勒"
+ },
+ {
+ "value": "1510",
+ "title": "兴安"
+ },
+ {
+ "value": "1511",
+ "title": "鄂尔多斯"
+ },
+ {
+ "value": "1512",
+ "title": "通辽"
+ },
+ {
+ "value": "1513",
+ "title": "满洲里"
+ }
+ ]
+ },
+ {
+ "value": "0021",
+ "title": "辽宁省",
+ "cities": [
+ {
+ "value": "2101",
+ "title": "沈阳"
+ },
+ {
+ "value": "2102",
+ "title": "大连"
+ },
+ {
+ "value": "2103",
+ "title": "鞍山"
+ },
+ {
+ "value": "2104",
+ "title": "本溪"
+ },
+ {
+ "value": "2105",
+ "title": "朝阳"
+ },
+ {
+ "value": "2106",
+ "title": "丹东"
+ },
+ {
+ "value": "2107",
+ "title": "抚顺"
+ },
+ {
+ "value": "2108",
+ "title": "阜新"
+ },
+ {
+ "value": "2109",
+ "title": "葫芦岛"
+ },
+ {
+ "value": "2110",
+ "title": "锦州"
+ },
+ {
+ "value": "2111",
+ "title": "辽阳"
+ },
+ {
+ "value": "2112",
+ "title": "盘锦"
+ },
+ {
+ "value": "2113",
+ "title": "铁岭"
+ },
+ {
+ "value": "2114",
+ "title": "营口"
+ }
+ ]
+ },
+ {
+ "value": "0022",
+ "title": "吉林省",
+ "cities": [
+ {
+ "value": "2201",
+ "title": "长春"
+ },
+ {
+ "value": "2202",
+ "title": "白城"
+ },
+ {
+ "value": "2203",
+ "title": "白山"
+ },
+ {
+ "value": "2204",
+ "title": "吉林"
+ },
+ {
+ "value": "2205",
+ "title": "辽源"
+ },
+ {
+ "value": "2206",
+ "title": "四平"
+ },
+ {
+ "value": "2207",
+ "title": "松原"
+ },
+ {
+ "value": "2208",
+ "title": "通化"
+ },
+ {
+ "value": "2209",
+ "title": "延边"
+ }
+ ]
+ },
+ {
+ "value": "0023",
+ "title": "黑龙江省",
+ "cities": [
+ {
+ "value": "2301",
+ "title": "哈尔滨"
+ },
+ {
+ "value": "2302",
+ "title": "大庆"
+ },
+ {
+ "value": "2303",
+ "title": "大兴安岭"
+ },
+ {
+ "value": "2304",
+ "title": "鹤岗"
+ },
+ {
+ "value": "2305",
+ "title": "黑河"
+ },
+ {
+ "value": "2306",
+ "title": "鸡西"
+ },
+ {
+ "value": "2307",
+ "title": "佳木斯"
+ },
+ {
+ "value": "2308",
+ "title": "牡丹江"
+ },
+ {
+ "value": "2309",
+ "title": "七台河"
+ },
+ {
+ "value": "2310",
+ "title": "齐齐哈尔"
+ },
+ {
+ "value": "2311",
+ "title": "双鸭山"
+ },
+ {
+ "value": "2312",
+ "title": "绥化"
+ },
+ {
+ "value": "2313",
+ "title": "伊春"
+ }
+ ]
+ },
+ {
+ "value": "0031",
+ "title": "上海市",
+ "cities": [
+ {
+ "value": "3100",
+ "title": "上海市"
+ }
+ ]
+ },
+ {
+ "value": "0032",
+ "title": "江苏省",
+ "cities": [
+ {
+ "value": "3201",
+ "title": "南京"
+ },
+ {
+ "value": "3202",
+ "title": "常州"
+ },
+ {
+ "value": "3203",
+ "title": "淮安"
+ },
+ {
+ "value": "3204",
+ "title": "连云港"
+ },
+ {
+ "value": "3205",
+ "title": "南通"
+ },
+ {
+ "value": "3206",
+ "title": "苏州"
+ },
+ {
+ "value": "3207",
+ "title": "宿迁"
+ },
+ {
+ "value": "3208",
+ "title": "泰州"
+ },
+ {
+ "value": "3209",
+ "title": "无锡"
+ },
+ {
+ "value": "3210",
+ "title": "徐州"
+ },
+ {
+ "value": "3211",
+ "title": "盐城"
+ },
+ {
+ "value": "3212",
+ "title": "扬州"
+ },
+ {
+ "value": "3213",
+ "title": "镇江"
+ },
+ {
+ "value": "3214",
+ "title": "胥浦"
+ },
+ {
+ "value": "3215",
+ "title": "昆山"
+ }
+ ]
+ },
+ {
+ "value": "0033",
+ "title": "浙江省",
+ "cities": [
+ {
+ "value": "3301",
+ "title": "杭州"
+ },
+ {
+ "value": "3302",
+ "title": "宁波"
+ },
+ {
+ "value": "3303",
+ "title": "湖州"
+ },
+ {
+ "value": "3304",
+ "title": "嘉兴"
+ },
+ {
+ "value": "3305",
+ "title": "金华"
+ },
+ {
+ "value": "3306",
+ "title": "绍兴"
+ },
+ {
+ "value": "3307",
+ "title": "台州"
+ },
+ {
+ "value": "3308",
+ "title": "温州"
+ },
+ {
+ "value": "3309",
+ "title": "舟山"
+ },
+ {
+ "value": "3310",
+ "title": "衢州"
+ },
+ {
+ "value": "3311",
+ "title": "丽水"
+ }
+ ]
+ },
+ {
+ "value": "0034",
+ "title": "安徽省",
+ "cities": [
+ {
+ "value": "3401",
+ "title": "合肥"
+ },
+ {
+ "value": "3402",
+ "title": "安庆"
+ },
+ {
+ "value": "3403",
+ "title": "蚌埠"
+ },
+ {
+ "value": "3404",
+ "title": "巢湖"
+ },
+ {
+ "value": "3405",
+ "title": "池州"
+ },
+ {
+ "value": "3406",
+ "title": "滁州"
+ },
+ {
+ "value": "3407",
+ "title": "阜阳"
+ },
+ {
+ "value": "3408",
+ "title": "淮北"
+ },
+ {
+ "value": "3409",
+ "title": "淮南"
+ },
+ {
+ "value": "3410",
+ "title": "黄山"
+ },
+ {
+ "value": "3411",
+ "title": "六安"
+ },
+ {
+ "value": "3412",
+ "title": "马鞍山"
+ },
+ {
+ "value": "3414",
+ "title": "铜陵"
+ },
+ {
+ "value": "3415",
+ "title": "芜湖"
+ },
+ {
+ "value": "3416",
+ "title": "宣城"
+ },
+ {
+ "value": "3417",
+ "title": "亳州"
+ },
+ {
+ "value": "3418",
+ "title": "宿州"
+ }
+ ]
+ },
+ {
+ "value": "0035",
+ "title": "福建省",
+ "cities": [
+ {
+ "value": "3501",
+ "title": "福州"
+ },
+ {
+ "value": "3502",
+ "title": "厦门"
+ },
+ {
+ "value": "3503",
+ "title": "龙岩"
+ },
+ {
+ "value": "3504",
+ "title": "南平"
+ },
+ {
+ "value": "3505",
+ "title": "宁德"
+ },
+ {
+ "value": "3506",
+ "title": "莆田"
+ },
+ {
+ "value": "3507",
+ "title": "泉州"
+ },
+ {
+ "value": "3508",
+ "title": "三明"
+ },
+ {
+ "value": "3509",
+ "title": "漳州"
+ }
+ ]
+ },
+ {
+ "value": "0036",
+ "title": "江西省",
+ "cities": [
+ {
+ "value": "3601",
+ "title": "南昌"
+ },
+ {
+ "value": "3602",
+ "title": "抚州"
+ },
+ {
+ "value": "3603",
+ "title": "赣州"
+ },
+ {
+ "value": "3604",
+ "title": "吉安"
+ },
+ {
+ "value": "3605",
+ "title": "景德镇"
+ },
+ {
+ "value": "3606",
+ "title": "九江"
+ },
+ {
+ "value": "3607",
+ "title": "萍乡"
+ },
+ {
+ "value": "3608",
+ "title": "上饶"
+ },
+ {
+ "value": "3609",
+ "title": "新余"
+ },
+ {
+ "value": "3610",
+ "title": "宜春"
+ },
+ {
+ "value": "3611",
+ "title": "鹰潭"
+ }
+ ]
+ },
+ {
+ "value": "0037",
+ "title": "山东省",
+ "cities": [
+ {
+ "value": "3701",
+ "title": "济南"
+ },
+ {
+ "value": "3702",
+ "title": "青岛"
+ },
+ {
+ "value": "3703",
+ "title": "滨州"
+ },
+ {
+ "value": "3704",
+ "title": "德州"
+ },
+ {
+ "value": "3705",
+ "title": "东营"
+ },
+ {
+ "value": "3706",
+ "title": "菏泽"
+ },
+ {
+ "value": "3707",
+ "title": "济宁"
+ },
+ {
+ "value": "3708",
+ "title": "莱芜"
+ },
+ {
+ "value": "3709",
+ "title": "聊城"
+ },
+ {
+ "value": "3710",
+ "title": "临沂"
+ },
+ {
+ "value": "3711",
+ "title": "日照"
+ },
+ {
+ "value": "3712",
+ "title": "泰安"
+ },
+ {
+ "value": "3713",
+ "title": "威海"
+ },
+ {
+ "value": "3714",
+ "title": "潍坊"
+ },
+ {
+ "value": "3715",
+ "title": "烟台"
+ },
+ {
+ "value": "3716",
+ "title": "枣庄"
+ },
+ {
+ "value": "3717",
+ "title": "淄博"
+ }
+ ]
+ },
+ {
+ "value": "0041",
+ "title": "河南省",
+ "cities": [
+ {
+ "value": "4101",
+ "title": "郑州"
+ },
+ {
+ "value": "4102",
+ "title": "安阳"
+ },
+ {
+ "value": "4103",
+ "title": "焦作"
+ },
+ {
+ "value": "4104",
+ "title": "鹤壁"
+ },
+ {
+ "value": "4105",
+ "title": "开封"
+ },
+ {
+ "value": "4106",
+ "title": "洛阳"
+ },
+ {
+ "value": "4107",
+ "title": "南阳"
+ },
+ {
+ "value": "4108",
+ "title": "平顶山"
+ },
+ {
+ "value": "4109",
+ "title": "三门峡"
+ },
+ {
+ "value": "4110",
+ "title": "商丘"
+ },
+ {
+ "value": "4111",
+ "title": "新乡"
+ },
+ {
+ "value": "4112",
+ "title": "信阳"
+ },
+ {
+ "value": "4113",
+ "title": "许昌"
+ },
+ {
+ "value": "4114",
+ "title": "周口"
+ },
+ {
+ "value": "4115",
+ "title": "驻马店"
+ },
+ {
+ "value": "4116",
+ "title": "漯河"
+ },
+ {
+ "value": "4117",
+ "title": "濮阳"
+ },
+ {
+ "value": "4118",
+ "title": "济源"
+ }
+ ]
+ },
+ {
+ "value": "0042",
+ "title": "湖北省",
+ "cities": [
+ {
+ "value": "4201",
+ "title": "武汉"
+ },
+ {
+ "value": "4202",
+ "title": "鄂州"
+ },
+ {
+ "value": "4203",
+ "title": "恩施"
+ },
+ {
+ "value": "4204",
+ "title": "黄冈"
+ },
+ {
+ "value": "4205",
+ "title": "黄石"
+ },
+ {
+ "value": "4206",
+ "title": "荆门"
+ },
+ {
+ "value": "4207",
+ "title": "荆州"
+ },
+ {
+ "value": "4208",
+ "title": "十堰"
+ },
+ {
+ "value": "4209",
+ "title": "随州"
+ },
+ {
+ "value": "4210",
+ "title": "咸宁"
+ },
+ {
+ "value": "4211",
+ "title": "襄樊"
+ },
+ {
+ "value": "4212",
+ "title": "孝感"
+ },
+ {
+ "value": "4213",
+ "title": "神农架"
+ },
+ {
+ "value": "4214",
+ "title": "天门"
+ },
+ {
+ "value": "4215",
+ "title": "宜昌"
+ },
+ {
+ "value": "4216",
+ "title": "三峡"
+ },
+ {
+ "value": "4217",
+ "title": "潜江"
+ },
+ {
+ "value": "4218",
+ "title": "仙桃"
+ }
+ ]
+ },
+ {
+ "value": "0043",
+ "title": "湖南省",
+ "cities": [
+ {
+ "value": "4301",
+ "title": "长沙"
+ },
+ {
+ "value": "4302",
+ "title": "常德"
+ },
+ {
+ "value": "4303",
+ "title": "郴州"
+ },
+ {
+ "value": "4304",
+ "title": "衡阳"
+ },
+ {
+ "value": "4305",
+ "title": "怀化"
+ },
+ {
+ "value": "4306",
+ "title": "娄底"
+ },
+ {
+ "value": "4307",
+ "title": "邵阳"
+ },
+ {
+ "value": "4308",
+ "title": "湘潭"
+ },
+ {
+ "value": "4309",
+ "title": "湘西"
+ },
+ {
+ "value": "4310",
+ "title": "益阳"
+ },
+ {
+ "value": "4311",
+ "title": "永州"
+ },
+ {
+ "value": "4312",
+ "title": "岳阳"
+ },
+ {
+ "value": "4313",
+ "title": "张家界"
+ },
+ {
+ "value": "4314",
+ "title": "株洲"
+ },
+ {
+ "value": "4331",
+ "title": "吉首"
+ }
+ ]
+ },
+ {
+ "value": "0044",
+ "title": "广东省",
+ "cities": [
+ {
+ "value": "4401",
+ "title": "广州"
+ },
+ {
+ "value": "4402",
+ "title": "深圳"
+ },
+ {
+ "value": "4403",
+ "title": "潮州"
+ },
+ {
+ "value": "4404",
+ "title": "东莞"
+ },
+ {
+ "value": "4405",
+ "title": "佛山"
+ },
+ {
+ "value": "4406",
+ "title": "惠州"
+ },
+ {
+ "value": "4407",
+ "title": "江门"
+ },
+ {
+ "value": "4408",
+ "title": "揭阳"
+ },
+ {
+ "value": "4409",
+ "title": "茂名"
+ },
+ {
+ "value": "4410",
+ "title": "梅州"
+ },
+ {
+ "value": "4411",
+ "title": "清远"
+ },
+ {
+ "value": "4412",
+ "title": "汕头"
+ },
+ {
+ "value": "4413",
+ "title": "汕尾"
+ },
+ {
+ "value": "4414",
+ "title": "韶关"
+ },
+ {
+ "value": "4415",
+ "title": "阳江"
+ },
+ {
+ "value": "4416",
+ "title": "云浮"
+ },
+ {
+ "value": "4417",
+ "title": "湛江"
+ },
+ {
+ "value": "4418",
+ "title": "肇庆"
+ },
+ {
+ "value": "4419",
+ "title": "中山"
+ },
+ {
+ "value": "4420",
+ "title": "河源"
+ },
+ {
+ "value": "4421",
+ "title": "珠海"
+ }
+ ]
+ },
+ {
+ "value": "0045",
+ "title": "广西壮族自治区",
+ "cities": [
+ {
+ "value": "4501",
+ "title": "南宁"
+ },
+ {
+ "value": "4502",
+ "title": "百色"
+ },
+ {
+ "value": "4503",
+ "title": "北海"
+ },
+ {
+ "value": "4504",
+ "title": "桂林"
+ },
+ {
+ "value": "4505",
+ "title": "河池"
+ },
+ {
+ "value": "4506",
+ "title": "柳州"
+ },
+ {
+ "value": "4507",
+ "title": "梧州"
+ },
+ {
+ "value": "4508",
+ "title": "玉林"
+ },
+ {
+ "value": "4509",
+ "title": "崇左"
+ },
+ {
+ "value": "4510",
+ "title": "防城港"
+ },
+ {
+ "value": "4511",
+ "title": "贵港"
+ },
+ {
+ "value": "4512",
+ "title": "贺州"
+ },
+ {
+ "value": "4513",
+ "title": "来宾"
+ },
+ {
+ "value": "4514",
+ "title": "钦州"
+ }
+ ]
+ },
+ {
+ "value": "0046",
+ "title": "海南省",
+ "cities": [
+ {
+ "value": "4601",
+ "title": "海口"
+ },
+ {
+ "value": "4602",
+ "title": "三亚"
+ },
+ {
+ "value": "4603",
+ "title": "白沙"
+ },
+ {
+ "value": "4604",
+ "title": "保亭"
+ },
+ {
+ "value": "4605",
+ "title": "昌江"
+ },
+ {
+ "value": "4606",
+ "title": "澄迈"
+ },
+ {
+ "value": "4607",
+ "title": "儋州"
+ },
+ {
+ "value": "4608",
+ "title": "定安"
+ },
+ {
+ "value": "4609",
+ "title": "东方"
+ },
+ {
+ "value": "4610",
+ "title": "乐东"
+ },
+ {
+ "value": "4611",
+ "title": "临高"
+ },
+ {
+ "value": "4612",
+ "title": "陵水"
+ },
+ {
+ "value": "4613",
+ "title": "琼海"
+ },
+ {
+ "value": "4614",
+ "title": "琼中"
+ },
+ {
+ "value": "4615",
+ "title": "屯昌"
+ },
+ {
+ "value": "4616",
+ "title": "万宁"
+ },
+ {
+ "value": "4617",
+ "title": "文昌"
+ },
+ {
+ "value": "4618",
+ "title": "五指山"
+ },
+ {
+ "value": "4619",
+ "title": "洋浦"
+ }
+ ]
+ },
+ {
+ "value": "0050",
+ "title": "重庆市",
+ "cities": [
+ {
+ "value": "5000",
+ "title": "重庆市"
+ }
+ ]
+ },
+ {
+ "value": "0051",
+ "title": "四川省",
+ "cities": [
+ {
+ "value": "5101",
+ "title": "成都"
+ },
+ {
+ "value": "5102",
+ "title": "巴中"
+ },
+ {
+ "value": "5103",
+ "title": "达州"
+ },
+ {
+ "value": "5104",
+ "title": "德阳"
+ },
+ {
+ "value": "5105",
+ "title": "广安"
+ },
+ {
+ "value": "5106",
+ "title": "广元"
+ },
+ {
+ "value": "5107",
+ "title": "乐山"
+ },
+ {
+ "value": "5108",
+ "title": "凉山"
+ },
+ {
+ "value": "5109",
+ "title": "眉山"
+ },
+ {
+ "value": "5110",
+ "title": "绵阳"
+ },
+ {
+ "value": "5111",
+ "title": "南充"
+ },
+ {
+ "value": "5112",
+ "title": "内江"
+ },
+ {
+ "value": "5113",
+ "title": "攀枝花"
+ },
+ {
+ "value": "5114",
+ "title": "遂宁"
+ },
+ {
+ "value": "5115",
+ "title": "雅安"
+ },
+ {
+ "value": "5116",
+ "title": "宜宾"
+ },
+ {
+ "value": "5117",
+ "title": "自贡"
+ },
+ {
+ "value": "5118",
+ "title": "泸州"
+ },
+ {
+ "value": "5119",
+ "title": "阿坝"
+ },
+ {
+ "value": "5120",
+ "title": "甘孜"
+ },
+ {
+ "value": "5121",
+ "title": "资阳"
+ }
+ ]
+ },
+ {
+ "value": "0052",
+ "title": "贵州省",
+ "cities": [
+ {
+ "value": "5201",
+ "title": "贵阳"
+ },
+ {
+ "value": "5202",
+ "title": "安顺"
+ },
+ {
+ "value": "5203",
+ "title": "毕节"
+ },
+ {
+ "value": "5204",
+ "title": "六盘水"
+ },
+ {
+ "value": "5205",
+ "title": "铜仁"
+ },
+ {
+ "value": "5206",
+ "title": "遵义"
+ },
+ {
+ "value": "5207",
+ "title": "黔东南"
+ },
+ {
+ "value": "5208",
+ "title": "黔南"
+ },
+ {
+ "value": "5209",
+ "title": "黔西南"
+ }
+ ]
+ },
+ {
+ "value": "0053",
+ "title": "云南省",
+ "cities": [
+ {
+ "value": "5301",
+ "title": "昆明"
+ },
+ {
+ "value": "5302",
+ "title": "西双版纳"
+ },
+ {
+ "value": "5303",
+ "title": "保山"
+ },
+ {
+ "value": "5304",
+ "title": "楚雄"
+ },
+ {
+ "value": "5305",
+ "title": "大理"
+ },
+ {
+ "value": "5306",
+ "title": "德宏"
+ },
+ {
+ "value": "5307",
+ "title": "红河"
+ },
+ {
+ "value": "5308",
+ "title": "丽江"
+ },
+ {
+ "value": "5309",
+ "title": "临沧"
+ },
+ {
+ "value": "5310",
+ "title": "怒江"
+ },
+ {
+ "value": "5311",
+ "title": "曲靖"
+ },
+ {
+ "value": "5312",
+ "title": "思茅"
+ },
+ {
+ "value": "5313",
+ "title": "文山"
+ },
+ {
+ "value": "5314",
+ "title": "玉溪"
+ },
+ {
+ "value": "5315",
+ "title": "昭通"
+ },
+ {
+ "value": "5316",
+ "title": "中甸"
+ },
+ {
+ "value": "5317",
+ "title": "迪庆州"
+ }
+ ]
+ },
+ {
+ "value": "0054",
+ "title": "西藏自治区",
+ "cities": [
+ {
+ "value": "5401",
+ "title": "拉萨"
+ },
+ {
+ "value": "5402",
+ "title": "阿里"
+ },
+ {
+ "value": "5403",
+ "title": "昌都"
+ },
+ {
+ "value": "5404",
+ "title": "林芝"
+ },
+ {
+ "value": "5405",
+ "title": "那曲"
+ },
+ {
+ "value": "5406",
+ "title": "日喀则"
+ },
+ {
+ "value": "5407",
+ "title": "山南"
+ },
+ {
+ "value": "5424",
+ "title": "樟木口岸"
+ }
+ ]
+ },
+ {
+ "value": "0061",
+ "title": "陕西省",
+ "cities": [
+ {
+ "value": "6101",
+ "title": "西安"
+ },
+ {
+ "value": "6102",
+ "title": "安康"
+ },
+ {
+ "value": "6103",
+ "title": "宝鸡"
+ },
+ {
+ "value": "6104",
+ "title": "汉中"
+ },
+ {
+ "value": "6105",
+ "title": "商洛"
+ },
+ {
+ "value": "6106",
+ "title": "铜川"
+ },
+ {
+ "value": "6107",
+ "title": "渭南"
+ },
+ {
+ "value": "6108",
+ "title": "咸阳"
+ },
+ {
+ "value": "6109",
+ "title": "延安"
+ },
+ {
+ "value": "6110",
+ "title": "榆林"
+ }
+ ]
+ },
+ {
+ "value": "0062",
+ "title": "甘肃省",
+ "cities": [
+ {
+ "value": "6201",
+ "title": "兰州"
+ },
+ {
+ "value": "6202",
+ "title": "白银"
+ },
+ {
+ "value": "6203",
+ "title": "定西"
+ },
+ {
+ "value": "6204",
+ "title": "东风"
+ },
+ {
+ "value": "6205",
+ "title": "合作"
+ },
+ {
+ "value": "6206",
+ "title": "嘉峪关"
+ },
+ {
+ "value": "6207",
+ "title": "金昌"
+ },
+ {
+ "value": "6208",
+ "title": "酒泉"
+ },
+ {
+ "value": "6209",
+ "title": "矿区"
+ },
+ {
+ "value": "6210",
+ "title": "临夏"
+ },
+ {
+ "value": "6211",
+ "title": "陇南"
+ },
+ {
+ "value": "6212",
+ "title": "平凉"
+ },
+ {
+ "value": "6213",
+ "title": "庆阳"
+ },
+ {
+ "value": "6214",
+ "title": "天水"
+ },
+ {
+ "value": "6215",
+ "title": "武威"
+ },
+ {
+ "value": "6216",
+ "title": "张掖"
+ },
+ {
+ "value": "6217",
+ "title": "甘南州"
+ }
+ ]
+ },
+ {
+ "value": "0063",
+ "title": "青海省",
+ "cities": [
+ {
+ "value": "6301",
+ "title": "西宁"
+ },
+ {
+ "value": "6302",
+ "title": "海东"
+ },
+ {
+ "value": "6322",
+ "title": "海北"
+ },
+ {
+ "value": "6323",
+ "title": "黄南"
+ },
+ {
+ "value": "6325",
+ "title": "海南"
+ },
+ {
+ "value": "6326",
+ "title": "果洛"
+ },
+ {
+ "value": "6327",
+ "title": "玉树"
+ },
+ {
+ "value": "6328",
+ "title": "海西"
+ }
+ ]
+ },
+ {
+ "value": "0064",
+ "title": "宁夏回族自治区",
+ "cities": [
+ {
+ "value": "6401",
+ "title": "银川"
+ },
+ {
+ "value": "6402",
+ "title": "中卫"
+ },
+ {
+ "value": "6403",
+ "title": "固原"
+ },
+ {
+ "value": "6404",
+ "title": "石嘴山"
+ },
+ {
+ "value": "6405",
+ "title": "吴忠"
+ }
+ ]
+ },
+ {
+ "value": "0065",
+ "title": "新疆维吾尔自治区",
+ "cities": [
+ {
+ "value": "6501",
+ "title": "乌鲁木齐"
+ },
+ {
+ "value": "6502",
+ "title": "阿克苏"
+ },
+ {
+ "value": "6503",
+ "title": "阿勒泰"
+ },
+ {
+ "value": "6504",
+ "title": "巴州"
+ },
+ {
+ "value": "6505",
+ "title": "博州"
+ },
+ {
+ "value": "6506",
+ "title": "昌吉"
+ },
+ {
+ "value": "6507",
+ "title": "哈密"
+ },
+ {
+ "value": "6508",
+ "title": "和田"
+ },
+ {
+ "value": "6509",
+ "title": "喀什"
+ },
+ {
+ "value": "6510",
+ "title": "克拉玛依"
+ },
+ {
+ "value": "6511",
+ "title": "马兰"
+ },
+ {
+ "value": "6512",
+ "title": "石河子"
+ },
+ {
+ "value": "6513",
+ "title": "塔城"
+ },
+ {
+ "value": "6514",
+ "title": "吐鲁番"
+ },
+ {
+ "value": "6515",
+ "title": "伊犁"
+ },
+ {
+ "value": "6516",
+ "title": "克州"
+ },
+ {
+ "value": "6517",
+ "title": "阿拉尔"
+ },
+ {
+ "value": "6518",
+ "title": "五家渠"
+ }
+ ]
+ },
+ {
+ "value": "2003",
+ "title": "台湾省",
+ "cities": [{
+ "value": "9903",
+ "title": "台湾省"
+ }]
+ },
+ {
+ "value": "2001",
+ "title": "香港特别行政区",
+ "cities": [{
+ "value": "9901",
+ "title": "香港特别行政区"
+ }]
+ },
+ {
+ "value": "2002",
+ "title": "澳门特别行政区",
+ "cities": [{
+ "value": "9902",
+ "title": "澳门特别行政区"
+ }]
+ }
+]
\ No newline at end of file
diff --git a/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java b/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java
index fa82492d..b4b890a4 100644
--- a/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java
+++ b/ghy-common/src/main/java/com/ghy/common/adapay/AdapayService.java
@@ -9,15 +9,15 @@ import com.ghy.common.adapay.callback.mapping.RefundReplyMapping;
import com.ghy.common.adapay.callback.model.Expend;
import com.ghy.common.adapay.callback.model.WxLiteExpend;
import com.huifu.adapay.core.exception.BaseAdaPayException;
-import com.huifu.adapay.model.Drawcash;
-import com.huifu.adapay.model.Payment;
-import com.huifu.adapay.model.Refund;
+import com.huifu.adapay.model.*;
import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
+import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.Map;
@@ -29,9 +29,95 @@ public class AdapayService {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
+ @Resource
private AdapayProperties adapayProperties;
+ /**
+ * 创建结算账户对象 https://docs.adapay.tech/api/trade.html#settle-account-create
+ * 创建结算账户对象是为一个已创建用户对象创建结算账户,用于对用户分账金额的结算,目前仅支持绑定银行卡结算账户。
+ * 用户创建对私结算账户时,会对银行卡号、银行卡开户姓名、身份证号三要素认证,若认证失败,则创建结算账户失败。
+ * 每个结算账户对象 Adapay 系统会生成一个唯一的 id,可用于查询结算账户对象,或者删除结算账户对象。
+ *
+ * @param memberId [必填]商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
+ * @param cardId [必填]银行卡号
+ * @param cardName [必填]银行卡对应的户名
+ * @param telNo [必填]手机号
+ * @param bankAcctType [必填]银行账户类型:1-对公;2-对私
+ * @param certId 证件号,银行账户类型为对私时必填
+ * @param bankCode 银行编码,银行账户类型对公时必填,详见附录 银行代码 https://docs.adapay.tech/api/appendix.html#id3
+ * @param provCode 银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时必填,省市编码详见area.json
+ * @param areaCode 银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时必填,省市编码详见area.json
+ * @return 成功时同步返回一个包含 SettleAccount对象 的 JSON。
+ */
+ public Map createSettleAccount(@NotNull String memberId, @NotNull String cardId, @NotNull String cardName,
+ @NotNull String bankAcctType, String certId, String telNo,
+ String bankCode, String provCode, String areaCode) throws BaseAdaPayException {
+
+ // 结算账户信息 参见结算账户信息(AccountInfo)对象 https://docs.adapay.tech/api/appendix.html#accountinfo
+ Map accountInfo = new HashMap<>(9);
+
+ switch (bankAcctType) {
+ case "1":
+ Assert.isTrue(StringUtils.isNoneBlank(bankCode, provCode, areaCode),
+ "[bankCode, provCode, areaCode] cannot be empty !");
+ case "2":
+ Assert.hasText(cardId, "cardId is blank !");
+ accountInfo.put("cert_type", "00");
+ accountInfo.put("cert_id", certId);
+ break;
+ default:
+ throw new BaseAdaPayException("Wrong bankAcctType !");
+ }
+
+ accountInfo.put("card_id", cardId);
+ accountInfo.put("card_name", cardName);
+ accountInfo.put("tel_no", telNo);
+ accountInfo.put("bank_code", bankCode);
+ accountInfo.put("bank_acct_type", bankAcctType);
+ accountInfo.put("prov_code", provCode);
+ accountInfo.put("area_code", areaCode);
+
+ Map settleCountParams = new HashMap<>(4);
+ settleCountParams.put("member_id", memberId);
+ settleCountParams.put("app_id", adapayProperties.getAppId());
+ // 目前仅支持:bank_account(银行卡)
+ settleCountParams.put("channel", "bank_account");
+ settleCountParams.put("account_info", accountInfo);
+ return SettleAccount.create(settleCountParams);
+ }
+
+ /**
+ * 创建实名用户 https://docs.adapay.tech/api/trade.html#member-realname
+ *
+ * @param memberId [必填]商户下的用户id,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
+ * @param telNo [必填]用户手机号
+ * @param username [必填]用户姓名
+ * @param certId [必填]证件号
+ * @param location 用户地址
+ * @param email 用户邮箱
+ * @param gender MALE:男,FEMALE:女,为空时表示未填写
+ * @param nickname 用户昵称
+ * @return 成功时同步返回一个包含Member对象的JSON
+ */
+ public Map createMember(String memberId, String telNo, String username, String certId,
+ String location, String email, String gender, String nickname) throws BaseAdaPayException {
+ Map memberParams = new HashMap<>(7);
+ memberParams.put("member_id", memberId);
+ memberParams.put("app_id", adapayProperties.getAppId());
+ memberParams.put("location", location);
+ memberParams.put("email", email);
+ memberParams.put("gender", gender);
+ memberParams.put("nickname", nickname);
+ memberParams.put("tel_no", telNo);
+ memberParams.put("user_name", username);
+ // 证件类型,仅支持:00-身份证
+ memberParams.put("cert_type", "00");
+ // 接口功能号
+ memberParams.put("adapay_func_code", "members.realname");
+ memberParams.put("cert_id", certId);
+ return AdapayCommon.requestAdapay(memberParams);
+ }
+
/**
* 对指定商户或者商户下用户的结算账户可用余额发起主动取现操作,金额从账户中提到绑定的结算银行卡中
*
@@ -67,9 +153,9 @@ public class AdapayService {
/**
* 支付宝正扫支付
*/
- public Map alipayQrPay(PayCallback callback, WxLiteExpend expend, String orderNo, String payAmt,
+ public Map alipayQrPay(PayCallback callback, String orderNo, String payAmt,
String goodsTittle, String goodsDesc, String divMembers, String description) throws BaseAdaPayException {
- return pay(callback, PayChannelEnum.ALIPAY_QR.getCode(), expend, orderNo, payAmt, goodsTittle, goodsDesc, divMembers, description);
+ return pay(callback, PayChannelEnum.ALIPAY_QR.getCode(), null, orderNo, payAmt, goodsTittle, goodsDesc, divMembers, description);
}
/**
@@ -114,10 +200,7 @@ public class AdapayService {
paymentParams.put("description", description);
paymentParams.put("expend", expend);
PayReplyMapping.putCallback(orderNo, callback);
-
- paymentParams.forEach((key, value) -> {
- logger.info("key is " + key + ", value is " + value);
- });
+ logger.info("paymentParams=" + paymentParams);
return Payment.create(paymentParams);
}