塔罗打开微信小程序体验优化

This commit is contained in:
huangjian
2023-02-08 19:06:50 +08:00
parent c57e64d07b
commit 0265d87dd8
2 changed files with 48 additions and 21 deletions

View File

@@ -539,27 +539,15 @@ public class JSInterface {
}
@JavascriptInterface
public void openTarotPay(String json) {
JSONObject jsonObject = JSONObject.parseObject(json);
//微信小程序支付的微信appid和微信登录&支付的appid是不同的...
IWXAPI api = WXAPIFactory.createWXAPI(mActivity, jsonObject.getString("wxminiAppid"));
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = jsonObject.getString("wxminiId"); // 填小程序原始id
//拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.path = "pages/index/index?pub_ticket=" + AuthModel.get().getTicket() +
"&tarotChargeProdId=" + jsonObject.getString("tarotChargeProdId") +
"&luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId") +
"&cardList=" + jsonObject.getString("cardList") +
"&payType=" + jsonObject.getString("payType") +
"&pub_uid=" + AuthModel.get().getCurrentUid() +
"&uid=" + AuthModel.get().getCurrentUid() +
"&ticket=" + AuthModel.get().getTicket() +
"&roomUid=" + AvRoomDataManager.get().getRoomUid() +
"&appVersion=" + BuildConfig.VERSION_NAME +
"&app=" + XChatConstants.APP_MARK;
req.miniprogramType = BuildConfig.DEBUG ? WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST : WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);
TarotPayWebViewActivity.start(mActivity, UriProvider.JAVA_WEB_URL + "yinyou/modules/tarot/payment_result.html?luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId"));
public void openTarotPay(String tarotJson) {
mActivity.runOnUiThread(() -> {
JSONObject jsonObject = JSONObject.parseObject(tarotJson);
TarotPayWebViewActivity.start(
mActivity,
UriProvider.JAVA_WEB_URL + "yinyou/modules/tarot/payment_result.html?luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId"),
tarotJson
);
});
}
/**

View File

@@ -3,12 +3,21 @@ package com.mango.moshen.ui.webview;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import com.alibaba.fastjson.JSONObject;
import com.mango.core.auth.AuthModel;
import com.mango.core.manager.AvRoomDataManager;
import com.mango.moshen.BuildConfig;
import com.mango.xchat_android_constants.XChatConstants;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.mango.moshen.R;
import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
/**
@@ -22,6 +31,13 @@ public class TarotPayWebViewActivity extends CommonWebViewActivity {
context.startActivity(intent);
}
public static void start(Context context, String url, String tarotJson) {
Intent intent = new Intent(context, TarotPayWebViewActivity.class);
intent.putExtra("url", url);
intent.putExtra("tarotJson", tarotJson);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -29,6 +45,29 @@ public class TarotPayWebViewActivity extends CommonWebViewActivity {
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.dip2px(150));
getWindow().setGravity(Gravity.CENTER);
layoutTitleBar.setVisibility(View.GONE);
String json = getIntent().getStringExtra("tarotJson");
if (!TextUtils.isEmpty(json)) {
JSONObject jsonObject = JSONObject.parseObject(json);
//微信小程序支付的微信appid和微信登录&支付的appid是不同的...
IWXAPI api = WXAPIFactory.createWXAPI(this, jsonObject.getString("wxminiAppid"));
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = jsonObject.getString("wxminiId"); // 填小程序原始id
//拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.path = "pages/index/index?pub_ticket=" + AuthModel.get().getTicket() +
"&tarotChargeProdId=" + jsonObject.getString("tarotChargeProdId") +
"&luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId") +
"&cardList=" + jsonObject.getString("cardList") +
"&payType=" + jsonObject.getString("payType") +
"&pub_uid=" + AuthModel.get().getCurrentUid() +
"&uid=" + AuthModel.get().getCurrentUid() +
"&ticket=" + AuthModel.get().getTicket() +
"&roomUid=" + AvRoomDataManager.get().getRoomUid() +
"&appVersion=" + BuildConfig.VERSION_NAME +
"&app=" + XChatConstants.APP_MARK;
req.miniprogramType = BuildConfig.DEBUG ? WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST : WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);
}
}
@Override