新增退款描述字段

This commit is contained in:
jinyu 2017-07-19 10:55:34 +08:00
parent bee75e55cf
commit e7fe08c8cc
3 changed files with 1534 additions and 1596 deletions

View File

@ -26,6 +26,7 @@ import com.foxinmy.weixin4j.type.IdQuery;
import com.foxinmy.weixin4j.type.IdType; import com.foxinmy.weixin4j.type.IdType;
import com.foxinmy.weixin4j.type.TradeType; import com.foxinmy.weixin4j.type.TradeType;
import com.foxinmy.weixin4j.type.mch.BillType; import com.foxinmy.weixin4j.type.mch.BillType;
import com.foxinmy.weixin4j.type.mch.RefundAccountType;
import com.foxinmy.weixin4j.util.Consts; import com.foxinmy.weixin4j.util.Consts;
/** /**
@ -38,136 +39,120 @@ import com.foxinmy.weixin4j.util.Consts;
* @see * @see
*/ */
public class PayTest { public class PayTest {
protected final static WeixinPayAccount ACCOUNT; protected final static WeixinPayAccount ACCOUNT;
protected final static WeixinSignature SIGNATURE; protected final static WeixinSignature SIGNATURE;
protected final static WeixinPayProxy PAY; protected final static WeixinPayProxy PAY;
static { static {
ACCOUNT = new WeixinPayAccount( ACCOUNT = new WeixinPayAccount("wx7ca5ae77b3b4bc81", "GATFzDwbQdbbci3QEQxX2rUBvwTrsMiZ", "1290664601",
"appid", "1290664601", "/Users/jy/workspaces/jdxg-parent/ixi-service/src/main/resources/1290664601.p12");
"paysignKey", SIGNATURE = new WeixinPaymentSignature(ACCOUNT.getPaySignKey());
"mchId", PAY = new WeixinPayProxy(ACCOUNT);
"证书密码,为空取mchid", }
"证书路径,绝对路径&classpath路径/path/to/certificate.p12,或者填写classpath:path/to/certificate.p12");
SIGNATURE = new WeixinPaymentSignature(ACCOUNT.getPaySignKey());
PAY = new WeixinPayProxy(ACCOUNT);
}
@Test @Test
public void queryOrder() throws WeixinException { public void queryOrder() throws WeixinException {
Order order = PAY.queryOrder(new IdQuery("BY2016010800025", Order order = PAY.queryOrder(new IdQuery("BY2016010800025", IdType.TRADENO));
IdType.TRADENO)); Assert.assertEquals(Consts.SUCCESS, order.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, order.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, order.getResultCode());
Assert.assertEquals(Consts.SUCCESS, order.getResultCode()); System.err.println(order);
System.err.println(order); String sign = order.getSign();
String sign = order.getSign(); order.setSign(null);
order.setSign(null); String valiSign = SIGNATURE.sign(order);
String valiSign = SIGNATURE.sign(order); System.err.println(String.format("sign=%s,valiSign=%s", sign, valiSign));
System.err Assert.assertEquals(valiSign, sign);
.println(String.format("sign=%s,valiSign=%s", sign, valiSign)); }
Assert.assertEquals(valiSign, sign);
}
@Test @Test
public void queryRefund() throws WeixinException { public void queryRefund() throws WeixinException {
RefundRecord record = PAY.queryRefund(new IdQuery("TT_1427183696238", RefundRecord record = PAY.queryRefund(new IdQuery("TT_1427183696238", IdType.TRADENO));
IdType.TRADENO)); Assert.assertEquals(Consts.SUCCESS, record.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, record.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, record.getResultCode());
Assert.assertEquals(Consts.SUCCESS, record.getResultCode()); System.err.println(record);
System.err.println(record); String sign = record.getSign();
String sign = record.getSign(); record.setSign(null);
record.setSign(null); String valiSign = SIGNATURE.sign(record);
String valiSign = SIGNATURE.sign(record); System.err.println(String.format("sign=%s,valiSign=%s", sign, valiSign));
System.err Assert.assertEquals(valiSign, sign);
.println(String.format("sign=%s,valiSign=%s", sign, valiSign)); }
Assert.assertEquals(valiSign, sign);
}
@Test @Test
public void downbill() throws WeixinException, IOException { public void downbill() throws WeixinException, IOException {
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2016); c.set(Calendar.MONTH, 0); // 4月份 正常
c.set(Calendar.MONTH, 3); // c.set(Calendar.MONTH, 0); // 3月份 异常
c.set(Calendar.DAY_OF_MONTH, 4); OutputStream os = new FileOutputStream("/tmp/bill.txt");
System.err.println(c.getTime()); PAY.downloadBill(c.getTime(), BillType.ALL, os, null);
OutputStream os = new FileOutputStream("/tmp/bill20160813.txt"); }
PAY.downloadBill(c.getTime(), BillType.ALL, os, null);
}
@Test @Test
public void refund() throws WeixinException, IOException { public void refund() throws WeixinException, IOException {
IdQuery idQuery = new IdQuery("TT_1427183696238", IdType.TRADENO); IdQuery idQuery = new IdQuery("TT_1427183696238", IdType.TRADENO);
RefundResult result = PAY.applyRefund(idQuery, RefundResult result = PAY.applyRefund(idQuery, "TT_R" + System.currentTimeMillis(), 0.01d, 0.01d, null,
"TT_R" + System.currentTimeMillis(), 0.01d, 0.01d, null, "10020674", "退款描述(原因)", RefundAccountType.REFUND_SOURCE_RECHARGE_FUNDS);
"10020674", null); Assert.assertEquals(Consts.SUCCESS, result.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, result.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, result.getResultCode());
Assert.assertEquals(Consts.SUCCESS, result.getResultCode()); System.err.println(result);
System.err.println(result); String sign = result.getSign();
String sign = result.getSign(); result.setSign(null);
result.setSign(null); String valiSign = SIGNATURE.sign(result);
String valiSign = SIGNATURE.sign(result); System.err.println(String.format("sign=%s,valiSign=%s", sign, valiSign));
System.err Assert.assertEquals(valiSign, sign);
.println(String.format("sign=%s,valiSign=%s", sign, valiSign)); }
Assert.assertEquals(valiSign, sign);
}
@Test @Test
public void nativePay() throws WeixinException { public void nativePay() throws WeixinException {
MchPayPackage payPackageV3 = new MchPayPackage("native测试", "T0001", MchPayPackage payPackageV3 = new MchPayPackage("native测试", "T0001", 0.1d, "notify_url", "127.0.0.1",
0.1d, "notify_url", "127.0.0.1", TradeType.NATIVE, null, null, TradeType.NATIVE, null, null, "productId", null);
"productId", null); PrePay result = PAY.createPrePay(payPackageV3);
PrePay result = PAY.createPrePay(payPackageV3); Assert.assertEquals(Consts.SUCCESS, result.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, result.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, result.getResultCode());
Assert.assertEquals(Consts.SUCCESS, result.getResultCode()); System.err.println(result);
System.err.println(result); }
}
@Test @Test
public void closeOrder() throws WeixinException { public void closeOrder() throws WeixinException {
MerchantResult result = PAY.closeOrder("D111"); MerchantResult result = PAY.closeOrder("D111");
Assert.assertEquals(Consts.SUCCESS, result.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, result.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, result.getResultCode()); Assert.assertEquals(Consts.SUCCESS, result.getResultCode());
System.err.println(result); System.err.println(result);
String sign = result.getSign(); String sign = result.getSign();
result.setSign(null); result.setSign(null);
String valiSign = SIGNATURE.sign(result); String valiSign = SIGNATURE.sign(result);
System.err System.err.println(String.format("sign=%s,valiSign=%s", sign, valiSign));
.println(String.format("sign=%s,valiSign=%s", sign, valiSign)); Assert.assertEquals(valiSign, sign);
Assert.assertEquals(valiSign, sign); }
}
@Test @Test
public void shortUrl() throws WeixinException { public void shortUrl() throws WeixinException {
String url = "weixin://wxpay/bizpayurl?xxxxxx"; String url = "weixin://wxpay/bizpayurl?xxxxxx";
String shortUrl = PAY.getPayShorturl(url); String shortUrl = PAY.getPayShorturl(url);
System.err.println(shortUrl); System.err.println(shortUrl);
} }
@Test @Test
public void interfaceReport() throws WeixinException { public void interfaceReport() throws WeixinException {
String interfaceUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder"; String interfaceUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";
int executeTime = 2500; int executeTime = 2500;
String outTradeNo = null; String outTradeNo = null;
String ip = "127.0.0.1"; String ip = "127.0.0.1";
Date time = new Date(); Date time = new Date();
XmlResult returnXml = new XmlResult("SUCCESS", ""); XmlResult returnXml = new XmlResult("SUCCESS", "");
returnXml.setResultCode("SUCCESS"); returnXml.setResultCode("SUCCESS");
returnXml = PAY.reportInterface(interfaceUrl, executeTime, outTradeNo, returnXml = PAY.reportInterface(interfaceUrl, executeTime, outTradeNo, ip, time, returnXml);
ip, time, returnXml); Assert.assertEquals(Consts.SUCCESS, returnXml.getReturnCode());
Assert.assertEquals(Consts.SUCCESS, returnXml.getReturnCode()); Assert.assertEquals(Consts.SUCCESS, returnXml.getResultCode());
Assert.assertEquals(Consts.SUCCESS, returnXml.getResultCode()); System.err.println(returnXml);
System.err.println(returnXml); }
}
@Test @Test
public void testMicroPay() throws WeixinException { public void testMicroPay() throws WeixinException {
String authCode = "扫描码"; String authCode = "扫描码";
String body = "商品描述"; String body = "商品描述";
String outTradeNo = "M001"; String outTradeNo = "M001";
double totalFee = 1d; double totalFee = 1d;
String createIp = "127.0.0.1"; String createIp = "127.0.0.1";
MchPayRequest request = PAY.createMicroPayRequest(authCode, body, MchPayRequest request = PAY.createMicroPayRequest(authCode, body, outTradeNo, totalFee, createIp, null);
outTradeNo, totalFee, createIp, null); System.err.println(request);
System.err.println(request); }
} }
}