|
@@ -1,26 +1,49 @@
|
|
|
package com.izouma.nineth.service;
|
|
package com.izouma.nineth.service;
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
|
|
+import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
|
|
+import com.huifu.adapay.Adapay;
|
|
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
|
|
import com.huifu.adapay.model.AdapayCommon;
|
|
import com.huifu.adapay.model.AdapayCommon;
|
|
|
|
|
+import com.huifu.adapay.model.MerConfig;
|
|
|
import com.huifu.adapay.model.Payment;
|
|
import com.huifu.adapay.model.Payment;
|
|
|
-import com.izouma.nineth.ApplicationTests;
|
|
|
|
|
-import com.izouma.nineth.config.GeneralProperties;
|
|
|
|
|
|
|
+import com.huifu.adapay.model.Refund;
|
|
|
|
|
+import com.izouma.nineth.utils.SnowflakeIdWorker;
|
|
|
|
|
+import com.izouma.nineth.utils.excel.BigIntegerConverter;
|
|
|
|
|
+import com.izouma.nineth.utils.excel.LocalDateConverter;
|
|
|
|
|
+import com.izouma.nineth.utils.excel.LocalDateTimeConverter;
|
|
|
|
|
+import lombok.Data;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
-public class AdapayServiceTest extends ApplicationTests {
|
|
|
|
|
- @Autowired
|
|
|
|
|
- private AdapayService adapayService;
|
|
|
|
|
- @Autowired
|
|
|
|
|
- private GeneralProperties generalProperties;
|
|
|
|
|
|
|
+public class AdapayServiceTest {
|
|
|
|
|
+ private final String appId = "app_f8760acc-f4d8-46f6-8f70-d80e36517075";
|
|
|
|
|
+
|
|
|
|
|
+ public AdapayServiceTest() {
|
|
|
|
|
+ Adapay.debug = true;
|
|
|
|
|
+ Adapay.prodMode = true;
|
|
|
|
|
+
|
|
|
|
|
+ MerConfig merConfig = new MerConfig();
|
|
|
|
|
+ merConfig.setApiKey("api_live_8818cac1-894b-40bc-ac77-803e02e9c260");
|
|
|
|
|
+ merConfig.setApiMockKey("api_test_0b1b0eb9-30e1-4acd-8e03-10b529de1856");
|
|
|
|
|
+ merConfig.setRSAPrivateKey("MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQCnIaIrFP598qcf/s3FqXxMTjrVAevnf1w5CAMdJqcRFv0WvdLEmNRxxqAYSLl/iQ8AyU4yqVwkwYqvn/aENBg0iQ5h5qboxb8T6xmrZLctk97TiIuCUwbd7Q5NBHJXzHlaKc1p1KBvTCJDMw8+t0Jh3sBkBvu7l0KPliEQHtPLBDkKvy3NBQD6BMy47kPersjSUH53HBvNpcjcPZGpUX/TmL3SNkS98RkoebFxuorK5UdazYN5xvarjfcYziShIjU3WIZJb52DGUxYWTk6vJKZrJhw7AhWIEQpH7qJxvml/B8RMQ4guHdtp3ojxwkHDtZdPU9rY8i6EHwba4qOYgobAgMBAAECggEAT36L5/oAYl+8ZleIAHBxEspS6WYUkvPdJbNN59uus04/60U2rxQSWFulYmeU87h5TmJxs18i2MjF8msfkhpFORfHo4FV+nm0PQEiIIezKRagcfUMhlx/c6eBmdh3mpNDVUN01NWxyb5ovZXXtnjsNikBUZKQwdVcb3d1GnnPO0xtt6/0xwiduCkA2ihS1tgnsYYDhMHgukIdZ3eczn3stRPQ+QyCt1JWS6DDd1nS3S2RyPZw8P9Z1zzJFVKH8z3bGqk3/98Lw7Hw+rKFnKhIA6/H9ZVORKw5OuGC3Ozy6cVbmUn8tuw3sC0NdR7w56dedB+fjJB8od0nahX1Cc6eQQKBgQDckcenslWqjs2PbncwW1wqlw7FdJX9rzJAg7kp9ItpHCoNi/kSgXeLphHXWJmyj7a1BkWynmTGxO48X3dPXUrDPFKJc42fSbxMgAQdtc/A2z+v7Ga/oUpH8jajKfKmcgeRX026R7gd9W0yi0EW+C0WdFhrzNKKY4shvnYy9lc+QwKBgQDB+mHSllqLqYru0bLrtKOKJXaR3N3INxDBZKnRqba4tUKN35IVIexiEMkHmC51jtjoRyA5Y+fc/8P11i9FbuShtRVGHWeyDibKlwff5zrETveSLTpSULBKZ6MsFSm0Fo1krSUC1QTUGG5VX/wwWm9AB2UKJqG5cMDd3i3RiPeDSQKBgBs1ED+rS83iF5Eduy4H1vKZ94R7wRSty7ERjoGSXK/2fWl2Xp7dwXVEYucBUtQnzg2+XFKQHzY1jH19+SWdCF/UzQmPa2S+n6+ACwHvL1VGtjBpJLN2nccKJZsyzW+imTRhYSEdP6TSZUnay4idzFH8v/tsJHxVkw/ygnn+0PwpAn8uOHsWsrzgioWQYmc/wss1H7ghCX/PNU/IxTOxwb7IRGiXZa5pWqv4sgc0yA5J9L+6mTgUdLnK7ybCbUbWRJY18fAfxOHwi26y10oJEA/wtuBG9H/xHUjkcc1vs5s8TiNi2d73zcpYv3mK3lQ5MVNQ7nIk+Q+QIE3UkBxa0UgpAoGBAMDwg0ebzBEZsV2cr/Er2b25LsXteDJ+V67plBNrv+A1/omA9a52sWek4bY0D+Uu6zPTDaLj9BhHC2wJmThYl0eLRKyDKYQslBR3h253Gsn3If6RH9/tSyDsQ88iAEI1f6QH27bGHL9VDrsLGEFg5E7ZEzFQuJPqoUvBOoURNwa6");
|
|
|
|
|
+ merConfig.setRSAPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApyGiKxT+ffKnH/7Nxal8TE461QHr539cOQgDHSanERb9Fr3SxJjUccagGEi5f4kPAMlOMqlcJMGKr5/2hDQYNIkOYeam6MW/E+sZq2S3LZPe04iLglMG3e0OTQRyV8x5WinNadSgb0wiQzMPPrdCYd7AZAb7u5dCj5YhEB7TywQ5Cr8tzQUA+gTMuO5D3q7I0lB+dxwbzaXI3D2RqVF/05i90jZEvfEZKHmxcbqKyuVHWs2Decb2q433GM4koSI1N1iGSW+dgxlMWFk5OrySmayYcOwIViBEKR+6icb5pfwfETEOILh3bad6I8cJBw7WXT1Pa2PIuhB8G2uKjmIKGwIDAQAB");
|
|
|
|
|
+ Adapay.publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB";
|
|
|
|
|
+ try {
|
|
|
|
|
+ Adapay.initWithMerConfig(merConfig);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
public void testPay() throws BaseAdaPayException {
|
|
public void testPay() throws BaseAdaPayException {
|
|
@@ -36,7 +59,7 @@ public class AdapayServiceTest extends ApplicationTests {
|
|
|
put("amount", BigDecimal.valueOf(0.05));
|
|
put("amount", BigDecimal.valueOf(0.05));
|
|
|
}});
|
|
}});
|
|
|
|
|
|
|
|
- paymentParams.put("app_id", "app_f8760acc-f4d8-46f6-8f70-d80e36517075");
|
|
|
|
|
|
|
+ paymentParams.put("app_id", appId);
|
|
|
paymentParams.put("order_no", "jsdk_payment" + System.currentTimeMillis());
|
|
paymentParams.put("order_no", "jsdk_payment" + System.currentTimeMillis());
|
|
|
paymentParams.put("pay_channel", "wx_pub");
|
|
paymentParams.put("pay_channel", "wx_pub");
|
|
|
paymentParams.put("pay_amt", "0.10");
|
|
paymentParams.put("pay_amt", "0.10");
|
|
@@ -59,34 +82,102 @@ public class AdapayServiceTest extends ApplicationTests {
|
|
|
params.put("order_no", "host_wx_lite_params_sdk_" + System.currentTimeMillis());
|
|
params.put("order_no", "host_wx_lite_params_sdk_" + System.currentTimeMillis());
|
|
|
params.put("adapay_func_code", "wxpay.createOrder");
|
|
params.put("adapay_func_code", "wxpay.createOrder");
|
|
|
params.put("pay_amt", "0.02");
|
|
params.put("pay_amt", "0.02");
|
|
|
- params.put("app_id", "app_f8760acc-f4d8-46f6-8f70-d80e36517075");
|
|
|
|
|
|
|
+ params.put("app_id", appId);
|
|
|
params.put("currency", "cny");
|
|
params.put("currency", "cny");
|
|
|
params.put("goods_title", "Your goods_title");
|
|
params.put("goods_title", "Your goods_title");
|
|
|
params.put("goods_desc", "Your goods_desc");
|
|
params.put("goods_desc", "Your goods_desc");
|
|
|
params.put("description", "payment Discription");
|
|
params.put("description", "payment Discription");
|
|
|
- params.put("callback_url", generalProperties.getHost() + "/9th/orders");
|
|
|
|
|
|
|
+ params.put("callback_url", "/9th/orders");
|
|
|
Map<String, Object> response = AdapayCommon.requestAdapayUits(params);
|
|
Map<String, Object> response = AdapayCommon.requestAdapayUits(params);
|
|
|
System.out.println("payment result=" + JSON.toJSONString(response, SerializerFeature.PrettyFormat));
|
|
System.out.println("payment result=" + JSON.toJSONString(response, SerializerFeature.PrettyFormat));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Test
|
|
|
|
|
- public void createMember() throws BaseAdaPayException {
|
|
|
|
|
- adapayService.createMember(99999999999999L, "15077886171", "熊竹", "321002199408304614");
|
|
|
|
|
|
|
+ @Data
|
|
|
|
|
+ public static class RefundOrder {
|
|
|
|
|
+ @ExcelProperty("交易时间")
|
|
|
|
|
+ private LocalDateTime time;
|
|
|
|
|
+
|
|
|
|
|
+ @ExcelProperty("订单号")
|
|
|
|
|
+ private String id;
|
|
|
|
|
+
|
|
|
|
|
+ @ExcelProperty("支付流水号")
|
|
|
|
|
+ private String serial;
|
|
|
|
|
+
|
|
|
|
|
+ @ExcelProperty("第三方订单号")
|
|
|
|
|
+ private String thirdId;
|
|
|
|
|
+
|
|
|
|
|
+ @ExcelProperty("支付宝/微信订单号")
|
|
|
|
|
+ private String txId;
|
|
|
|
|
+
|
|
|
|
|
+ @ExcelProperty("交易金额")
|
|
|
|
|
+ private String amount;
|
|
|
|
|
+
|
|
|
|
|
+ private String refundId;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
- public void createSettleAccount() throws BaseAdaPayException {
|
|
|
|
|
- adapayService.createSettleAccount("99999999999999", "熊竹", "321002199408304614",
|
|
|
|
|
- "15077886171", "6222024301070380163");
|
|
|
|
|
|
|
+ public void refund() throws BaseAdaPayException {
|
|
|
|
|
+ List<RefundOrder> orders = EasyExcel.read("/Users/drew/Downloads/merTransDetail_0284905900625472_20211201_20211215_1639557451.xlsx")
|
|
|
|
|
+ .head(RefundOrder.class)
|
|
|
|
|
+ .registerConverter(new LocalDateConverter())
|
|
|
|
|
+ .registerConverter(new LocalDateTimeConverter())
|
|
|
|
|
+ .registerConverter(new BigIntegerConverter())
|
|
|
|
|
+ .sheet().doReadSync();
|
|
|
|
|
+ System.out.println(orders.size());
|
|
|
|
|
+ for (RefundOrder order : orders) {
|
|
|
|
|
+ String refundId = new SnowflakeIdWorker(0, 0).nextId() + "";
|
|
|
|
|
+ Map<String, Object> refundParams = new HashMap<>();
|
|
|
|
|
+ refundParams.put("refund_amt", order.getAmount());
|
|
|
|
|
+ refundParams.put("refund_order_no", new SnowflakeIdWorker(0, 0).nextId() + "");
|
|
|
|
|
+ Map<String, Object> response = Refund.create(order.getId(), refundParams);
|
|
|
|
|
+ order.setRefundId(refundId);
|
|
|
|
|
+ }
|
|
|
|
|
+ EasyExcel.write("/Users/drew/Desktop/refund.xlsx", RefundOrder.class).sheet("sheet")
|
|
|
|
|
+ .registerConverter(new LocalDateConverter())
|
|
|
|
|
+ .registerConverter(new LocalDateTimeConverter())
|
|
|
|
|
+ .registerConverter(new BigIntegerConverter())
|
|
|
|
|
+ .doWrite(orders);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@Test
|
|
@Test
|
|
|
- public void delSettleAccount() throws BaseAdaPayException {
|
|
|
|
|
- adapayService.delSettleAccount("1110", "0288514678171392");
|
|
|
|
|
|
|
+ public void queryrefund() throws BaseAdaPayException {
|
|
|
|
|
+ List<RefundOrder> orders = EasyExcel.read("/Users/drew/Desktop/refund.xlsx")
|
|
|
|
|
+ .head(RefundOrder.class)
|
|
|
|
|
+ .registerConverter(new LocalDateConverter())
|
|
|
|
|
+ .registerConverter(new LocalDateTimeConverter())
|
|
|
|
|
+ .registerConverter(new BigIntegerConverter())
|
|
|
|
|
+ .sheet().doReadSync();
|
|
|
|
|
+ System.out.println(orders.size());
|
|
|
|
|
+ List<String> success = new ArrayList<>();
|
|
|
|
|
+ List<String> fail = new ArrayList<>();
|
|
|
|
|
+ for (RefundOrder order : orders) {
|
|
|
|
|
+ Map<String, Object> refundParams = new HashMap<>();
|
|
|
|
|
+ refundParams.put("refund_order_no", order.getRefundId());
|
|
|
|
|
+ Map<String, Object> refund = Refund.query(refundParams);
|
|
|
|
|
+ System.out.println(refund.get("refunds"));
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (((JSONArray) refund.get("refunds")).getJSONObject(0).getString("trans_status").equals("S")) {
|
|
|
|
|
+ success.add(order.getId());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ fail.add(order.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ fail.add(order.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ System.out.println("success:" + success.size());
|
|
|
|
|
+ System.out.println("fail:" + fail.size());
|
|
|
|
|
+ System.out.println(StringUtils.join(fail, ","));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
- public void queryBalance() throws BaseAdaPayException {
|
|
|
|
|
- adapayService.queryBalance("1110", "0288514678171392");
|
|
|
|
|
|
|
+ public void queryList() throws BaseAdaPayException {
|
|
|
|
|
+ Map<String, Object> paymentParams = new HashMap<>();
|
|
|
|
|
+ paymentParams.put("app_id", appId);
|
|
|
|
|
+ paymentParams.put("page_index", "1");
|
|
|
|
|
+ paymentParams.put("page_size", "10");
|
|
|
|
|
+ paymentParams.put("order_no", "928303191131422720");
|
|
|
|
|
+ Map<String, Object> paymentList = Payment.queryList(paymentParams);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|