update 汇付

This commit is contained in:
2023-04-27 09:53:25 +08:00
parent 72a856ee7b
commit 36561d6169
5 changed files with 402 additions and 1 deletions

View File

@@ -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<String, Object> 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<String, Object> 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);
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<String, Object> 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<String, Object> response = Payment.create(paymentParams);
} catch (BaseAdaPayException e) {
e.printStackTrace();
}
}
}