Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
b6deec5d
Commit
b6deec5d
authored
Jul 28, 2021
by
shiyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
在XBridBusiness组件集成ping++,支持H5的支付能力
parent
243423a4
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
90 additions
and
46 deletions
+90
-46
ZapServiceActionConstants.kt
.../com/yidian/bcommon/services/ZapServiceActionConstants.kt
+2
-0
ZapServiceNameConstants.kt
...va/com/yidian/bcommon/services/ZapServiceNameConstants.kt
+2
-0
build.gradle
Components/BOrder/build.gradle
+0
-2
AndroidManifest.xml
Components/BOrder/src/main/AndroidManifest.xml
+0
-25
BOrderApplication.kt
...a/com/yidian/shenghuoquan/border/app/BOrderApplication.kt
+6
-1
AndroidManifest.xml
Components/BXBridBusiness/src/main/AndroidManifest.xml
+23
-1
XBirdBusinessApplication.kt
...enghuoquan/bxbirdbusiness/app/XBirdBusinessApplication.kt
+4
-0
BPayService.kt
...yidian/shenghuoquan/bxbirdbusiness/service/BPayService.kt
+4
-4
CommonWebViewActivity.kt
...n/shenghuoquan/bxbirdbusiness/ui/CommonWebViewActivity.kt
+40
-1
build.gradle
build.gradle
+2
-0
config.gradle
config/config.gradle
+7
-12
No files found.
CommonLib/BCommon/src/main/java/com/yidian/bcommon/services/ZapServiceActionConstants.kt
View file @
b6deec5d
...
@@ -15,6 +15,8 @@ class ZapServiceActionConstants {
...
@@ -15,6 +15,8 @@ class ZapServiceActionConstants {
const
val
ActionRequestSmsCode
=
"ActionRequestSmsCode"
const
val
ActionRequestSmsCode
=
"ActionRequestSmsCode"
// 通过服务清除内存中的认证数据
// 通过服务清除内存中的认证数据
const
val
ActionClearAuthenticationData
=
"ActionClearAuthenticationData"
const
val
ActionClearAuthenticationData
=
"ActionClearAuthenticationData"
// 进行支付
const
val
ActionToPay
=
"ActionToPay"
}
}
}
}
CommonLib/BCommon/src/main/java/com/yidian/bcommon/services/ZapServiceNameConstants.kt
View file @
b6deec5d
...
@@ -15,6 +15,8 @@ class ZapServiceNameConstants {
...
@@ -15,6 +15,8 @@ class ZapServiceNameConstants {
const
val
GeneralAbilityService
=
"GeneralAbilityService"
const
val
GeneralAbilityService
=
"GeneralAbilityService"
// BGeneralBusiness组件中给H5提供的通用网络请求服务(名称需要和H5同步的)
// BGeneralBusiness组件中给H5提供的通用网络请求服务(名称需要和H5同步的)
const
val
BNAHttpReq
=
"BNAHttpReq"
const
val
BNAHttpReq
=
"BNAHttpReq"
// BOrder组件中给H5提供的支付服务(名称需要和H5同步的)
const
val
BPayService
=
"bPayService"
}
}
...
...
Components/BOrder/build.gradle
View file @
b6deec5d
...
@@ -64,6 +64,4 @@ dependencies {
...
@@ -64,6 +64,4 @@ dependencies {
testImplementation
rootProject
.
ext
.
dependencies
.
testImplementation
testImplementation
rootProject
.
ext
.
dependencies
.
testImplementation
androidTestImplementation
rootProject
.
ext
.
dependencies
.
androidTestImplementation
androidTestImplementation
rootProject
.
ext
.
dependencies
.
androidTestImplementation
implementation
'com.pingxx:pingpp-android:2.3.5'
// (Ping++ 标准版 SDK) 必须添加
implementation
'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9'
// 使用微信支付时添加,具体版本参考微信官方文档
}
}
\ No newline at end of file
Components/BOrder/src/main/AndroidManifest.xml
View file @
b6deec5d
...
@@ -3,29 +3,4 @@
...
@@ -3,29 +3,4 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"com.yidian.shenghuoquan.border"
>
package=
"com.yidian.shenghuoquan.border"
>
<!-- ping++权限 -->
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>-->
<!-- 银联需要的权限 -->
<!-- <uses-permission android:name="android.permission.NFC"/>-->
<application>
<!-- Ping++ sdk -->
<activity
android:name=
"com.pingplusplus.android.PaymentActivity"
android:configChanges=
"orientation|keyboardHidden|navigation|screenSize"
android:launchMode=
"singleTop"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
>
</activity>
<!-- 微信支付 sdk ,也是 Ping++ sdk 调用入口 -->
<activity-alias
android:name=
"${applicationId}.wxapi.WXPayEntryActivity"
android:exported=
"true"
android:targetActivity=
"com.pingplusplus.android.PaymentActivity"
/>
</application>
</manifest>
</manifest>
\ No newline at end of file
Components/BOrder/src/main/java/com/yidian/shenghuoquan/border/app/BOrderApplication.kt
View file @
b6deec5d
package
com.yidian.shenghuoquan.border.app
package
com.yidian.shenghuoquan.border.app
class
BOrderApplication
{
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.yac.core.core.YacModuleSpec
@YacModuleSpec
class
BOrderApplication
:
YdBaseApplication
()
{
}
}
Components/BXBridBusiness/src/main/AndroidManifest.xml
View file @
b6deec5d
...
@@ -2,11 +2,33 @@
...
@@ -2,11 +2,33 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.yidian.shenghuoquan.bxbirdbusiness"
>
package=
"com.yidian.shenghuoquan.bxbirdbusiness"
>
<!-- ping++权限 -->
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>-->
<!-- 银联需要的权限 -->
<!-- <uses-permission android:name="android.permission.NFC"/>-->
<application>
<application>
<!-- Ping++ sdk -->
<activity
android:name=
"com.pingplusplus.android.PaymentActivity"
android:configChanges=
"orientation|keyboardHidden|navigation|screenSize"
android:launchMode=
"singleTop"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
>
</activity>
<!-- 微信支付 sdk ,也是 Ping++ sdk 调用入口 -->
<activity-alias
android:name=
"${applicationId}.wxapi.WXPayEntryActivity"
android:exported=
"true"
android:targetActivity=
"com.pingplusplus.android.PaymentActivity"
/>
<activity
<activity
android:name=
"com.yidian.shenghuoquan.bxbirdbusiness.ui.CommonWebViewActivity"
android:name=
"com.yidian.shenghuoquan.bxbirdbusiness.ui.CommonWebViewActivity"
android:windowSoftInputMode=
"adjustPan"
/>
android:windowSoftInputMode=
"adjustPan"
/>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
Components/BXBridBusiness/src/main/java/com/yidian/shenghuoquan/bxbirdbusiness/app/XBirdBusinessApplication.kt
View file @
b6deec5d
...
@@ -3,12 +3,15 @@ package com.yidian.shenghuoquan.bxbirdbusiness.app
...
@@ -3,12 +3,15 @@ package com.yidian.shenghuoquan.bxbirdbusiness.app
import
android.content.Intent
import
android.content.Intent
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.app.YdBaseApplication
import
com.yidian.bcommon.services.ZapServiceNameConstants
import
com.yidian.news.util.ProcessUtil
import
com.yidian.news.util.ProcessUtil
import
com.yidian.shenghuoquan.bxbirdbusiness.service.BPayService
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.node.XPageHandler
import
com.yidian.xpage.node.XPageHandler
import
com.yidian.xpage.node.XPageNode
import
com.yidian.xpage.node.XPageNode
import
com.yidian.xpage.node.XPageNodePageType
import
com.yidian.xpage.node.XPageNodePageType
import
com.yidian.yac.core.core.YacModuleSpec
import
com.yidian.yac.core.core.YacModuleSpec
import
com.yidian.yac.core.zap.Zap
import
timber.log.Timber
import
timber.log.Timber
@YacModuleSpec
@YacModuleSpec
...
@@ -43,6 +46,7 @@ class XBirdBusinessApplication : YdBaseApplication() {
...
@@ -43,6 +46,7 @@ class XBirdBusinessApplication : YdBaseApplication() {
}
}
private
fun
initService
()
{
private
fun
initService
()
{
Zap
.
addService
(
ZapServiceNameConstants
.
BPayService
,
BPayService
())
}
}
}
}
Components/BXBridBusiness/src/main/java/com/yidian/shenghuoquan/bxbirdbusiness/service/BPayService.kt
View file @
b6deec5d
package
com.yidian.shenghuoquan.b
order
.service
package
com.yidian.shenghuoquan.b
xbirdbusiness
.service
import
com.yidian.bcommon.services.ZapServiceActionConstants
import
com.yidian.bcommon.services.ZapServiceActionConstants
import
com.yidian.shenghuoquan.bxbirdbusiness.ui.CommonWebViewActivity
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.yac.core.zap.ZapService
import
com.yidian.yac.core.zap.ZapService
import
org.json.JSONObject
import
org.json.JSONObject
...
@@ -32,9 +33,8 @@ class BPayService : ZapService() {
...
@@ -32,9 +33,8 @@ class BPayService : ZapService() {
private
fun
transferPayment
(
params
:
JSONObject
)
{
private
fun
transferPayment
(
params
:
JSONObject
)
{
val
payChannel
=
params
.
optString
(
"payChannel"
)
val
payChannel
=
params
.
optString
(
"payChannel"
)
val
charge
=
params
.
optString
(
"data"
)
val
charge
=
params
.
optString
(
"data"
)
// 通过XBrid中的服务,进行调起支付,并返回支付结果
// 进行调起支付,并返回支付结果
CommonWebViewActivity
.
transferPayment
(
charge
,
resolver
)
}
}
}
}
Components/BXBridBusiness/src/main/java/com/yidian/shenghuoquan/bxbirdbusiness/ui/CommonWebViewActivity.kt
View file @
b6deec5d
package
com.yidian.shenghuoquan.bxbirdbusiness.ui
package
com.yidian.shenghuoquan.bxbirdbusiness.ui
import
android.content.Intent
import
android.webkit.WebChromeClient
import
android.webkit.WebChromeClient
import
android.webkit.WebView
import
android.webkit.WebView
import
androidx.activity.viewModels
import
androidx.activity.viewModels
import
com.pingplusplus.android.Pingpp
import
com.pingplusplus.android.Pingpp.REQUEST_CODE_PAYMENT
import
com.yidian.bcommon.constant.XBirdPageConstants
import
com.yidian.bcommon.constant.XBirdPageConstants
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.constant.XRouterPathConstants
import
com.yidian.bcommon.extensions.initTitleBar
import
com.yidian.bcommon.extensions.initTitleBar
...
@@ -13,9 +16,11 @@ import com.yidian.shenghuoquan.bxbirdbusiness.R
...
@@ -13,9 +16,11 @@ import com.yidian.shenghuoquan.bxbirdbusiness.R
import
com.yidian.shenghuoquan.bxbirdbusiness.databinding.XbridActivityCommonWebViewBinding
import
com.yidian.shenghuoquan.bxbirdbusiness.databinding.XbridActivityCommonWebViewBinding
import
com.yidian.xarc.xbrid.XBridManager
import
com.yidian.xarc.xbrid.XBridManager
import
com.yidian.xarc.xbrid.XWebView
import
com.yidian.xarc.xbrid.XWebView
import
com.yidian.xarc.xrouter.ResultResolver
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageViewProtocol
import
com.yidian.xpage.XPageViewProtocol
import
timber.log.Timber
import
timber.log.Timber
import
kotlin.isInitialized
as
isInitialized1
/**
/**
...
@@ -88,7 +93,7 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
...
@@ -88,7 +93,7 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
override
fun
onDestroy
()
{
override
fun
onDestroy
()
{
super
.
onDestroy
()
super
.
onDestroy
()
if
(
::
webView
.
isInitialized
)
{
if
(
::
webView
.
isInitialized
1
)
{
XBridManager
.
backWebView
(
webView
)
XBridManager
.
backWebView
(
webView
)
}
}
}
}
...
@@ -113,4 +118,38 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
...
@@ -113,4 +118,38 @@ class CommonWebViewActivity : BaseMvvmActivity<XbridActivityCommonWebViewBinding
}
}
}
}
companion
object
{
var
resolver
:
ResultResolver
?
=
null
val
context
by
lazy
{
this
}
/**
* 在H5页面调起支付
*/
fun
transferPayment
(
charge
:
String
,
resolver
:
ResultResolver
)
{
this
.
resolver
=
resolver
Pingpp
.
createPayment
(
this
,
charge
)
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
//支付页面返回处理
if
(
requestCode
==
REQUEST_CODE_PAYMENT
)
{
if
(
resultCode
==
RESULT_OK
)
{
val
result
=
data
?.
extras
?.
getString
(
"pay_result"
)
/* 处理返回值
* "success" - 支付成功
* "fail" - 支付失败
* "cancel" - 取消支付
* "invalid" - 支付插件未安装(一般是微信客户端未安装的情况)
* "unknown" - app进程异常被杀死(一般是低内存状态下,app进程被杀死)
*/
val
errorMsg
=
data
?.
extras
?.
getString
(
"error_msg"
)
// 错误信息
val
extraMsg
=
data
?.
extras
?.
getString
(
"extra_msg"
)
// 错误信息
resolver
?.
success
(
result
)
}
}
}
}
}
build.gradle
View file @
b6deec5d
...
@@ -29,6 +29,8 @@ allprojects {
...
@@ -29,6 +29,8 @@ allprojects {
maven
{
url
'https://maven.aliyun.com/repository/google'
}
maven
{
url
'https://maven.aliyun.com/repository/google'
}
maven
{
url
'https://maven.aliyun.com/repository/central'
}
maven
{
url
'https://maven.aliyun.com/repository/central'
}
maven
{
url
'https://maven.aliyun.com/repository/gradle-plugin'
}
maven
{
url
'https://maven.aliyun.com/repository/gradle-plugin'
}
maven
{
url
"http://dailybuild2.yidian-inc.com:8088/repository/maven-public/"
}
google
()
google
()
mavenCentral
()
mavenCentral
()
jcenter
()
jcenter
()
...
...
config/config.gradle
View file @
b6deec5d
...
@@ -66,8 +66,6 @@ ext.dependencies = [
...
@@ -66,8 +66,6 @@ ext.dependencies = [
'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0'
,
'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0'
,
'androidx.lifecycle:lifecycle-extensions:2.2.0'
,
'androidx.lifecycle:lifecycle-extensions:2.2.0'
,
'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'
,
'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'
,
'jp.co.cyberagent.android:gpuimage:2.1.0'
,
'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
,
// 日志 https://github.com/JakeWharton/timber
// 日志 https://github.com/JakeWharton/timber
'com.jakewharton.timber:timber:4.7.1'
,
'com.jakewharton.timber:timber:4.7.1'
,
...
@@ -77,15 +75,9 @@ ext.dependencies = [
...
@@ -77,15 +75,9 @@ ext.dependencies = [
'com.scwang.smart:refresh-footer-classics:2.0.1'
,
'com.scwang.smart:refresh-footer-classics:2.0.1'
,
"androidx.recyclerview:recyclerview:1.1.0"
,
"androidx.recyclerview:recyclerview:1.1.0"
,
'de.hdodenhof:circleimageview:3.1.0'
,
'com.github.chrisbanes:PhotoView:2.3.0'
,
// 'com.yidian.android:CommonComponent:0.0.88',
'com.yidian.android:CommonUtil:0.0.88'
,
'com.yidian.android:CommonUtil:0.0.88'
,
'com.yidian.android:nightmode:0.0.88'
,
'com.yidian.android:nightmode:0.0.88'
,
'com.yidian.xarc:xevent:0.0.3'
,
'com.yidian.xarc:xevent:0.0.3'
,
'com.google.zxing:core:3.4.0'
,
'id.zelory:compressor:3.0.0'
,
// 风控SDK
// 风控SDK
'com.yidian.ftcomponents:ftdevicefinger:0.0.14'
,
'com.yidian.ftcomponents:ftdevicefinger:0.0.14'
,
// 应用升级SDK
// 应用升级SDK
...
@@ -128,11 +120,10 @@ ext.dependencies = [
...
@@ -128,11 +120,10 @@ ext.dependencies = [
'io.reactivex.rxjava3:rxjava:3.0.9'
,
'io.reactivex.rxjava3:rxjava:3.0.9'
,
'com.yidian.framework.mobile:ydhttp:1.1.3-SNAPSHOT'
,
'com.yidian.framework.mobile:ydhttp:1.1.3-SNAPSHOT'
,
'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT'
,
'com.yidian.framework.mobile:ydutils:1.0.1-SNAPSHOT'
,
// 磐石
'com.yidian.framework.mobile:xdiamond:1.0.8'
,
'com.yidian.framework.mobile:xdiamond:1.0.8'
,
// 慧眼
// 慧眼
'com.yidian.framework.mobile.xinsight:xinsight:1.1.7'
,
'com.yidian.framework.mobile.xinsight:xinsight:1.1.7'
,
'com.loopj.android:android-async-http:1.4.9'
,
// 屏幕适配
// 屏幕适配
'me.jessyan:autosize:1.2.1'
,
'me.jessyan:autosize:1.2.1'
,
//https://github.com/CymChad/BaseRecyclerViewAdapterHelper
//https://github.com/CymChad/BaseRecyclerViewAdapterHelper
...
@@ -140,12 +131,16 @@ ext.dependencies = [
...
@@ -140,12 +131,16 @@ ext.dependencies = [
// PictureSelector2.0 https://github.com/LuckSiege/PictureSelector
// PictureSelector2.0 https://github.com/LuckSiege/PictureSelector
'io.github.lucksiege:pictureselector:v2.7.3-rc05'
,
'io.github.lucksiege:pictureselector:v2.7.3-rc05'
,
// Compressor https://github.com/zetbaitsu/Compressor
// Compressor https://github.com/zetbaitsu/Compressor
'id.zelory:compressor:3.0.1'
'id.zelory:compressor:3.0.1'
,
// (Ping++ 标准版 SDK) 必须添加
'com.pingxx:pingpp-android:2.3.5'
,
// 使用微信支付时添加,具体版本参考微信官方文档
'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9'
],
],
other
:
[
other
:
[
':CommonLib:BCommon'
':CommonLib:BCommon'
],
],
video
:
'com.yidian.framework.mobile:ydvideo:1.0.0-SNAPSHOT'
,
androidTestImplementation:
[
androidTestImplementation:
[
'androidx.test.ext:junit:1.1.2'
,
'androidx.test.ext:junit:1.1.2'
,
'androidx.test.espresso:espresso-core:3.3.0'
'androidx.test.espresso:espresso-core:3.3.0'
...
...
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