Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
b08655a8
Commit
b08655a8
authored
May 06, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、不同pos支付fragment分包
parent
b01803d9
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
121 additions
and
144 deletions
+121
-144
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+0
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/RequestParms.java
+4
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCommand.java
+4
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCommandImp.java
+0
-47
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayDevice.java
+5
-2
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/fragment/YedpayFragment.java
+24
-74
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/YedpayModel.java
+6
-3
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/bean/YedPayRefundBean.java
+13
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/bean/YedpayFindSaleStatusBean.java
+37
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/presenter/YedpayPresenter.java
+16
-14
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
+12
-3
No files found.
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
b08655a8
...
...
@@ -148,7 +148,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
protected
String
roundingStr
=
"賬單小數"
;
private
final
String
noFoodDeliveryTip
=
"賬單沒有食品,是否開台?"
;
public
abstract
void
createOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
);
public
abstract
void
addOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
);
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/RequestParms.java
View file @
b08655a8
...
...
@@ -34,6 +34,10 @@ public class RequestParms implements Parcelable {
private
final
long
orderId
;
private
final
double
payMoney
;
/**
* 自定義ID,與POS方綁定交易ID綁定,可用此ID查詢對應的交易記錄
*/
private
String
txnId
;
/**
* 退款相关
*/
private
final
String
refundReason
;
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCommand.java
View file @
b08655a8
...
...
@@ -13,4 +13,8 @@ public interface YedpayCommand extends Callback {
void
callSaleUri
(
String
uri
);
void
refundResult
(
boolean
result
);
void
querySaleStatus
(
String
uri
);
void
queryRefundStatus
(
String
uri
);
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayCommandImp.java
deleted
100644 → 0
View file @
b01803d9
package
com
.
gingersoft
.
gsa
.
cloud
.
pay
.
device
.
pos
.
yedpay
;
import
android.content.Intent
;
import
android.net.Uri
;
import
androidx.fragment.app.Fragment
;
import
com.gingersoft.gsa.cloud.pay.RequestParms
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant
;
/**
* @作者: bin
* @創建時間: 2021-04-23 9:55
* @更新時間: 2021-04-23 9:55
* @描述:
*/
public
class
YedpayCommandImp
implements
YedpayCommand
{
private
Fragment
mContext
;
private
PayFlowPresenter
mPayFlowPresenter
;
private
RequestParms
mRequestParms
;
public
YedpayCommandImp
(
Fragment
context
,
PayFlowPresenter
payFlowPresenter
,
RequestParms
requestParms
)
{
this
.
mContext
=
context
;
this
.
mPayFlowPresenter
=
payFlowPresenter
;
this
.
mRequestParms
=
requestParms
;
}
@Override
public
void
callSaleUri
(
String
uri
)
{
Fragment
fragment
=
mContext
;
if
(
fragment
!=
null
)
{
Uri
uri2
=
Uri
.
parse
(
uri
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri2
);
fragment
.
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
}
}
@Override
public
void
refundResult
(
boolean
result
)
{
PayFlowPresenter
payFlowPresenter
=
mPayFlowPresenter
;
if
(
payFlowPresenter
!=
null
&&
mRequestParms
!=
null
)
{
payFlowPresenter
.
yedPayRefundOrder
(
mRequestParms
.
getRefundReason
(),
mRequestParms
.
getOrderId
(),
mRequestParms
.
getPayType
(),
mRequestParms
.
getResturantId
());
}
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/YedpayDevice.java
View file @
b08655a8
...
...
@@ -52,7 +52,9 @@ public class YedpayDevice implements PosPayAction<RequestParms> {
@Override
public
void
retrieval
(
RequestParms
params
)
{
String
uriString
=
"yedpayapp://transaction_detail?c="
+
params
.
getTxnId
();
YedpayCommand
callback
=
(
YedpayCommand
)
params
.
getCallback
();
callback
.
querySaleStatus
(
uriString
);
}
@Override
...
...
@@ -67,7 +69,8 @@ public class YedpayDevice implements PosPayAction<RequestParms> {
@Override
public
void
pay
(
RequestParms
params
)
{
String
uriString
=
"yedpayapp://transaction?g="
+
getPayType
(
params
.
getPayType
())
+
"&a="
+
params
.
getPayMoney
()
+
""
;
//String uriString = "yedpayapp://transaction?g={{ 支付方式 }}&a={{ 銀碼 }}(&c={{ 自定義編號 }})";
String
uriString
=
"yedpayapp://transaction?g="
+
getPayType
(
params
.
getPayType
())
+
"&a="
+
params
.
getPayMoney
()
+
"&c="
+
params
.
getTxnId
();
YedpayCommand
callback
=
(
YedpayCommand
)
params
.
getCallback
();
callback
.
callSaleUri
(
uriString
);
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/fragment/YedpayFragment.java
View file @
b08655a8
...
...
@@ -14,8 +14,10 @@ import androidx.annotation.NonNull;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.order.R
;
import
com.gingersoft.gsa.cloud.order.R2
;
import
com.gingersoft.gsa.cloud.pay.PayStep
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.fragment.PayFlowFragment
;
import
com.gingersoft.gsa.cloud.pay.view.customstatus.CustomStatusView
;
...
...
@@ -50,15 +52,6 @@ public class YedpayFragment extends PayFlowFragment<YedpayPresenter> implements
@BindView
(
R2
.
id
.
tv_status
)
TextView
tv_status
;
// public static PayFlowFragment newInstance(RequestParms parms) {
// PayFlowFragment fragment = new PayFlowFragment();
// Bundle bundle = new Bundle();
// bundle.putParcelable("requestParms", parms);
// fragment.setArguments(bundle);
// return fragment;
// }
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerYedpayComponent
//如找不到该类,请编译一下项目
...
...
@@ -70,79 +63,36 @@ public class YedpayFragment extends PayFlowFragment<YedpayPresenter> implements
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
getDialog
().
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
getDialog
().
setCancelable
(
false
);
return
inflater
.
inflate
(
R
.
layout
.
dialog_pay_loading
,
container
,
false
);
}
@Override
public
void
onStart
()
{
super
.
onStart
();
mWindow
.
setBackgroundDrawable
(
new
ColorDrawable
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
trans
)));
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
// mPresenter.excutePayFlow(requestParms);
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
mPresenter
.
excutePayFlow
(
requestParms
);
}
@Override
public
void
showLoading
(
String
message
)
{
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
intent
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
intent
);
LoganManager
.
w_code
(
TAG
,
"onActivityResult->"
+
"resultCode="
+
resultCode
+
" requestCode="
+
requestCode
);
if
(
resultCode
==
android
.
app
.
Activity
.
RESULT_OK
)
{
switch
(
requestCode
)
{
case
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
:
{
if
(
intent
.
getExtras
()
!=
null
)
{
String
status
=
(
String
)
intent
.
getExtras
().
get
(
"status"
);
String
transaction_id
=
(
String
)
intent
.
getExtras
().
get
(
"transaction_id"
);
LoganManager
.
w_code
(
TAG
,
"onActivityResult-》"
+
"status="
+
status
+
" transaction_id="
+
transaction_id
);
mPresenter
.
findSaleStatus
(
transaction_id
,
requestParms
.
getOrderId
(),
requestParms
.
getPayType
(),
requestParms
.
getResturantId
());
}
break
;
}
default
:
showStatusLoadingDialog
(
PayStep
.
FAILURE
);
break
;
}
}
else
{
showStatusLoadingDialog
(
PayStep
.
FAILURE
);
}
}
@Override
public
void
hideLoading
()
{
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
mContext
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
super
.
killMyself
();
}
// @Override
// public void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
// super.onActivityResult(requestCode, resultCode, intent);
// LoganManager.w_code(TAG, "onActivityResult->" + "resultCode=" + resultCode + " requestCode=" + requestCode);
// if (resultCode == android.app.Activity.RESULT_OK) {
// switch (requestCode) {
// case YedpayConstant.CallRequestCode.SALE_REQUEST_CODE: {
// if (intent.getExtras() != null) {
// String status = (String) intent.getExtras().get("status");
// String transaction_id = (String) intent.getExtras().get("transaction_id");
// LoganManager.w_code(TAG, "onActivityResult-》" + "status=" + status + " transaction_id=" + transaction_id);
// mPresenter.yedPayUpdateStatus(transaction_id, requestParms.getOrderId(), requestParms.getPayType(), requestParms.getResturantId());
// }
// break;
// }
// default:
// showStatusLoadingDialog(PayStep.FAILURE);
// break;
// }
// } else {
// showStatusLoadingDialog(PayStep.FAILURE);
// }
// }
@Override
public
void
startActivityForResult
(
Intent
intent
)
{
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
}
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/YedpayModel.java
View file @
b08655a8
...
...
@@ -3,8 +3,8 @@ package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.rxjava.MyRxSchedulerUtils
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.model.service.YedpayService
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.model.service.PayFlowService
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
...
...
@@ -53,12 +53,14 @@ public class YedpayModel extends BaseModel implements YedpayContract.Model {
@Override
public
Single
<
BaseResult
>
findSaleStatus
(
RequestBody
body
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
YedpayService
.
class
)
.
findSaleStatus
(
body
);
.
findSaleStatus
(
body
)
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
());
}
@Override
public
Single
<
BaseResult
>
refundOrder
(
RequestBody
body
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
YedpayService
.
class
)
.
refundOrder
(
body
);
.
refundOrder
(
body
)
.
compose
(
MyRxSchedulerUtils
.
_io_main_f
());
}
}
\ No newline at end of file
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/bean/YedPayRefundBean.java
0 → 100644
View file @
b08655a8
package
com
.
gingersoft
.
gsa
.
cloud
.
pay
.
device
.
pos
.
yedpay
.
lifecycle
.
model
.
bean
;
/**
* @作者: bin
* @創建時間: 2021-04-15 18:06
* @更新時間: 2021-04-15 18:06
* @描述:
*/
public
class
YedPayRefundBean
{
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/model/bean/YedpayFindSaleStatusBean.java
0 → 100644
View file @
b08655a8
package
com
.
gingersoft
.
gsa
.
cloud
.
pay
.
device
.
pos
.
yedpay
.
lifecycle
.
model
.
bean
;
import
lombok.Data
;
/**
* @作者: bin
* @創建時間: 2021-04-15 18:46
* @更新時間: 2021-04-15 18:46
* @描述:
*/
@Data
public
class
YedpayFindSaleStatusBean
{
/**
* 訂單id
*/
private
long
orderId
=
-
1L
;
/**
* 支付状态:0 未支付 1 支付失败 2 支持成功 3 已支付未到账 4.支付中 5.已退款 6.廢棄(第二次結賬)
*/
private
Integer
status
;
/**
* 交易id
*/
private
String
transactionId
;
/**
* 退款id
*/
private
String
refundId
;
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/device/pos/yedpay/lifecycle/presenter/YedpayPresenter.java
View file @
b08655a8
...
...
@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.presenter;
import
android.app.Application
;
import
android.content.Intent
;
import
android.net.Uri
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
...
...
@@ -13,20 +12,17 @@ import com.gingersoft.gsa.cloud.pay.RequestParms;
import
com.gingersoft.gsa.cloud.pay.ResultCallback
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.YedpayCommand
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.constant.YedpayConstant
;
import
com.gingersoft.gsa.cloud.pay.lifecycle.model.bean.YedpayFindSaleStatusBean
;
import
com.gingersoft.gsa.cloud.pay.
device.pos.yedpay.
lifecycle.model.bean.YedpayFindSaleStatusBean
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.pay.device.pos.yedpay.lifecycle.contract.YedpayContract
;
import
com.jess.arms.utils.RxLifecycleUtils
;
...
...
@@ -71,7 +67,6 @@ public class YedpayPresenter extends BasePresenter<YedpayContract.Model, YedpayC
this
.
mApplication
=
null
;
}
public
void
findSaleStatus
(
String
transactionId
,
long
orderId
,
int
payType
,
int
restaurantId
)
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"transactionId"
,
transactionId
)
...
...
@@ -79,11 +74,7 @@ public class YedpayPresenter extends BasePresenter<YedpayContract.Model, YedpayC
.
add
(
"payType"
,
payType
+
""
)
.
add
(
"restaurantId"
,
restaurantId
+
""
)
.
build
();
mModel
.
findSaleStatus
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
...
...
@@ -137,9 +128,6 @@ public class YedpayPresenter extends BasePresenter<YedpayContract.Model, YedpayC
.
add
(
"restaurantId"
,
String
.
valueOf
(
restaurantId
))
.
build
();
mModel
.
refundOrder
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
...
...
@@ -191,13 +179,27 @@ public class YedpayPresenter extends BasePresenter<YedpayContract.Model, YedpayC
public
void
callSaleUri
(
String
uri
)
{
Uri
uri2
=
Uri
.
parse
(
uri
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri2
);
mRootView
.
getFragment
().
startActivityForResult
(
intent
,
YedpayConstant
.
CallRequestCode
.
SALE_REQUEST_CODE
);
mRootView
.
startActivityForResult
(
intent
);
}
@Override
public
void
refundResult
(
boolean
result
)
{
refundOrder
(
mRequestParms
.
getRefundReason
(),
mRequestParms
.
getOrderId
(),
mRequestParms
.
getPayType
(),
mRequestParms
.
getResturantId
());
}
@Override
public
void
querySaleStatus
(
String
uri
)
{
Uri
uri2
=
Uri
.
parse
(
uri
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri2
);
mRootView
.
startActivityForResult
(
intent
);
}
@Override
public
void
queryRefundStatus
(
String
uri
)
{
Uri
uri2
=
Uri
.
parse
(
uri
);
Intent
intent
=
new
Intent
(
Intent
.
ACTION_VIEW
,
uri2
);
mRootView
.
startActivityForResult
(
intent
);
}
};
}
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/lifecycle/fragment/PayFlowFragment.java
View file @
b08655a8
...
...
@@ -55,8 +55,9 @@ public class PayFlowFragment<P extends BasePresenter> extends BaseDialogFragment
@BindView
(
R2
.
id
.
tv_status
)
TextView
tv_status
;
private
RequestParms
requestParms
;
private
PayAction
action
;
protected
P
mPresenter
;
protected
RequestParms
requestParms
;
protected
PayAction
action
;
private
final
long
mCancelDelayMillis
=
2000
;
private
String
mLoadingText
=
"支付中..."
;
...
...
@@ -94,6 +95,7 @@ public class PayFlowFragment<P extends BasePresenter> extends BaseDialogFragment
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
mPresenter
=
(
P
)
mPresenter
;
Bundle
arguments
=
getArguments
();
requestParms
=
arguments
.
getParcelable
(
"requestParms"
);
action
=
requestParms
.
getAction
();
...
...
@@ -181,9 +183,16 @@ public class PayFlowFragment<P extends BasePresenter> extends BaseDialogFragment
},
mCancelDelayMillis
);
}
@Override
public
Fragment
getFragment
()
{
return
this
;
}
public
RequestParms
getRequestParms
()
{
return
requestParms
;
}
public
PayAction
getAction
()
{
return
action
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment