Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
starlight
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王雪伟
starlight
Commits
460cdf3b
Commit
460cdf3b
authored
Apr 22, 2022
by
王雪伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[提交人]:王雪伟
[提交简述] :修改充值弹窗 [实现方案] :
parent
5729eae5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1380 additions
and
16 deletions
+1380
-16
Appli.kt
app/src/main/java/com/zhangxin/starlight/Appli.kt
+25
-1
Constant.java
cms/src/main/java/com/zxhl/cms/common/Constant.java
+2
-0
NetConfig.java
cms/src/main/java/com/zxhl/cms/common/NetConfig.java
+4
-0
IHomeApi.kt
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
+9
-0
IUserInfoApi.java
cms/src/main/java/com/zxhl/cms/net/api/IUserInfoApi.java
+8
-0
GooglePayEntity.java
...main/java/com/zxhl/cms/net/model/pay/GooglePayEntity.java
+60
-0
BecomeVipDialogPriceAdapter.kt
...a/com/zxhl/cms/pay/adapter/BecomeVipDialogPriceAdapter.kt
+87
-0
GooglePayCallBack.kt
...main/java/com/zxhl/cms/pay/googlepay/GooglePayCallBack.kt
+16
-0
GooglePayHelper.kt
...c/main/java/com/zxhl/cms/pay/googlepay/GooglePayHelper.kt
+677
-0
GooglePayResult.kt
...c/main/java/com/zxhl/cms/pay/googlepay/GooglePayResult.kt
+13
-0
PayPalHelper.kt
cms/src/main/java/com/zxhl/cms/pay/paypal/PayPalHelper.kt
+221
-0
PayPalPayCallBack.kt
...rc/main/java/com/zxhl/cms/pay/paypal/PayPalPayCallBack.kt
+16
-0
PaymentPagePresenter.kt
...n/java/com/zxhl/cms/pay/presenter/PaymentPagePresenter.kt
+1
-1
CoinStoreActivity.kt
cms/src/main/java/com/zxhl/cms/pay/view/CoinStoreActivity.kt
+1
-1
PaymentPageActivity.kt
...rc/main/java/com/zxhl/cms/pay/view/PaymentPageActivity.kt
+151
-7
VipPayDialog.kt
cms/src/main/java/com/zxhl/cms/pay/view/VipPayDialog.kt
+12
-3
shape_f4edff_r10_bg.xml
cms/src/main/res/drawable/shape_f4edff_r10_bg.xml
+7
-0
activity_layout_payment_page.xml
cms/src/main/res/layout/activity_layout_payment_page.xml
+7
-0
dialog_layout_vip_pay.xml
cms/src/main/res/layout/dialog_layout_vip_pay.xml
+7
-3
item_layout_become_dialog_vip_price_view.xml
...n/res/layout/item_layout_become_dialog_vip_price_view.xml
+56
-0
No files found.
app/src/main/java/com/zhangxin/starlight/Appli.kt
View file @
460cdf3b
...
...
@@ -13,6 +13,12 @@ import androidx.multidex.MultiDex
import
com.heytap.msp.push.HeytapPushManager
import
com.huawei.hms.push.HmsMessaging
import
com.meizu.cloud.pushsdk.PushManager
import
com.paypal.checkout.PayPalCheckout
import
com.paypal.checkout.config.CheckoutConfig
import
com.paypal.checkout.config.Environment
import
com.paypal.checkout.config.SettingsConfig
import
com.paypal.checkout.createorder.CurrencyCode
import
com.paypal.checkout.createorder.UserAction
import
com.tencent.android.tpush.XGPushConfig
import
com.tencent.bugly.crashreport.CrashReport
import
com.tencent.imsdk.v2.V2TIMCallback
...
...
@@ -105,8 +111,26 @@ class Appli : Application() {
// }
// })
registerActivityLifecycleCallbacks
(
StatisticActivityLifecycleCallback
())
}
initPayPal
()
}
private
fun
initPayPal
()
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
)
{
val
config
=
CheckoutConfig
(
application
=
this
,
clientId
=
Constant
.
PAY_PAL_CLIENT_ID
,
environment
=
Environment
.
SANDBOX
,
//正式上线后,改为Environment.LIVE
returnUrl
=
"com.zhangxin.starlight://paypalpay"
,
//创建应用时填的RETURN_URL
currencyCode
=
CurrencyCode
.
USD
,
//货币种类:CNY-人民币;HKD-港币;TWD-新台币;USD-美元...
userAction
=
UserAction
.
PAY_NOW
,
settingsConfig
=
SettingsConfig
(
loggingEnabled
=
false
,
shouldFailEligibility
=
false
)
)
PayPalCheckout
.
setConfig
(
config
)
}
}
private
fun
getOaid
()
{
MiitHelper
(
appIdsUpdater
).
getDeviceIds
(
AppContext
.
mAppContext
)
}
...
...
cms/src/main/java/com/zxhl/cms/common/Constant.java
View file @
460cdf3b
...
...
@@ -8,6 +8,8 @@ import android.Manifest;
public
class
Constant
{
public
static
String
PAY_PAL_CLIENT_ID
=
"AeCOQewq8tWcuy7V2YsL3S3IRMDZk6zSTtHP76x-yiHIgYN7PZ1xT4Iyzv-2zJm15OqR5sWjc6__9xhE"
;
//公共参数
String
UMENG_APPKEY
=
"597dbf2abbea835685001b27"
;
...
...
cms/src/main/java/com/zxhl/cms/common/NetConfig.java
View file @
460cdf3b
...
...
@@ -30,6 +30,7 @@ public class NetConfig {
public
static
String
BASE_FEED_URL
=
""
;
public
static
final
String
URL_REPORT_BASE
=
"http://report.zhangxinhulian.com/"
;
public
static
final
String
HOME_BANNER_BASE_URL
=
"https://bs.zhangxinhulian.com/"
;
public
static
final
String
URL_PAY_BASE
=
"http://paytest.zhangxinhulian.com/"
;
public
static
void
setBase_Url
(
Environment
s
)
{
sEnvironment
=
s
;
...
...
@@ -155,6 +156,9 @@ public class NetConfig {
public
static
final
String
URL_AUTH_GOOGLE_LOGIN
=
"app/v1/auth/googleLogin"
;
//绑定谷歌登录
public
static
final
String
URL_AUTH_FACEBOOK_LOGIN
=
"app/v1/auth/facebookLogin"
;
//绑定FaceBook登录
///unifiedpay/gateway/google/替换包名/notify/order
public
static
final
String
URL_GOOGLE_NOTIFY
=
URL_PAY_BASE
+
"unifiedpay/gateway/google/com.zhangxin.magicbox/notify/order"
;
}
public
static
class
Task
{
...
...
cms/src/main/java/com/zxhl/cms/net/api/IHomeApi.kt
View file @
460cdf3b
...
...
@@ -8,6 +8,7 @@ import com.zxhl.cms.net.model.other.IsWeChatLoginEntity
import
com.zxhl.cms.net.model.other.WxBindEntity
import
com.zxhl.cms.net.model.uc.UserInfo
import
com.zxhl.cms.net.model.uc.VersionEntity
import
com.zxhl.cms.pay.googlepay.GooglePayResult
import
io.reactivex.Observable
import
okhttp3.MultipartBody
import
retrofit2.http.*
...
...
@@ -305,4 +306,12 @@ interface IHomeApi {
@POST
(
NetConfig
.
StarLight
.
HOME_STAR_CONSTELLATION_RESLUT
)
fun
getStarMachReslut
():
Observable
<
Response
<
StarMachEntity
>>
/**
* google支付成功后 通知后台
*/
@POST
(
NetConfig
.
User
.
URL_GOOGLE_NOTIFY
)
fun
googlePaySuccess
(
@Body
entity
:
GooglePayResult
?
):
Observable
<
Response
<
Any
>>
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/net/api/IUserInfoApi.java
View file @
460cdf3b
...
...
@@ -2,6 +2,7 @@ package com.zxhl.cms.net.api;
import
com.zxhl.cms.ad.upload.model.Response
;
import
com.zxhl.cms.common.NetConfig
;
import
com.zxhl.cms.net.model.pay.GooglePayEntity
;
import
com.zxhl.cms.net.model.uc.AliPayEntity
;
import
com.zxhl.cms.net.model.uc.PayVerifyEntity
;
import
com.zxhl.cms.net.model.uc.UserInfo
;
...
...
@@ -64,6 +65,13 @@ public interface IUserInfoApi {
@POST
(
NetConfig
.
User
.
URL_PAY_ORDER
)
Observable
<
Response
<
AliPayEntity
>>
aliPay
(
@Query
(
"goodsId"
)
String
goodsId
,
@Query
(
"payType"
)
String
payType
,
@Query
(
"voucherId"
)
String
voucherId
,
@Query
(
"appId"
)
String
appId
);
/**
* Google支付
*
* @return
*/
@POST
(
NetConfig
.
User
.
URL_PAY_ORDER
)
Observable
<
Response
<
GooglePayEntity
>>
googlePay
(
@Query
(
"goodsId"
)
String
goodsId
,
@Query
(
"payType"
)
String
payType
,
@Query
(
"voucherId"
)
String
voucherId
,
@Query
(
"appId"
)
String
appId
,
@Query
(
"payMode"
)
String
payMode
);
/**
* 获取用户资料
...
...
cms/src/main/java/com/zxhl/cms/net/model/pay/GooglePayEntity.java
0 → 100644
View file @
460cdf3b
package
com
.
zxhl
.
cms
.
net
.
model
.
pay
;
/**
* @author (wangXuewei)
* @detail :
*/
public
class
GooglePayEntity
{
/**
* payType : 4
* wakeup : {"orderNo":1503315110133714944}
* payPlatform : null
* outTradeNo : 1503315110133714944
*/
private
int
payType
;
private
WakeupBean
wakeup
;
private
String
outTradeNo
;
public
int
getPayType
()
{
return
payType
;
}
public
void
setPayType
(
int
payType
)
{
this
.
payType
=
payType
;
}
public
WakeupBean
getWakeup
()
{
return
wakeup
;
}
public
void
setWakeup
(
WakeupBean
wakeup
)
{
this
.
wakeup
=
wakeup
;
}
public
String
getOutTradeNo
()
{
return
outTradeNo
;
}
public
void
setOutTradeNo
(
String
outTradeNo
)
{
this
.
outTradeNo
=
outTradeNo
;
}
public
static
class
WakeupBean
{
/**
* orderNo : 1503315110133714944
*/
private
long
orderNo
;
public
long
getOrderNo
()
{
return
orderNo
;
}
public
void
setOrderNo
(
long
orderNo
)
{
this
.
orderNo
=
orderNo
;
}
}
}
cms/src/main/java/com/zxhl/cms/pay/adapter/BecomeVipDialogPriceAdapter.kt
0 → 100644
View file @
460cdf3b
package
com.zxhl.cms.pay.adapter
import
android.content.Context
import
android.graphics.Color
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.LinearLayout
import
android.widget.TextView
import
androidx.recyclerview.widget.RecyclerView
import
com.zxhl.cms.R
import
com.zxhl.cms.common.base.BaseRecyclerAdapter
import
com.zxhl.cms.net.model.pay.VipPayEntity
import
com.zxhl.cms.utils.OnRecycleItemClickListener
/**
* @author (wangXuewei)
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class
BecomeVipDialogPriceAdapter
:
BaseRecyclerAdapter
<
VipPayEntity
,
BecomeVipDialogPriceAdapter
.
ViewHolder
>
{
private
var
mContext
:
Context
?
=
null
private
var
mPosition
=
0
private
val
listener
:
OnRecycleItemClickListener
<
VipPayEntity
>
constructor
(
content
:
Context
?,
listener
:
OnRecycleItemClickListener
<
VipPayEntity
>
)
:
super
()
{
this
.
listener
=
listener
mContext
=
content
}
fun
setSelectView
(
position
:
Int
)
{
mPosition
=
position
;
notifyDataSetChanged
()
}
override
fun
onCreateViewHolder
(
holder
:
ViewGroup
,
p1
:
Int
):
BecomeVipDialogPriceAdapter
.
ViewHolder
{
return
ViewHolder
(
LayoutInflater
.
from
(
holder
.
context
)
.
inflate
(
R
.
layout
.
item_layout_become_dialog_vip_price_view
,
holder
,
false
)
)
}
override
fun
onBindViewHolder
(
holder
:
BecomeVipDialogPriceAdapter
.
ViewHolder
,
position
:
Int
)
{
// val data = mList[position]
holder
.
id_vip_time
.
text
=
"1 Week +"
holder
.
id_coin_num
.
text
=
"780"
holder
.
id_money
.
text
=
"$${2.99}"
if
(
mPosition
==
position
){
holder
.
id_item_view
.
background
=
mContext
?.
getDrawable
(
R
.
drawable
.
shape_8857ff_bd8aff_bg_r10
)
holder
.
id_vip_time
.
setTextColor
(
Color
.
parseColor
(
"#FFFFFF"
))
holder
.
id_coin_num
.
setTextColor
(
Color
.
parseColor
(
"#FFFFFF"
))
holder
.
id_money
.
setTextColor
(
Color
.
parseColor
(
"#FFFFFF"
))
}
else
{
holder
.
id_item_view
.
background
=
mContext
?.
getDrawable
(
R
.
drawable
.
shape_f4edff_r10_bg
)
holder
.
id_vip_time
.
setTextColor
(
Color
.
parseColor
(
"#333333"
))
holder
.
id_coin_num
.
setTextColor
(
Color
.
parseColor
(
"#333333"
))
holder
.
id_money
.
setTextColor
(
Color
.
parseColor
(
"#333333"
))
}
holder
.
id_item_view
?.
setOnClickListener
{
listener
.
onItemClick
(
it
,
position
,
null
)
}
}
override
fun
getItemCount
():
Int
{
return
3
}
inner
class
ViewHolder
:
RecyclerView
.
ViewHolder
{
var
id_vip_time
:
TextView
var
id_money
:
TextView
var
id_coin_num
:
TextView
var
id_item_view
:
LinearLayout
constructor
(
itemView
:
View
)
:
super
(
itemView
)
{
id_item_view
=
itemView
.
findViewById
(
R
.
id
.
id_ll_dialog_item_become_vip_view
)
id_vip_time
=
itemView
.
findViewById
(
R
.
id
.
id_tv_dialog_item_vip_time
)
id_coin_num
=
itemView
.
findViewById
(
R
.
id
.
id_tv_dialog_coin_num
)
id_money
=
itemView
.
findViewById
(
R
.
id
.
id_tv_dialog_item_price
)
}
}
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/googlepay/GooglePayCallBack.kt
0 → 100644
View file @
460cdf3b
package
com.zxhl.cms.pay.googlepay
/**
* @author (wangXuewei)
* @datetime 2022-03-14 16:49 GMT+8
* @detail :
*/
interface
GooglePayCallBack
{
fun
onPaySuccess
(
purchase
:
GooglePayResult
,
googleJson
:
String
)
fun
onCancel
()
fun
onError
(
error
:
String
)
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/googlepay/GooglePayHelper.kt
0 → 100644
View file @
460cdf3b
This diff is collapsed.
Click to expand it.
cms/src/main/java/com/zxhl/cms/pay/googlepay/GooglePayResult.kt
0 → 100644
View file @
460cdf3b
package
com.zxhl.cms.pay.googlepay
class
GooglePayResult
{
var
packageName
:
String
=
""
var
orderId
:
String
=
""
var
productId
:
String
=
""
var
developerPayload
:
String
=
""
var
obfuscatedAccountid
:
String
=
""
var
purchaseTime
:
String
=
""
var
purchaseState
:
String
=
""
var
purchaseToken
:
String
=
""
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/paypal/PayPalHelper.kt
0 → 100644
View file @
460cdf3b
This diff is collapsed.
Click to expand it.
cms/src/main/java/com/zxhl/cms/pay/paypal/PayPalPayCallBack.kt
0 → 100644
View file @
460cdf3b
package
com.zxhl.cms.paypal
/**
* @author (wangXuewei)
* @datetime 2022-03-14 16:49 GMT+8
* @detail :
*/
interface
PayPalPayCallBack
{
fun
onPaySuccess
(
result
:
String
)
fun
onCancel
()
fun
onError
(
error
:
String
)
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/presenter/PaymentPagePresenter.kt
View file @
460cdf3b
...
...
@@ -17,7 +17,7 @@ class PaymentPagePresenter:PaymentPageContract.Presenter {
}
override
fun
verifyThePayment
(
result
:
String
?,
payType
:
Int
)
{
mView
.
orderVerificationSuccessful
(
""
)
}
override
fun
appInfo
()
{
...
...
cms/src/main/java/com/zxhl/cms/pay/view/CoinStoreActivity.kt
View file @
460cdf3b
...
...
@@ -58,6 +58,6 @@ class CoinStoreActivity : BaseActivity(), CoinStoreContract.View,
}
override
fun
onItemClick
(
view
:
View
?,
position
:
Int
,
data
:
RecordEntity
?)
{
JumpUtils
.
paymentPageJump
(
Constant
.
Key
.
PAY_TYPE_COIN
,
"1"
,
"name"
,
"0.
0
"
)
JumpUtils
.
paymentPageJump
(
Constant
.
Key
.
PAY_TYPE_COIN
,
"1"
,
"name"
,
"0.
1
"
)
}
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/view/PaymentPageActivity.kt
View file @
460cdf3b
package
com.zxhl.cms.pay.view
import
android.content.Intent
import
android.os.Build
import
android.util.Log
import
android.view.View
import
com.paypal.checkout.PayPalCheckout
import
com.zxhl.cms.R
import
com.zxhl.cms.common.base.BaseActivity
import
com.zxhl.cms.net.model.box.AppInEntity
import
com.zxhl.cms.pay.PayContract
import
com.zxhl.cms.pay.contract.PaymentPageContract
import
com.zxhl.cms.pay.googlepay.GooglePayCallBack
import
com.zxhl.cms.pay.googlepay.GooglePayHelper
import
com.zxhl.cms.pay.googlepay.GooglePayResult
import
com.zxhl.cms.pay.paypal.PayPalHelper
import
com.zxhl.cms.pay.presenter.PaymentPagePresenter
import
com.zxhl.cms.paypal.PayPalPayCallBack
import
com.zxhl.cms.utils.EventUtils
import
com.zxhl.cms.utils.Utils
import
com.zxhl.cms.widget.CenterDialog
import
com.zxhl.cms.widget.LoadingDialog
import
kotlinx.android.synthetic.main.activity_layout_payment_page.*
import
kotlinx.android.synthetic.main.activity_layout_payment_page.id_img_back
import
kotlinx.android.synthetic.main.activity_member.*
...
...
@@ -30,11 +43,21 @@ class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
private
var
payType
:
Int
?
=
GOOGLE_PAY
private
var
googlePay
:
GooglePayHelper
?
=
null
private
var
payPalPay
:
PayPalHelper
?
=
null
private
var
mLoading
:
LoadingDialog
?
=
null
private
var
mPresenter
:
PaymentPageContract
.
Presenter
?
=
null
private
var
goodsType
:
String
=
""
;
private
var
goodsId
:
String
=
""
;
private
var
goodsName
:
String
=
""
;
private
var
goodsPrice
:
String
=
""
;
override
fun
init
()
{
val
goodsType
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_type"
)
?:
""
val
goodsId
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_id"
)
?:
""
val
goodsName
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_name"
)
?:
""
val
goodsPrice
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_price"
)
?:
""
goodsType
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_type"
)
?:
""
goodsId
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_id"
)
?:
""
goodsName
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_name"
)
?:
""
goodsPrice
=
intent
?.
data
?.
getQueryParameter
(
"pay_goods_price"
)
?:
""
id_tv_goods_name
.
text
=
goodsName
id_tv_goods_price
.
text
=
"Price:$${goodsPrice}"
...
...
@@ -44,6 +67,35 @@ class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
id_img_google_btn
.
setOnClickListener
(
this
)
id_rl_paypal_pay
.
setOnClickListener
(
this
)
id_tv_pay_btn
.
setOnClickListener
(
this
)
mLoading
=
LoadingDialog
.
getLoadingDialog
(
this
,
getString
(
com
.
zxhl
.
cms
.
R
.
string
.
wait_ing
),
false
,
false
)
mPresenter
=
PaymentPagePresenter
(
this
)
googlePay
=
GooglePayHelper
(
this
)
googlePay
?.
init
(
object
:
GooglePayCallBack
{
override
fun
onPaySuccess
(
purchase
:
GooglePayResult
,
googleJson
:
String
)
{
mPresenter
?.
verifyThePayment
(
googleJson
,
GOOGLE_PAY
)
//mLoading?.setResult(true, "Pay for success", 1000)
EventUtils
.
onEvent
(
"GooglePaySuccess_bd"
)
}
override
fun
onCancel
()
{
EventUtils
.
onEvent
(
"GooglePayCancel_bd"
)
}
override
fun
onError
(
error
:
String
)
{
Log
.
d
(
"wxw"
,
"补单PayError:$error"
)
EventUtils
.
onEvent
(
"GooglePayError_bd"
,
error
)
}
})
payPalPay
=
PayPalHelper
(
this
)
}
override
fun
onClick
(
v
:
View
?)
{
...
...
@@ -58,7 +110,20 @@ class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
selectPayType
(
PAY_PAL_PAY
)
}
id_tv_pay_btn
->
{
CenterDialog
.
showPaySuccessDialog
(
this
)
//CenterDialog.showPaySuccessDialog(this)
if
(
payType
==
0
)
{
Utils
.
showToast
(
this
,
"Please select payment type"
)
return
}
EventUtils
.
onEvent
(
"pay_page_pay_btn"
,
goodsPrice
)
Log
.
d
(
"wxw"
,
"Payment${goodsId}${goodsPrice}"
)
if
(
payType
==
GOOGLE_PAY
)
{
googlePay
(
goodsId
)
}
else
if
(
payType
==
PAY_PAL_PAY
)
{
payPalPay
(
goodsId
,
goodsPrice
)
}
else
{
EventUtils
.
onEvent
(
"pay_type_error"
,
"pay_type$payType"
)
}
}
}
}
...
...
@@ -82,15 +147,94 @@ class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
}
override
fun
orderVerificationSuccessful
(
status
:
String
)
{
EventUtils
.
onEvent
(
"pay_suc"
)
mLoading
?.
setResult
(
true
,
"Pay for success"
,
1000
)
}
override
fun
orderVerificationFailed
(
errorMsg
:
String
)
{
EventUtils
.
onEvent
(
"pay_fail"
)
mLoading
?.
setResult
(
false
,
"Pay for failure"
,
1000
)
}
override
fun
setAppInfo
(
result
:
AppInEntity
?)
{
}
private
fun
googlePay
(
goodsId
:
String
)
{
if
(
goodsId
==
""
)
{
EventUtils
.
onEvent
(
"GooglePayGoodsIdNull"
)
return
}
mLoading
?.
setLoading
(
getString
(
R
.
string
.
wait_ing
))
mLoading
?.
show
()
EventUtils
.
onEvent
(
"GooglePayStart"
,
"开始支付"
)
googlePay
?.
googlePay
(
goodsId
,
"6"
,
object
:
GooglePayCallBack
{
override
fun
onPaySuccess
(
purchase
:
GooglePayResult
,
googleJson
:
String
)
{
mPresenter
?.
verifyThePayment
(
googleJson
,
GOOGLE_PAY
)
EventUtils
.
onEvent
(
"GooglePaySuccess"
)
EventUtils
.
onEvent
(
"GooglePayEnd"
,
"支付结束_成功"
)
}
override
fun
onCancel
()
{
runOnUiThread
{
mLoading
?.
setResult
(
false
,
"pay cancel"
,
1000
)
}
EventUtils
.
onEvent
(
"GooglePayCancel"
)
EventUtils
.
onEvent
(
"GooglePayEnd"
,
"支付结束_取消"
)
}
override
fun
onError
(
error
:
String
)
{
Log
.
d
(
"wxw"
,
"PayError:$error"
)
runOnUiThread
{
mLoading
?.
setResult
(
false
,
"pay error"
,
1000
)
}
EventUtils
.
onEvent
(
"GooglePayError"
,
error
)
EventUtils
.
onEvent
(
"GooglePayEnd"
,
"支付结束_异常 msg:${error}"
)
}
})
}
private
fun
payPalPay
(
goodsId
:
String
,
goodsPrice
:
String
)
{
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
M
)
{
showToast
(
"Sorry your device does not currently support this payment method"
)
return
}
if
(
goodsId
==
""
||
goodsPrice
==
""
)
{
EventUtils
.
onEvent
(
"PayPalPayGoodsIdNull"
)
return
}
mLoading
?.
setLoading
(
getString
(
R
.
string
.
wait_ing
))
mLoading
?.
show
()
payPalPay
?.
payPalPay
(
goodsId
,
goodsPrice
,
"6"
,
object
:
PayPalPayCallBack
{
override
fun
onPaySuccess
(
result
:
String
)
{
EventUtils
.
onEvent
(
"PayPalPaySuccess"
)
mPresenter
?.
verifyThePayment
(
result
,
PAY_PAL_PAY
)
// runOnUiThread {
// mLoading?.setResult(false, "pay success", 1000)
// }
}
override
fun
onCancel
()
{
EventUtils
.
onEvent
(
"PayPalPayCancel"
)
runOnUiThread
{
mLoading
?.
setResult
(
false
,
"pay cancel"
,
1000
)
}
}
override
fun
onError
(
error
:
String
)
{
Log
.
d
(
"wxw"
,
"PayError:$error"
)
EventUtils
.
onEvent
(
"PayPalPayError"
,
error
)
runOnUiThread
{
mLoading
?.
setResult
(
false
,
"pay error"
,
1000
)
}
}
},
id_PayPal_btn
)
}
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/pay/view/VipPayDialog.kt
View file @
460cdf3b
...
...
@@ -11,6 +11,8 @@ import androidx.recyclerview.widget.RecyclerView
import
com.zxhl.cms.R
import
com.zxhl.cms.pay.adapter.BecomeVipBannerAdapter
import
com.zxhl.cms.pay.adapter.BecomeVipDialogBannerAdapter
import
com.zxhl.cms.pay.adapter.BecomeVipDialogPriceAdapter
import
com.zxhl.cms.utils.OnRecycleItemClickListener
import
com.zxhl.cms.widget.CenterDialog
import
com.zxhl.cms.widget.RecyclerViewPageChangeListenerHelper
import
com.zxhl.cms.widget.UIndicator
...
...
@@ -25,6 +27,7 @@ import org.greenrobot.eventbus.EventBus
object
VipPayDialog
{
private
var
mActivity
:
Activity
?
=
null
;
private
var
mBannerAdapter
:
BecomeVipDialogBannerAdapter
?
=
null
private
var
mPriceAdapter
:
BecomeVipDialogPriceAdapter
?
=
null
private
var
mCallBack
:
VipPayCallBack
?
=
null
fun
setDialogDismissCallback
(
callback
:
VipPayCallBack
?)
{
this
.
mCallBack
=
callback
...
...
@@ -60,9 +63,9 @@ object VipPayDialog {
val
pay_banner
=
mDialogView
.
findViewById
<
RecyclerView
>(
R
.
id
.
id_rcl_pay_banner
)
val
banner_indic
=
mDialogView
.
findViewById
<
UIndicator
>(
R
.
id
.
id_banner_indicator
)
val
btn_continue
=
mDialogView
.
findViewById
<
TextView
>(
R
.
id
.
id_tv_vip_dialog_pay_btn
)
val
price_list
=
mDialogView
.
findViewById
<
RecyclerView
>(
R
.
id
.
id_rcl_pay_price_list
)
//banner
banner_indic
.
setIndicatorCount
(
5
)
mBannerAdapter
=
BecomeVipDialogBannerAdapter
(
act
)
pay_banner
?.
layoutManager
=
LinearLayoutManager
(
act
,
LinearLayoutManager
.
HORIZONTAL
,
...
...
@@ -87,7 +90,13 @@ object VipPayDialog {
}
})
)
//price
mPriceAdapter
=
BecomeVipDialogPriceAdapter
(
act
)
{
view
,
position
,
data
->
mPriceAdapter
?.
setSelectView
(
position
)
}
price_list
?.
layoutManager
=
LinearLayoutManager
(
act
)
price_list
?.
adapter
=
mPriceAdapter
btn_continue
.
setOnClickListener
{
mDialog
?.
dismiss
()
...
...
cms/src/main/res/drawable/shape_f4edff_r10_bg.xml
0 → 100644
View file @
460cdf3b
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"#F4EDFF"
/>
<corners
android:radius=
"10dp"
/>
</shape>
\ No newline at end of file
cms/src/main/res/layout/activity_layout_payment_page.xml
View file @
460cdf3b
...
...
@@ -165,4 +165,11 @@
android:textSize=
"18sp"
android:textStyle=
"bold"
/>
<com.paypal.checkout.paymentbutton.PayPalButton
android:id=
"@+id/id_PayPal_btn"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentBottom=
"true"
android:layout_marginBottom=
"-100dp"
android:visibility=
"gone"
/>
</RelativeLayout>
\ No newline at end of file
cms/src/main/res/layout/dialog_layout_vip_pay.xml
View file @
460cdf3b
...
...
@@ -33,9 +33,10 @@
android:id=
"@+id/id_rcl_pay_price_list"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@id/id_
rcl_pay_banne
r"
android:layout_below=
"@id/id_
banner_indicato
r"
android:layout_marginLeft=
"10dp"
android:layout_marginTop=
"5dp"
android:layout_marginTop=
"30dp"
android:layout_above=
"@id/id_tv_vip_dialog_pay_btn"
android:layout_marginRight=
"10dp"
/>
<TextView
...
...
@@ -44,7 +45,10 @@
android:layout_height=
"50dp"
android:layout_alignParentBottom=
"true"
android:layout_centerHorizontal=
"true"
android:layout_margin=
"20dp"
android:layout_marginLeft=
"20dp"
android:layout_marginRight=
"20dp"
android:layout_marginBottom=
"20dp"
android:layout_marginTop=
"5dp"
android:background=
"@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity=
"center"
android:text=
"Continue"
...
...
cms/src/main/res/layout/item_layout_become_dialog_vip_price_view.xml
0 → 100644
View file @
460cdf3b
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<LinearLayout
android:id=
"@+id/id_ll_dialog_item_become_vip_view"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:background=
"@drawable/shape_8857ff_bd8aff_bg_r10"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/id_tv_dialog_item_vip_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"1 Month +"
android:textColor=
"@color/white"
android:textSize=
"18sp"
android:textStyle=
"bold"
/>
<ImageView
android:layout_width=
"20dp"
android:layout_height=
"20dp"
android:layout_marginLeft=
"10dp"
android:layout_marginEnd=
"5dp"
android:src=
"@drawable/icon_xingbi_da_wode"
/>
<TextView
android:id=
"@+id/id_tv_dialog_coin_num"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"780"
android:textColor=
"@color/white"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/id_tv_dialog_item_price"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"$2.99"
android:textColor=
"@color/white"
android:textSize=
"18sp"
android:textStyle=
"bold"
/>
</LinearLayout>
</RelativeLayout>
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