修改微信充值

This commit is contained in:
2025-08-13 08:52:11 +08:00
parent a8dcdf8b4b
commit 066dc96421
15 changed files with 193 additions and 144 deletions

View File

@@ -10,8 +10,12 @@ MobSDK {
loopShare true
devInfo {
Wechat {
appId "wx7b5c4e89e726a72c"
appSecret "afc9860f4c670ac19f9efb0ab94927a3"
appId "wx3304802a02ab8d62"
appSecret "fd7a8c53063654d7cf942e9950d2da6b"
// appId "wx7b5c4e89e726a72c"
// appSecret "afc9860f4c670ac19f9efb0ab94927a3"
// appId "wx3858bffeddfb91b8"
// appSecret "0b59b165268b63ba6446d1dc55a21f38"
}
QQ {
appId "102046191"
@@ -35,8 +39,8 @@ android {
minSdkVersion 22
targetSdkVersion 31
versionCode 46
versionName "1.3.6"
versionCode 47
versionName "1.3.7"
dataBinding {
//noinspection DataBindingWithoutKapt
enabled = true

View File

@@ -47,14 +47,14 @@ class ChongZhiActivity : BaseDataBindingActivity<ChongZhiViewModel, ViewDataBind
val mWxApi = WXAPIFactory.createWXAPI(
this,null)
// 将该app注册到微信
mWxApi.registerApp("wx7b5c4e89e726a72c")
mWxApi.registerApp("wx3304802a02ab8d62")
// 判断是否安装客户端
if (!mWxApi.isWXAppInstalled) {
"请您先安装微信客户端!".showToast()
return@observe
}
val req = PayReq()
req.appId = "wx7b5c4e89e726a72c" // 微信开放平台审核通过的应用APPID
req.appId = "wx3304802a02ab8d62" // 微信开放平台审核通过的应用APPID
req.partnerId = it.partnerid // 微信支付分配的商户号

View File

@@ -83,6 +83,7 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
val REQUEST_CODE_SELEC2 = 101
private var sexStr: String = ""
private var nowDate: String = ""
private var userId: String=""
private var maxSelectNum = 9 //最多显示的图片数量
override fun startObserve() {
@@ -100,11 +101,13 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
}
//ID号
id.text = it.uid
userId=it.uid
//出生日期
birthday.text = it.birthday
imgString = it.head_pic
tv_qianming.setText(it.autograph)
tv_aihao.setText(it.hobby)
viewModel.loadData(userId)
}
viewModel.editFinish.observe(this) {
@@ -136,8 +139,65 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
aihao
)
}
}
viewModel.imgListData2.observe(this) {
var imgs = ""
for (str in it) {
imgs = if (imgs.isEmpty())
str
else
"$imgs,$str"
}
viewModel.add_user_albums(imgs)
}
viewModel.userData.observe( this){
if (it.user_albums_list.isNotEmpty()) {
// 清空所有列表数据
imageListAll1.clear()
imageListAll2.clear()
tempList.clear()
// 添加服务器返回的图片数据
for (album in it.user_albums_list) {
val imageItem = ImageItem()
imageItem.name=album.aid
imageItem.path = safeUrlDecode(album.image ?: "") // 添加安全解码
tempList.add(imageItem)
imageListAll1.add(ImageItems(1, imageItem))
}
// 复制数据到imageListAll2
imageListAll2.addAll(imageListAll1)
// 添加"添加图片"按钮(如果未达到最大数量)
if (imageListAll2.size < maxSelectNum) {
imageListAll2.add(ImageItems(2, ImageItem()))
}
adapter.setNewData(imageListAll2)
}
}
}
// 添加安全的URL解码方法
private fun safeUrlDecode(encodedString: String): String {
if (encodedString.isEmpty()) return encodedString
return try {
// 检查是否包含有效的百分号编码
if (encodedString.contains("%") && encodedString.length > 2) {
java.net.URLDecoder.decode(encodedString, "UTF-8")
} else {
encodedString
}
} catch (e: IllegalArgumentException) {
e.printStackTrace()
encodedString
} catch (e: java.io.UnsupportedEncodingException) {
encodedString
}
}
override fun getLayoutId(): Int = R.layout.activity_modify_data
override fun initView() {
@@ -145,7 +205,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
override fun initData() {
adapter = FBPicListAdapter()
val manager = FullyGridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false)
sor_release_rv.layoutManager = manager
@@ -154,6 +213,7 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
adapter.setNewData(imageListAll2)
viewModel.loadUserInfo()
}
override fun initEvent() {
@@ -200,7 +260,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
"爱好不能为空".showToast()
return@setOnClickListener
}
// if (tempList.size == 0) {
if (selImageList.size == 0) {
viewModel.editUserInfo(
imgString,
@@ -213,9 +272,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
} else {
uploadFile(selImageList[0].path)
}
// }else{
// uploadFile(tempList[0].path)
// }
}
head_image.setOnClickListener {
// showImgPop()
@@ -262,12 +318,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
}
adapter.setOnItemClickListener { adapter2, view, position ->
// var mPermissionsChecker = PermissionsChecker(this@ModifyDataActivity)
// if (mPermissionsChecker!!.lacksPermissions(*permissionListTmp)) {
// ll_quanxian.visibility = View.VISIBLE
// } else {
// ll_quanxian.visibility = View.GONE
// }
if (adapter.data[position].type == 2) {
@@ -282,43 +332,10 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
.isOriginalSkipCompress(true)
.forResult(REQUEST_CODE_SELEC2) //结果回调onActivityResult code
// var numss = 9 - (adapter.data.size - 1)
// if (numss > 3) numss = 3
// val rxPermissions = RxPermissions(this)
// val finalNumss = numss
// rxPermissions
// .request(
// Manifest.permission.CAMERA,
// Manifest.permission.WRITE_EXTERNAL_STORAGE,
// Manifest.permission.READ_MEDIA_IMAGES
// )
// .subscribe { granted: Boolean ->
// if (granted) { // Always true pre-M
// // 跳转到相册
// ll_quanxian.visibility = View.GONE
// ImagePicker.getInstance().selectLimit = finalNumss
// ImagePicker.getInstance().isMultiMode = true
// ImagePicker.getInstance().isCrop = false
// val intent = Intent(this, ImageGridActivity::class.java)
// //显示选中的图片
// startActivityForResult(intent, REQUEST_CODE_SELEC2)
// } else {
// ll_quanxian.visibility = View.GONE
// AlertDialog.Builder(this@ModifyDataActivity)
// .setMessage("需要存储权限来访问相册")
// .setPositiveButton("去设置") { dialog, which ->
// val intent: Intent =
// Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
// val uri = Uri.fromParts("package", packageName, null)
// intent.setData(uri)
// startActivity(intent)
// }
// .setNegativeButton("取消", null)
// .show()
// }
// }
}
}
adapter.setOnItemChildClickListener { adapter, view, position ->
when (view.id) {
R.id.iv_del -> {
@@ -332,6 +349,7 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
} else {
adapter.notifyDataSetChanged()
}
} catch (e: Exception) {
e.printStackTrace()
}
@@ -398,16 +416,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
private fun uploadFile(pic: String) {
val parts = ArrayList<MultipartBody.Part>()
val listPos: MutableList<Int> = ArrayList()
// if (tempList.size != 0){
// for (i in tempList.indices) {
// val file = File(tempList[i].path)
// val requestFile =
// RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
// val body = MultipartBody.Part.createFormData("file[]", file.name, requestFile)
// parts.add(body)
// listPos.add(i)
// }
// }
if (!TextUtils.isEmpty(pic)) {
val file2 = File(pic)
val requestFile2 = RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file2)
@@ -542,41 +550,6 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
if (data == null) {
return
}
// val tempList: ArrayList<ImageItem>?
// if (resultCode == RESULT_OK && data != null) {
// //添加图片返回
// if (requestCode == REQUEST_CODE_SELECT) {
//// tempList =
//// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
// tempList = PictureSelector.obtainSelectorList(data) as ArrayList<ImageItem>?
// if (tempList == null) {
// return
// }
// selImageList.clear()
// selImageList.addAll(tempList)
// if (selImageList.size > 0) {
// Glide.with(this).load(selImageList[0].path).into(head_image)
// }
// } else if (requestCode == REQUEST_CODE_SELEC2) {
// tempList =
// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
// if (tempList == null) {
// return
// }
//
// adapter.data.clear()
// for (i in tempList.indices) {
// imageListAll1.add(ImageItems(1, tempList[i]))
// }
//
// imageListAll2 = imageListAll1
// if (imageListAll2.size < maxSelectNum) {
// imageListAll2.add(ImageItems(2, ImageItem()))
// }
//
// adapter.setNewData(imageListAll2)
// }
// }
if (resultCode == RESULT_OK && data != null) {
//添加图片返回
if (requestCode == REQUEST_CODE_SELECT) {
@@ -601,23 +574,24 @@ class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
// 处理 ImagePicker 返回的结果
val localMediaList: ArrayList<LocalMedia> = PictureSelector.obtainSelectorList(data)
// val tempList = data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
// if (tempList == null) {
// return
// }
adapter.data.clear()
// for (i in tempList.indices) {
// imageListAll1.add(ImageItems(1, tempList[i]))
// }
tempList.clear()
val parts = java.util.ArrayList<MultipartBody.Part>()
for (localMedia in localMediaList) {
val imageItem = ImageItem()
imageItem.path = localMedia.realPath
tempList.add(imageItem)
imageListAll1.add(ImageItems(1, imageItem))
}
for (i in tempList.indices) {
val file = File(tempList[i].path)
val requestFile =
RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
val part = MultipartBody.Part.createFormData("file[]", file.name, requestFile)
parts.add(part)
}
viewModel.uploadImages2(parts)
imageListAll2 = imageListAll1
if (imageListAll2.size < maxSelectNum) {

View File

@@ -2,8 +2,10 @@ package com.yuyin.mier.module_my.edituser
import androidx.lifecycle.MutableLiveData
import com.yuyin.lib_base.base.BaseViewModel
import com.yuyin.mier.module_my.model.UserHomePageBean
import com.yuyin.mier.module_my.model.UserInfoBean
import com.yuyin.mier.repository.CommonRepository
import okhttp3.MultipartBody
import java.net.URLEncoder
class ModifyDataViewModel : BaseViewModel() {
@@ -24,4 +26,21 @@ class ModifyDataViewModel : BaseViewModel() {
editFinish.value = data.data
}
}
var userData = MutableLiveData<UserHomePageBean>()
fun loadData(from_id: String) {
launchUI {
val result = repository.player_home_page(from_id)
userData.value = result.data
}
}
var imgListData2: MutableLiveData<List<String>> = MutableLiveData()
fun uploadImages2(imgFiles: List<MultipartBody.Part>) {
launchUI {
var result = baseRepository.uploadImages2(imgFiles)
imgListData2.value = result.data
}
}
}

View File

@@ -16,6 +16,9 @@ import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.LogUtils
import com.flyco.tablayout.listener.CustomTabEntity
import com.flyco.tablayout.listener.OnTabSelectListener
import com.luck.picture.lib.basic.PictureSelector
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.style.PictureSelectorStyle
import com.lzy.imagepicker.ImagePicker
import com.lzy.imagepicker.bean.ImageItem
import com.lzy.imagepicker.ui.ImageGridActivity
@@ -35,9 +38,11 @@ import com.yuyin.mier.R
import com.yuyin.mier.databinding.ActivityUserHomepageBinding
import com.yuyin.mier.module_my.adapter.MyPicListAdapter
import com.yuyin.mier.module_my.adapter.UserGiftWallAdapter
import com.yuyin.mier.module_my.edituser.ModifyDataActivity.TUIEngine
import com.yuyin.mier.module_my.gh.deatile.GongHuiDeatileActivity
import com.yuyin.mier.module_my.model.UserAlbumsList
import com.yuyin.mier.view.pic.FullScreenUtil2
import com.yuyin.module_community.model.ImageItems
import kotlinx.android.synthetic.main.activity_user_homepage.*
import okhttp3.MediaType.Companion.toMediaTypeOrNull
@@ -382,21 +387,32 @@ class UserHomePageActivity :
} else {
var numss = 8 - (myPicListAdapter.data.size - 1)
if (numss > 3) numss = 3
val rxPermissions = RxPermissions(this)
val finalNumss = numss
rxPermissions
.request(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe { granted: Boolean ->
if (granted) { // Always true pre-M
// 跳转到相册
ImagePicker.getInstance().selectLimit = finalNumss
ImagePicker.getInstance().isMultiMode = true
ImagePicker.getInstance().isCrop = false
val intent = Intent(this, ImageGridActivity::class.java)
//显示选中的图片
startActivityForResult(intent, REQUEST_CODE_SELECT)
}
}
// val rxPermissions = RxPermissions(this)
// val finalNumss = numss
// rxPermissions
// .request(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)
// .subscribe { granted: Boolean ->
// if (granted) { // Always true pre-M
// // 跳转到相册
// ImagePicker.getInstance().selectLimit = finalNumss
// ImagePicker.getInstance().isMultiMode = true
// ImagePicker.getInstance().isCrop = false
// val intent = Intent(this, ImageGridActivity::class.java)
// //显示选中的图片
// startActivityForResult(intent, REQUEST_CODE_SELECT)
// }
// }
PictureSelector.create(this)
.openGallery(1)
.setImageEngine(TUIEngine())
.setSelectorUIStyle(PictureSelectorStyle())
.isGif(false)
.setMaxSelectNum(numss)
.isPreviewImage(true)
.isDisplayCamera(true)
.isOriginalSkipCompress(true)
.forResult(REQUEST_CODE_SELECT) //结果回调onActivityResult code
}
}
@@ -538,12 +554,34 @@ class UserHomePageActivity :
if (data == null) {
return
}
if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
//添加图片返回
// if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
// //添加图片返回
// if (requestCode == REQUEST_CODE_SELECT) {
// val tempList =
// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
// ?: return
// val parts = ArrayList<MultipartBody.Part>()
// for (i in tempList.indices) {
// val file = File(tempList[i].path)
// val requestFile =
// RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
// val body = MultipartBody.Part.createFormData("file[]", file.name, requestFile)
// parts.add(body)
// }
// viewModel.uploadImages(parts)
// }
// }
if (resultCode == RESULT_OK && data != null) {
if (requestCode == REQUEST_CODE_SELECT) {
val tempList =
data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
?: return
// 处理 ImagePicker 返回的结果
val localMediaList: ArrayList<LocalMedia> = PictureSelector.obtainSelectorList(data)
var tempList: ArrayList<ImageItem> = ArrayList()
for (localMedia in localMediaList) {
val imageItem = ImageItem()
imageItem.path = localMedia.realPath
tempList.add(imageItem)
}
val parts = ArrayList<MultipartBody.Part>()
for (i in tempList.indices) {
val file = File(tempList[i].path)

View File

@@ -28,7 +28,7 @@ class UserHomePageViewModel : BaseViewModel() {
var cancelFollowData = MutableLiveData<Any>()
var delImgData = MutableLiveData<Any>()
var addImgData = MutableLiveData<Any>()
// var addImgData = MutableLiveData<Any>()
var dynamicList = MutableLiveData<List<DynamicBean>>()
@@ -86,12 +86,12 @@ class UserHomePageViewModel : BaseViewModel() {
}
}
fun add_user_albums(imgs: String) {
launchUI {
val result = myRepository.add_user_albums(imgs)
addImgData.value = result.data
}
}
// fun add_user_albums(imgs: String) {
// launchUI {
// val result = myRepository.add_user_albums(imgs)
// addImgData.value = result.data
// }
// }
var addBlack = MutableLiveData<Any>()
fun add_blacklist(userId: String) {

View File

@@ -118,7 +118,7 @@ class JinBiFragment : BaseDataBindingFragment<JinBiViewModel, FragmentJinbiBindi
)
// 将该app注册到微信
mWxApi.registerApp("wx7b5c4e89e726a72c")
mWxApi.registerApp("wx3304802a02ab8d62")
// 判断是否安装客户端
if (!mWxApi.isWXAppInstalled) {
"请您先安装微信客户端!".showToast()
@@ -126,7 +126,7 @@ class JinBiFragment : BaseDataBindingFragment<JinBiViewModel, FragmentJinbiBindi
}
val req = PayReq()
// 微信开放平台审核通过的应用APPID
req.appId = "wx7b5c4e89e726a72c"
req.appId = "wx3304802a02ab8d62"
// 微信支付分配的商户号
req.partnerId = it.partnerid
// 预支付订单号app服务器调用“统一下单”接口获取

View File

@@ -63,7 +63,7 @@ class ChangeInviterActivity :
)
// 将该app注册到微信
mWxApi.registerApp("wx7b5c4e89e726a72c")
mWxApi.registerApp("wx3304802a02ab8d62")
// 判断是否安装客户端
if (!mWxApi.isWXAppInstalled) {
"请您先安装微信客户端!".showToast()
@@ -71,7 +71,7 @@ class ChangeInviterActivity :
}
val req = PayReq()
// 微信开放平台审核通过的应用APPID
req.appId = "wx7b5c4e89e726a72c"
req.appId = "wx3304802a02ab8d62"
// 微信支付分配的商户号
req.partnerId = it.partnerid
// 预支付订单号app服务器调用“统一下单”接口获取

View File

@@ -350,7 +350,7 @@ class CommonRepository : BaseRepository() {
CommonServer.api.remove_blacklist(user_id)
}
suspend fun add_user_albums(img: String): ResponseData<Any> = request {
override suspend fun add_user_albums(img: String): ResponseData<Any> = request {
CommonServer.api.add_user_albums(img)
}

View File

@@ -20,7 +20,7 @@ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, "wx7b5c4e89e726a72c", true);
api = WXAPIFactory.createWXAPI(this, "wx3304802a02ab8d62", true);
api.handleIntent(getIntent(), this);
}