Commit c1bf9caf by yangfangfang

收银相关接口

parent 98dfa013
...@@ -8,6 +8,8 @@ import com.xiaomai.enums.Terminal; ...@@ -8,6 +8,8 @@ import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil; import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest; import com.xiaomai.utils.XMBaseTest;
import java.math.BigDecimal;
public class OrderCTools extends XMBaseTest { public class OrderCTools extends XMBaseTest {
/** /**
...@@ -20,7 +22,7 @@ public class OrderCTools extends XMBaseTest { ...@@ -20,7 +22,7 @@ public class OrderCTools extends XMBaseTest {
* @param receivableAmount:应收金额 * @param receivableAmount:应收金额
* @author: yangfangfang * @author: yangfangfang
**/ **/
public JSONObject purchaseCard(String activatePattern, String cardId,String cardSnapshotId,String memberId,float receivableAmount,DataUserInfo...dataUserInfos) { public JSONObject purchaseCard(String activatePattern, String cardId, String cardSnapshotId, String memberId, BigDecimal receivableAmount, DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order) dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_purchaseCard") .setApiName("API_purchaseCard")
...@@ -89,4 +91,25 @@ public class OrderCTools extends XMBaseTest { ...@@ -89,4 +91,25 @@ public class OrderCTools extends XMBaseTest {
return response; return response;
} }
/**
* @param
* @description C端取消订单
* @param id 订单ID
* @author: yangfangfang
**/
public JSONObject cancel(String id,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_cancel")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",id);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
} }
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.minmembercard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.math.BigDecimal;
public class TestMiniPay extends BaseTestImpl {
String memberId;
String cardId;
String pageOrderState;
MinCardTools minCardTools=new MinCardTools();
UserTools userTools=new UserTools();
OrderCTools orderCTools=new OrderCTools();
OrderTools orderTools=new OrderTools();
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Order,"API_miniPay", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"yff");
super.beforeTest();
}
@Test(description = "小程序支付")
public void testListByVoucherId() {
//获取会员信息
memberId = userTools.getMemberInfo().getString("memberId");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//获取会员卡
cardId=minCardTools.fetchOnSaleMemberCard("次卡").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
BigDecimal price=new BigDecimal(minCardTools.fetchOnSaleMemberCard("次卡").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("price"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//购买C端非0元会员卡
JSONObject purchaseCardResult=orderCTools.purchaseCard("PURCHASE",cardId,cardId,memberId,price);
String voucherId=purchaseCardResult.getString("result");//订单ID
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//小程序支付失败
JSONObject jsonObject=new JSONObject();
jsonObject.put("appId",xmAppApi.getLoginInfo().getWechatAppId());
jsonObject.put("openId",xmAppApi.getLoginInfo().getOpenId());
jsonObject.put("voucherId",voucherId);
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toString(),headers).assetsSuccess(true);
JSONObject response=xmAppApi.getBodyInJSON();
String success=response.getString("success");
String code=response.getString("code");
Assert.assertEquals(success,"true","获取小程序支付失败");
// 如果把B端小麦乐动自动化场馆的收银信息改成微信未授权的,就是以下断言
// Assert.assertEquals(code,"error/PAY_CENTER.PAY_FAIL_WX_AUTH","支付失败,请联系场馆工作人员进行微信授权。");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//生成待支付订单
//校验C端订单列表
JSONObject pageOrder=orderCTools.pageOrder(memberId);
int pageOrderPages=Integer.parseInt(pageOrder.getJSONObject("result").getString("pages"));
int pageOrderTotal=Integer.parseInt(pageOrder.getJSONObject("result").getString("total"));
for(int k=0; k == pageOrderPages+1; k++){
int n =k==pageOrderPages ? (pageOrderTotal%10==0 ? 10 : pageOrderTotal%10) : 10;
JSONArray records=pageOrder.getJSONObject("result").getJSONArray("records");
boolean flag=true;
for(int i=0; i<n; i++){
String pageOrderId=records.getJSONObject(i).getString("id");
pageOrderState=records.getJSONObject(i).getString("state");
if(pageOrderId.equals(voucherId)){
flag = true;
break;
}
}
Assert.assertEquals(true,flag,"在订单列表中未查询到创建的待支付签单订单");
Assert.assertEquals(pageOrderState,"WAITING","未支付的C端的订单状态未是:待支付");
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//取消订单
JSONObject cancelResult=orderCTools.cancel(voucherId);
String result=cancelResult.getString("result");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//切换B端验证
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.YFF_PROD);
//校验获取B端签单订单详情:订单状态应是:已取消
JSONObject getDetailBResult=orderTools.getDetail(voucherId,dataUserInfo);
String getDetailBId = getDetailBResult.getJSONObject("result").getString("id");
String getDetailBState = getDetailBResult.getJSONObject("result").getString("state");
Assert.assertEquals(getDetailBId.equals(voucherId),true,"C端创建的签单订单在B端和C端展示的订单id不一致");
Assert.assertEquals(getDetailBState,"CANCEL","C端订单C端取消订单之后,订单状态未变成已取消");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment