| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- package com.izouma.nineth;
- import com.alibaba.fastjson15.JSON;
- import com.alibaba.fastjson15.JSONObject;
- import com.alibaba.fastjson15.parser.Feature;
- import com.izouma.nineth.utils.SnowflakeIdWorker;
- import com.upay.sdk.CipherWrapper;
- import com.upay.sdk.ConfigurationUtils;
- import com.upay.sdk.HttpClientUtils;
- import com.upay.sdk.cashier.bindcard.builder.*;
- import com.upay.sdk.cashier.order.builder.ReceiptPaymentBuilder;
- import com.upay.sdk.entity.Payer;
- import com.upay.sdk.entity.ProductDetail;
- import com.upay.sdk.entity.TransferDomesticPayee;
- import com.upay.sdk.onlinepay.builder.OrderBuilder;
- import com.upay.sdk.onlinepay.builder.QueryBuilder;
- import com.upay.sdk.onlinepay.builder.RefundBuilder;
- import com.upay.sdk.transferDomestic.builder.AccountBuilder;
- import com.upay.sdk.transferDomestic.builder.SingleOrderBuilder;
- import com.upay.sdk.transferDomestic.executer.TransferDomesticAccountExecuter;
- import com.upay.sdk.transferDomestic.executer.TransferDomesticOrderExecuter;
- import com.upay.sdk.transferDomestic.executer.TransferDomesticSingleOrderExecuter;
- import lombok.extern.slf4j.Slf4j;
- import org.junit.Test;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.util.concurrent.atomic.AtomicInteger;
- @Slf4j
- public class PayEaseTest {
- String merchantId = "896593123";
- public JSONObject request(String url, JSONObject requestData) {
- log.info("requestData: {}", JSON.toJSONString(requestData, true));
- String responseStr = HttpClientUtils.post3(url, requestData);
- log.info("responseStr: \n{}", responseStr);
- JSONObject responseData = JSONObject.parseObject(responseStr, Feature.SortFeidFastMatch);
- responseData = CipherWrapper.bothDecryptWrap(responseData);
- log.info("responseStr: {}", JSON.toJSONString(responseData, true));
- return responseData;
- }
- @Test
- public void bindCard() {
- //商户会员id
- String merchantUserId = "1";
- // 银⾏卡号
- String bankCardNumber = "6222024301070380165";
- //预留⼿机号
- String phoneNumber = "15077886171";
- // 持卡⼈姓名
- String name = "熊竹";
- // 身份证号
- String idCardNum = "321002199408304614";
- BindCardBuilder builder = new BindCardBuilder(merchantId);
- builder.setMerchantUserId(merchantUserId)
- .setBankCardNumber(bankCardNumber)
- .setPhoneNumber(phoneNumber)
- .setName(name)
- .setIdCardNum(idCardNum);
- JSONObject requestData = builder.bothEncryptBuild();
- log.info("bindCard requestData: {}", JSON.toJSONString(requestData, true));
- String responseStr = HttpClientUtils.post3(ConfigurationUtils.getCashierBindCardUrl(), requestData);
- log.info("bindCard responseStr: \n{}", responseStr);
- JSONObject responseData = JSONObject.parseObject(responseStr, Feature.SortFeidFastMatch);
- responseData = CipherWrapper.bothDecryptWrap(responseData);
- log.info("bindCard responseStr: {}", JSON.toJSONString(responseData, true));
- }
- @Test
- public void bindCardConfirm() {
- String bindCardId = "20220602315804717062699846352896";
- String kaptchaCode = "321838";
- String merchantUserId = "1";
- BindCardConfirmBuilder builder = new BindCardConfirmBuilder(merchantId);
- builder.setBindCardId(bindCardId)
- .setMerchantUserId(merchantUserId)
- .setKaptchaCode(kaptchaCode);
- JSONObject requestData = builder.bothEncryptBuild();
- log.info("bindCard requestData: {}", JSON.toJSONString(requestData, true));
- String responseStr = HttpClientUtils.post3(ConfigurationUtils.getCashierBindCardConfirmUrl(), requestData);
- log.info("bindCard responseStr: \n{}", responseStr);
- JSONObject responseData = JSONObject.parseObject(responseStr, Feature.SortFeidFastMatch);
- responseData = CipherWrapper.bothDecryptWrap(responseData);
- log.info("bindCard responseStr: {}", JSON.toJSONString(responseData, true));
- }
- @Test
- public void bindCardCaptcha() {
- String bindCardId = "20220519435026712047423086018560";
- BindCardKaptchaBuilder builder = new BindCardKaptchaBuilder(merchantId);
- builder.setBindCardId(bindCardId);
- JSONObject response = request(ConfigurationUtils.getCashierBindCardKaptchaUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void unbind() {
- String bindCardId = "20220524516958713695754308698112";
- String merchantUserId = "1";
- UnBindCardBuilder builder = new UnBindCardBuilder(merchantId);
- builder.setBindCardId(bindCardId)
- .setMerchantUserId(merchantUserId);
- JSONObject response = request(ConfigurationUtils.getCashierUnBindCardUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void queryBind() {
- String bindCardId = "20220520544899712342676254900224";
- BindCardQueryBuilder builder = new BindCardQueryBuilder(merchantId);
- builder.setBindCardId(bindCardId)
- .setMerchantUserId("1787318");
- JSONObject response = request(ConfigurationUtils.getCashierBindCardQueryUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void pay() {
- String subject = "充值";
- //订单号
- String requestId = new SnowflakeIdWorker(0, 0).nextId() + "";
- //订单金额
- String orderAmount = "1";
- //通知地址
- String notifyUrl = "http://xiongzhu.frp.izouma.com/payease/notify/test/" + requestId;
- //回调地址
- String callbackUrl = "https://www.raex.vip/9th/home";
- //备注
- String remark = "111";
- //商户会员Id
- String merchantUserId = "1";
- //绑卡Id
- String bindCardId = "20220524516958713695754308698112";
- //超时时间
- String timeout = "3";
- OrderBuilder builder = new OrderBuilder(merchantId);
- builder.setRequestId(requestId)
- .setOrderAmount(orderAmount)
- .setOrderCurrency("CNY")
- .setNotifyUrl(notifyUrl)
- .setCallbackUrl(callbackUrl)
- .setRemark(remark)
- .setPaymentModeCode("BANK_CARD-AGREEMENT-P2P")
- .setNotifyUrl(notifyUrl)
- .setMerchantUserId(merchantUserId)
- .setBindCardId(bindCardId)
- .setClientIp("192.168.22.55");
- builder.setTimeout(timeout);
- ProductDetail productDetail = new ProductDetail();
- productDetail.setName(subject);
- productDetail.setQuantity(1L);
- productDetail.setAmount(Long.parseLong(orderAmount));
- builder.addProductDetail(productDetail);
- Payer payer = new Payer();
- builder.setPayer(payer);
- JSONObject response = request(ConfigurationUtils.getOnlinePayOrderUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void payConfirm() {
- String requestId = "978683558270861312";
- String paymentOrderId = "f03fc9a74ac3450292cdfc18f6723b9c";
- String kaptchaCode = "478513";
- ReceiptPaymentBuilder builder = new ReceiptPaymentBuilder(merchantId);
- builder.setRequestId(requestId)
- .setPaymentOrderId(paymentOrderId)
- .setKaptchaCode(kaptchaCode);
- JSONObject response = request(ConfigurationUtils.getCashierReceiptPaymentUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void refund() {
- String orderId = "7f159751086347cbb728e7fd0de8ad1c";
- String amount = "1";
- String notifyUrl = "https://www.raex.vip/payease/notify/order";
- RefundBuilder builder = new RefundBuilder(merchantId);
- builder.setRequestId("978601560772706304")
- .setAmount(amount)
- .setOrderId(orderId)
- .setNotifyUrl(notifyUrl);
- JSONObject response = request(ConfigurationUtils.getOnlinePayRefundUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void query() {
- String requestId = "978601560772706304";
- QueryBuilder builder = new QueryBuilder(merchantId);
- builder.setRequestId(requestId);
- JSONObject response = request(ConfigurationUtils.getOnlinePayQueryUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void queryRefund() {
- String requestId = "978601560772706304";
- RefundBuilder builder = new RefundBuilder(merchantId);
- builder.setRequestId(requestId);
- JSONObject response = request(ConfigurationUtils.getOnlinePayRefundQueryUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void merchantBalance() {
- AccountBuilder builder = new AccountBuilder(merchantId);
- builder.setRequestId(new SnowflakeIdWorker(1, 1).nextId() + "");
- JSONObject response = request(ConfigurationUtils.getTransferDomesticAccountAvailableBalanceUrl(), builder.bothEncryptBuild());
- System.out.println(response.getBigDecimal("availableTransferBalance").divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
- }
- @Test
- public void transfer() {
- SingleOrderBuilder builder = new SingleOrderBuilder(merchantId);
- builder.setRequestId(new SnowflakeIdWorker(1, 1).nextId() + "");
- builder.setAmount("100");
- builder.setCurrency("CNY");
- builder.setNotifyUrl("http://xiongzhu.frp.izouma.com/sandpay/notify");
- TransferDomesticPayee payee = new TransferDomesticPayee();
- payee.setName("熊竹");
- payee.setBankCardNum("6222024301070380165");
- builder.setPayee(payee);
- JSONObject response = request(ConfigurationUtils.getTransferDomesticSingleOrderUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void queryTransfer() {
- com.upay.sdk.transferDomestic.builder.OrderBuilder builder = new com.upay.sdk.transferDomestic.builder.OrderBuilder(merchantId);
- builder.setRequestId("1006237416958332928");
- JSONObject response = request(ConfigurationUtils.getTransferDomesticSingleQueryUrl(), builder.bothEncryptBuild());
- }
- @Test
- public void transferAndQuery() {
- String requestId = new SnowflakeIdWorker(1, 1).nextId() + "";
- SingleOrderBuilder builder = new SingleOrderBuilder(merchantId);
- builder.setRequestId(requestId);
- builder.setAmount("100");
- builder.setCurrency("CNY");
- builder.setNotifyUrl("http://xiongzhu.frp.izouma.com/sandpay/notify");
- TransferDomesticPayee payee = new TransferDomesticPayee();
- payee.setName("熊竹");
- payee.setBankCardNum("6222024301070380165");
- builder.setPayee(payee);
- JSONObject response = request(ConfigurationUtils.getTransferDomesticSingleOrderUrl(), builder.bothEncryptBuild());
- com.upay.sdk.transferDomestic.builder.OrderBuilder builder1 = new com.upay.sdk.transferDomestic.builder.OrderBuilder(merchantId);
- builder1.setRequestId(requestId);
- JSONObject response1 = request(ConfigurationUtils.getTransferDomesticSingleQueryUrl(), builder1.bothEncryptBuild());
- System.out.println(JSON.toJSONString(response, true));
- System.out.println(JSON.toJSONString(response1, true));
- }
- }
|