4.7我的订单支付页面
一、支付页面生成
状态:"待付款"才会生成-订单支付页面###1.从订单列表跳转
2种情况(正常和异常) 接口
4种结果(全有、有订单无发票 :正常、全无、无订单有发票:异常) 数据库数据
3种页面(显示页面、填写页、空页面) 页面
详情:
限时许可(有) : 订单接口和发票接口 3/4
限时许可(全无) : 订单接口和发票接口 1/3
限时许可(有发票无订单) 订单接口和发票接口 3/3
限时许可(无发票有订单) 订单接口和发票接口 8/8
支付
1. 限时许可(有) : 订单接口和发票接口 3/4 生成显示页面
2. 限时许可(无发票有订单) 订单接口和发票接口 8/8 生成填写页
3.
限时许可(全无) : 订单接口 1/3 则生成空页面
限时许可(有发票无订单) 订单接口 4/4 则生成空页面异常:表示订单信息数据丢失,不会访问发票接口,会产生 空页面
正常:根据发票接口返回(是否为[]),来生成 显示页面或填写页
判断条件: 1.有无发票接口 2. 有发票接口,返回是否为[]####1.订单信息数据丢失,为什么不会访问发票接口?


LimitTimeLicensePaymentUI.js
具体:data.licenseTerm = SuperMapOnline.Lang.Resource[data.licenseTerm.toLocaleLowerCase()];####2.结论
应该都发接口,这是以前的bug
以前的判断条件: 1.有无发票接口 2. 有发票接口,返回是否为[]
判断套件改为: 1.订单信息数据是否缺失 orderinfo.orderDetail 2.发票接口,返回是否为[]
<!-- 2.1订单支付-显示订单信息 -->
<!-- 订单支付-显示订单信息结束 -->
<!-- 2.2订单支付-表单输入 -->
<!-- 订单支付-表单输入结束 -->
//表单错误提示判断
finalUserWrongTip:{
isOrderId:false,
isUser:false,
isFinalUser:false,
isIndustry:false,
isArea:false,
}
//普通发票
let ordinaryInvoice = {
companyName: invoiceModel.companyName,
addressee: invoiceModel.addressee,
userAddress: invoiceModel.userAddress,
telephone: invoiceModel.telephone,
};
//专用发票
let specialInvoice = {
companyName: invoiceModel.companyName,
taxID: invoiceModel.taxID,
bank: invoiceModel.bank,
bankAccount: invoiceModel.bankAccount,
registeredAddress: invoiceModel.registeredAddress,
registeredPhone: invoiceModel.registeredPhone,
addressee: invoiceModel.addressee,
userAddress: invoiceModel.userAddress,
telephone: invoiceModel.telephone,
}
let invoice = {
companyName: invoiceModel.companyName,
taxID: invoiceModel.taxID,
bank: invoiceModel.bank,
bankAccount: invoiceModel.bankAccount,
registeredAddress: invoiceModel.registeredAddress,
registeredPhone: invoiceModel.registeredPhone,
addressee: invoiceModel.addressee,
userAddress: invoiceModel.userAddress,
telephone: invoiceModel.telephone,
}
//遍历判断
for(let i in invoice){
if(invoice[i]){
this.invoiceWrongTip[i] = false;
}else{
this.invoiceWrongTip[i] = true;
}
}
if(!invoiceModel.companyName){
return !(this.invoiceWrongTip.isCompanyName = true);
}
if(!invoiceModel.taxID){
return !(this.invoiceWrongTip.isTaxID = true);
}
if(!invoiceModel.addressee){
return !(this.invoiceWrongTip.isAddressee = true);
}
if(!invoiceModel.userAddress){
return !(this.invoiceWrongTip.isUserAddress = true);
}
if(!invoiceModel.telephone){
return !(this.invoiceWrongTip.isTelephone = true);
}
//专用发票则需校验开户银行、银行账号、注册地址、注册电话,
if(invoiceModel.type === 'SPECIAL'){
if(!invoiceModel.bank){
return !(this.invoiceWrongTip.isBank = true);
}
if(!invoiceModel.bankAccount){
return !(this.invoiceWrongTip.isBankAccount = true);
}
if(!invoiceModel.registeredAddress){
return !(this.invoiceWrongTip.isRegisteredAddress = true);
}
if(!invoiceModel.registeredPhone){
return !(this.invoiceWrongTip.isRegisteredPhone = true);
}
}else if(invoiceModel.type === 'ORDINARY'){
//普通发票则不校验,并设置''
invoiceModel.bank = '';
invoiceModel.bankAccount = '';
invoiceModel.registeredAddress = '';
invoiceModel.registeredPhone = '';
}
//赋值orderId
return true;##一、订单路由
###1.订单页面
页面组件过多考虑抽离成对象(暂时不抽离,原因是现在只判断2个参数,在不考虑以后有新的页面组件时,不抽离更便捷)
//页面显示判断
orderPage:{
isOrderList:true,
isOrderDetail:false,
isOrderPay:false
},
//显示页面
showOrderPage(orderPage){
this.orderPage.isOrderList = orderPage.isOrderList
this.orderPage.idOrderDetail = orderPage.idOrderDetail;
this.orderPage.isOrderPay = orderPage.isOrderPay;
},###2.从订单列表跳转
##二、发票接口
###1.保存发票
InvoiceResource.js 发票接口
CommonResource.js
InvoiceUITemplate.js 发票事件
InvoiceDetailUI.js 发票详情
https://itest.supermapol.com/api/web/mycontent/invoices.json
{"childID":"286","customResult":true,"isAsynchronizedReturn":false}
//普通发票
let ordinaryInvoice = {
type: invoiceModel.type,
companyName: invoiceModel.companyName,
taxID: invoiceModel.taxID,
addressee: invoiceModel.addressee,
userAddress: invoiceModel.userAddress,
telephone: invoiceModel.telephone,
}
//专用发票
let specialdInvoice = {
type: invoiceModel.type,
companyName: invoiceModel.companyName,
taxID: invoiceModel.taxID,
bank: invoiceModel.bank,
bankAccount: invoiceModel.bankAccount,
registeredAddress: invoiceModel.registeredAddress,
registeredPhone: invoiceModel.registeredPhone,
addressee: invoiceModel.addressee,
userAddress: invoiceModel.userAddress,
telephone: invoiceModel.telephone,
},
参数:
专用
{
addressee: "2"
bank: "2"
bankAccount: "2"
companyName: "2"
orderId: "02-20210413110205250000"
registeredAddress: "2"
registeredPhone: "2"
remarks: "2"
taxID: "2"
telephone: "2"
type: "SPECIAL"
userAddress: "2"
}
{
"addressee": "1",
"bank": "2",
"bankAccount": "2",
"companyName": "2",
"orderId": "02-20210413110205250000",
"registeredAddress": "2",
"registeredPhone": "2",
"remarks": "2",
"taxID": "2",
"telephone": "2"
"type": "SPECIAL",
"userAddress": "2"
}
普通
addressee: "21"
bank: ""
bankAccount: ""
companyName: "33"
orderId: "02-202104131714041440000"
registeredAddress: ""
registeredPhone: ""
remarks: "22"
taxID: "33"
telephone: "32"
type: "ORDINARY"
userAddress: "32"
InvoiceDetailUI.js
resource_zh_CN.js
SuperMapOnline.Lang.Invoices = {
invoiceId : "发票ID",
companyName : "纳税单位",
taxID : "纳税识别号",
registeredAddress : "注册地址",
registeredPhone : "注册电话",
bank : "开户银行",
bankAccount : "银行帐号",
userAddress : "邮寄地址",
telephone : "收件人电话",
invoiceType : "发票类型",
createTime : "创建时间",
completeTime : "开票时间",
type : {
ORDINARY : "普通发票",
SPECIAL : "专用发票"
},
status : {
"0" : "未开",
"1" : "已开"
},
statusChangeTip : "确定已经开票完成吗?"
}###2.保存最终用户
userInfoUITemplate.js
https://itest.supermapol.com/api/web/mycontent/cloud/orders/timelicense/update
area: "安徽"
finalUser: "d"
industry: "政府其他"
orderId: "02-2021041319102610260000"
user: "d"##三、点击保存并支付按钮
1.保存并支付按钮
IportalMyOrderPaymentView.js -> InvoiceUITemplate.js
paymentOK
#telephone, #bankAccount, #registeredPhone//部分发票信息输入框只能输入数字2.支付页面
alipayResource.js
getRedirectUrl : function(orderId) {
return this.resourceUrl + "/redirect/" + orderId;
}
http://127.0.0.1:8099/api/web/orderpayment/alipay
http://127.0.0.1:8099/web/mycontent/cloud/orders/02-201804161705585580000/loading
http://127.0.0.1:8099/api/web/orderpayment/alipay/redirect/02-201804161705585580000
https://excashier.alipay.com/standard/auth.htm?payOrderId=0e38ed1d34994fadb536a7d8d624881b.80
https://itest.supermapol.com/api/web/orderpayment/alipay/redirect/00-2021042720512251220000
4.支付后跳转com.isupermap.cloudmanagement.rest.resources.impl.AliPayResource redirect
alipaySubmit.ftl3.支付完成
orderCommon.js
http://192.168.13.117/api/web/mycontent/cloud/orders/verify.json PUT
02-201908050930193019000014.支付也回调失败
324366
select * from ordercommoninfo where orderId = 02-2021050610593059300000;javax.servlet.ServletException: java.lang.NullPointerException
org.apache.shiro.web.servlet.AdviceFilter.cleanup(AdviceFilter.java:196)
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:148)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
com.supermap.online.web.handlers.MapSuffixToAcceptFilter.doFilter(MapSuffixToAcceptFilter.java:33)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)
com.supermap.online.web.handlers.ReplaceHostFilter.doFilter(ReplaceHostFilter.java:17)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)
根本原因。
java.lang.NullPointerException
com.isupermap.cloudmanagement.component.OrderComponentImpl.paid(OrderComponentImpl.java:265)
com.isupermap.cloudmanagement.component.OrderComponentImpl.paidByAli(OrderComponentImpl.java:248)
com.isupermap.cloudmanagement.rest.resources.impl.AliPayResource.processCompleted(AliPayResource.java:156)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:540)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:715)
com.isupermap.cloudmanagement.web.JaxrsApplicationsFilter.doFilter(JaxrsApplicationsFilter.java:104)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)
com.supermap.online.web.handlers.PlaceholderFilter.doFilter(PlaceholderFilter.java:30)
com.isupermap.cloudmanagement.handlers.LocaleFilter.doFilter(LocaleFilter.java:29)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
com.supermap.online.web.handlers.MapSuffixToAcceptFilter.doFilter(MapSuffixToAcceptFilter.java:33)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)
com.supermap.online.web.handlers.ReplaceHostFilter.doFilter(ReplaceHostFilter.java:17)
com.supermap.online.web.handlers.HttpFilter.doFilter(HttpFilter.java:23)总体缺陷
1.订单详情-扩展模块: 无扩展,错误:扩展模块: 基础平台
2 发票的状态除了 未开
3.限时许可文件-请联系我们为您生成正式许可:
Tel:028-61802715;Email:online@supermap.com总体架构
MyOrder
/ | \
OrderList
OrderInfoDetail OrderPay
/ / | / | \ \ \
订单详情 数据服务详情 订单支付 数据服务支付 发票填写 最终用户填写 最终用户显示
\ /
发票详情
订单详情:文件许可、云许可
数据服务详情:基础、专业、高级