From 36561d6169cb0d84ec2767758aaa5b698a6f2036 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Thu, 27 Apr 2023 09:53:25 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B1=87=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/SpringBootTestController.java | 29 +++- .../com/jsowell/adapay/common/AdaPayment.java | 154 ++++++++++++++++++ .../adapay/common/CreateAdaPaymentParam.java | 114 +++++++++++++ .../com/jsowell/adapay/common/DeviceInfo.java | 72 ++++++++ .../jsowell/adapay/service/AdapayService.java | 34 ++++ 5 files changed, 402 insertions(+), 1 deletion(-) create mode 100644 jsowell-pile/src/main/java/com/jsowell/adapay/common/AdaPayment.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/adapay/common/CreateAdaPaymentParam.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/adapay/common/DeviceInfo.java create mode 100644 jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index b2a2df73b..b86990d29 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -1,6 +1,9 @@ import com.alibaba.fastjson2.JSONObject; import com.fasterxml.jackson.core.JsonProcessingException; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import com.huifu.adapay.core.exception.BaseAdaPayException; +import com.huifu.adapay.model.Payment; import com.jsowell.JsowellApplication; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; @@ -154,6 +157,30 @@ public class SpringBootTestController { @Autowired private IPileAuthCardService pileAuthCardService; + /** + * 创建交易对象 + */ + @Test + public void test() { + // 请求参数 + Map paymentParams = Maps.newHashMap(); + paymentParams.put("order_no", "fasdftawefawefawsdcaseg"); + paymentParams.put("pay_amt", "0.05"); + paymentParams.put("app_id", "api_test_a6ac1931-11d6-4d76-8e73-086f8219c9e7"); + paymentParams.put("pay_channel", "wx_lite"); + paymentParams.put("goods_title", "Your goods_title"); + paymentParams.put("goods_desc", "Your goods_desc"); + paymentParams.put("description", "payment Discription"); + // paymentParams.put("div_members", [{"amount":"0.05", "fee_flag":"Y", "member_id":"member_id_test"}]); + // 调用创建方法,获取 Payment对象_ + try { + Map response = Payment.create(paymentParams); + System.out.println(response); + } catch (BaseAdaPayException e) { + e.printStackTrace(); + } + } + @Test public void testupdateElecAmount() { orderBasicInfoService.updateElecAmount(); @@ -755,7 +782,7 @@ public class SpringBootTestController { } @Test - public void testGetMemberToken(){ + public void testGetMemberToken() { String memberId = JWTUtils.getMemberId("eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NzY1MTY5MzgsImV4cCI6MTY3OTEwODkzOH0.4MwhZIOpnCfQloR7zEm2hwPOh2yyI2qxbBbTcv_SnZ4"); System.out.println(memberId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/common/AdaPayment.java b/jsowell-pile/src/main/java/com/jsowell/adapay/common/AdaPayment.java new file mode 100644 index 000000000..c4851f205 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/common/AdaPayment.java @@ -0,0 +1,154 @@ +package com.jsowell.adapay.common; + +import lombok.Data; + +/** + * 关于支付,Adapay 系统内数据是通过 Payment对象 的形式进行流转,所有的支付相关信息都会存储在这个对象中, + * 您可以通过 Adapay 开放的方法创建一个新的 Payment对象,也可以通过 Payment对象 的唯一标识 id 来查询一个已经存在的 Payment对象 状态 + */ +@Data +public class AdaPayment { + /** + * String(64) + * + * 由 Adapay 生成的支付对象 id, 该 id 在 Adapay 系统内唯一 + */ + private String id; + + /** + * + * String(20) + * + * 支付对象,payment + */ + private String object; + + /** + * Timestamp + * + * 支付创建时的 10 位时间戳 + */ + private String created_time; + + /** + * String(64) + * + * 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 + */ + private String order_no; + + /** + * String(5) + * + * 是否 prod模式,true 是 prod模式,false 是 mock模式 + */ + private String prod_mode; + + /** + * String(64) + * + * 控制台 主页面应用的app_id + */ + private String app_id; + + /** + * String(20) + * + * 支付渠道,参见 支付渠道 说明 + */ + private String pay_channel; + + /** + * String(16) + * + * 交易金额(必须大于 0),保留两位小数点,如0.10、100.05等 + */ + private String pay_amt; + + /** + * + * String(3) + * + * 详见 货币代码 + */ + private String currency; + + /** + * String(128) + * + * 可临时用来查询支付订单状态的链接,此链接的有效期只有30分钟 + */ + private String query_url; + + /** + * String(128) + * + * 订单附加说明 + */ + private String description; + + /** + * Map + * + * 支付渠道请求成功返回的额外参数。详见 支付渠道 expend参数 说明 + */ + private String expend; + + /** + * String(64) + * + * 用户账单上的商户订单号 + */ + private String party_order_id; + + /** + * String(64) + * + * 用户账单上的交易订单号 + */ + private String out_trans_id; + + /** + * String(14) + * + * 用户支付完成时间 + */ + private String end_time; + + /** + * String(16) + * + * 当前交易状态,参见 状态 说明 + */ + private String status; + + /** + * + * String(32) + * + * 错误码,详见 错误 + */ + private String error_code; + + /** + * String(128) + * + * 错误描述,详见 错误 + */ + private String error_msg; + + /** + * String(32) + * + * 错误类型,详见 错误 + */ + private String error_type; + + /** + * String(32) + * + * 当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误 + */ + private String invalid_param; + +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/common/CreateAdaPaymentParam.java b/jsowell-pile/src/main/java/com/jsowell/adapay/common/CreateAdaPaymentParam.java new file mode 100644 index 000000000..669bf71f4 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/common/CreateAdaPaymentParam.java @@ -0,0 +1,114 @@ +package com.jsowell.adapay.common; + +import lombok.Data; + +/** + * 创建Adapay 支付对象参数 + */ +@Data +public class CreateAdaPaymentParam { + /** + * String(64) + * Y + * 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 + */ + private String order_no; + + /** + * String(64) + * Y + * 控制台 主页面应用的app_id + */ + private String app_id; + + /** + * String(20) + * Y + * 支付渠道,参见 支付渠道 + */ + private String pay_channel; + + /** + * String(14) + * Y + * 交易金额,必须大于0,保留两位小数点,如0.10、100.05等 + */ + private String pay_amt; + + /** + * String(20) + * N + * 支付模式,delay- 延时分账模式(值为 delay 时,div_members 字段必须为空);值为空时并且div_mermbers不为空时,表示实时分账;值为空时并且div_mermbers也为空时,表示不分账 + */ + private String pay_mode; + + /** + * String(64) + * Y + * 商品标题 + */ + private String goods_title; + + /** + * String(127) + * Y + * 商品描述信息,微信小程序和微信公众号该字段最大长度42个字符 + */ + private String goods_desc; + + /** + * String(3) + * N + * 3位 ISO 货币代码,小写字母,默认为人民币:cny,详见 货币代码 + */ + private String currency; + + /** + * String + * N + * 分账对象信息列表,最多仅支持7个分账方,json 数组形式,详见 分账对象信息列表 + */ + private String div_members; + + /** + * String(128) + * N + * 订单附加说明 + */ + private String description; + + /** + * String(20) + * N + * 订单失效时间,输入格式:yyyyMMddHHmmss,最长失效时间为微信、支付宝:反扫类:3分钟;非反扫类:2小时;云闪付:1天,值为空时默认最长时效时间 + */ + private String time_expire; + + /** + * Map + * Y + * 前端设备信息,详见 设备信息 + */ + private String device_info; + + /** + * Map + * N + * 支付渠道额外参数,JSON格式,条件可输入,详见 支付渠道 expend参数 + */ + private String expend; + + /** + * String(250) + * N + * 异步通知地址,url为http/https路径,服务器POST回调,URL 上请勿附带参数 + */ + private String notify_url; + + /** + * String(1) + * N + * 手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方 + */ + private String fee_mode; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/common/DeviceInfo.java b/jsowell-pile/src/main/java/com/jsowell/adapay/common/DeviceInfo.java new file mode 100644 index 000000000..b5b13af02 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/common/DeviceInfo.java @@ -0,0 +1,72 @@ +package com.jsowell.adapay.common; + +import lombok.Data; + +/** + * 设备信息 + */ +@Data +public class DeviceInfo { + /** + * String(2) + * N + * 设备类型,1 :手机, 2 :平板, 3:手表, 4:PC + */ + private String device_type; + + /** + * String(64) + * Y + * 交易设备所在的公网 IP + */ + private String device_ip; + + /** + * String(8) + * N + * 终端设备号,收单机构为商户终端分配的唯一编号。当pay_channel的值为alipay_scan或wx_scan时必填。 + */ + private String device_id; + + /** + * String(64) + * N + * 交易设备 MAC + */ + private String device_mac; + + /** + * String(64) + * N + * 交易设备 IMEI + */ + private String device_imei; + + /** + * String(64) + * N + * 交易设备 IMSI + */ + private String device_imsi; + + /** + * String(64) + * N + * 交易设备 ICCID + */ + private String device_iccId; + + /** + * String(64) + * N + * 交易设备 WIFIMAC + */ + private String device_wifi_mac; + + /** + * String(64) + * N + * 交易设备 GPS + */ + private String device_gps; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java new file mode 100644 index 000000000..5cdc52653 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java @@ -0,0 +1,34 @@ +package com.jsowell.adapay.service; + +import com.google.common.collect.Maps; +import com.huifu.adapay.core.exception.BaseAdaPayException; +import com.huifu.adapay.model.Payment; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +public class AdapayService { + + /** + * 创建交易对象 + */ + public void test() { + // 请求参数 + Map paymentParams = Maps.newHashMap(); + paymentParams.put("order_no", "123456789"); + paymentParams.put("pay_amt", "0.05"); + paymentParams.put("app_id", "app_XXXXXXXX"); + paymentParams.put("pay_channel", "alipay"); + paymentParams.put("goods_title", "Your goods_title"); + paymentParams.put("goods_desc", "Your goods_desc"); + paymentParams.put("description", "payment Discription"); + // paymentParams.put("div_members", [{"amount":"0.05", "fee_flag":"Y", "member_id":"member_id_test"}]); + // 调用创建方法,获取 Payment对象_ + try { + Map response = Payment.create(paymentParams); + } catch (BaseAdaPayException e) { + e.printStackTrace(); + } + } +}