From 8e346c4c82932199fd098be0bfba2b9d8635fab7 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Fri, 27 Jun 2025 15:21:14 +0800 Subject: [PATCH] =?utf8?q?=E6=A0=B9=E6=8D=AE=E6=94=AF=E4=BB=98=E5=AE=9D?= =?utf8?q?=E4=B9=98=E8=BD=A6=E7=A0=81=E9=80=81=E6=B5=8B=E6=8F=90=E5=87=BA?= =?utf8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/alipay/service/alipay_feature.h | 3 ++ .../nativeui/alipay/include/AlipayModel.h | 4 +++ .../nativeui/alipay/include/AlipayPresenter.h | 7 +++-- .../nativeui/alipay/src/AlipayExitBind.cpp | 2 +- .../nativeui/alipay/src/AlipayMainView.cpp | 3 +- .../nativeui/alipay/src/AlipayModel.cpp | 29 +++++++++++++++++-- .../nativeui/alipay/src/AlipayPresenter.cpp | 12 ++++++++ .../src/AlipayTrans/AlipayTransTips.cpp | 26 +++++++++++++++-- .../alipay/src/AlipayUnbindFinish.cpp | 2 +- 9 files changed, 78 insertions(+), 10 deletions(-) diff --git a/code/sdk/application/wearable/alipay/service/alipay_feature.h b/code/sdk/application/wearable/alipay/service/alipay_feature.h index 63bfc224c..b05b86647 100755 --- a/code/sdk/application/wearable/alipay/service/alipay_feature.h +++ b/code/sdk/application/wearable/alipay/service/alipay_feature.h @@ -99,6 +99,9 @@ typedef struct { typedef enum { ALIPAY_TRANS_SUCCESS = 0, + ALIPAY_TRANS_CODE_CREATE_FAIL = 7, //生码失败-更新后再尝试 + ALIPAY_TRANS_CODE_List_GET_FAIL = 26, // 获取特殊卡列表失败,设备已经在手机端解绑,设备端也需要调用解绑接口 + ALIPAY_TRANS_CODE_SPECIAL_GET_FAIL = 256, // 获取乘车码列表失败,,设备已经在手机端解绑,设备端也需要调用解绑接口 ALIPAY_TRANS_CARD_LIST_START = ALIPAY_TRANS_CARD_SHIFT << 8, ALIPAY_TRANS_CARD_LIST_UNBIND = ALIPAY_TRANS_CARD_LIST_START, // 设备已经在服务端解绑,设备端也需要调用解绑接口 ALIPAY_TRANS_CARD_LIST_NET_ERROR, // 网络错误 diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h index b6cc00ca7..024ad93b8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h @@ -61,6 +61,7 @@ public: bool ble_disconnect_AlipayStartBind(void); void AlipayStopdisconnecTimer(void); bool AlipayStartBind(void); + bool AlipayFinishBind(void); bool AlipayStartSwitchTimer(uint16_t time); void AlipayStopBindTimer(void); void AlipayStopSwitchTimer(); @@ -94,6 +95,8 @@ public: void AlipayScreenControl(bool turnOnFlag); void delete_all_files_in_folder(const char *folder_path); + int AlipayGetSpecificErrorCode(void); + void AlipaySetSpecificErrorCode(int errorCode); private: osTimerId_t bindTimerId = nullptr; osTimerId_t ble_disconnect_bindTimerId = nullptr; @@ -111,6 +114,7 @@ private: uint8_t* transCode_ = nullptr; uint32_t transCodeLen_; char cardTitle_[ALIPAY_TRANS_CARD_MEMBER_LEN]; + int specificr_error_code{0}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h index 69bef988e..f9d22c789 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayPresenter.h @@ -5,8 +5,8 @@ * Create: */ -#ifndef ALIPAY_PRESENTER_H -#define ALIPAY_PRESENTER_H +#ifndef __ALIPAY_PRESENTER_H__ +#define __ALIPAY_PRESENTER_H__ #include "Presenter.h" #include "BaseView.h" @@ -47,6 +47,7 @@ constexpr char *ALIPAY_TRANS_GET_LIST_RETRY = (char *)"alipaytransgetlistre"; constexpr char *ALIPAY_TRANS_GET_LIST_DETAIL = (char *)"alipaytransgetlistdet"; constexpr char *ALIPAY_TRANS_CERTAIN_BACK_LIST = (char *)"alipaytransbacklist"; constexpr char *ALIPAY_TRANS_CERTAIN_TO_TRANS = (char *)"alipaytranstotranslist"; +constexpr char *ALIPAY_TRANS_CERTAIN_TO_BIND = (char *)"alipaytranstoalipaybind"; constexpr char *ALIPAY_TRANS_RETRY_TRANS_CODE = (char *)"alipaytransretrycode"; constexpr char *ALIPAY_TRANS_CODE_RES_DETAIL = (char *)"alipaytranscoderesde"; constexpr char *ALIPAY_TRANS_LIST_RES_DETAIL = (char *)"alipaytranslistresde"; @@ -89,6 +90,7 @@ typedef enum { ALIPAY_TRANS_TIPS_SECURE, //存在安全风险,12小时内不可用,请切换到手机侧使用 ALIPAY_TRANS_TIPS_LIST_UNKNOW, //未知错误_具体错误码,请联系设备厂商解决 ALIPAY_TRANS_TIPS_NOT_SUPPORT, //暂不支持,请切换到手机侧使用 + LIPAY_TRANS_TIPS_UNBIND, //该设备已经在手机端解绑,请用手机支付宝扫码绑定 } alipayTransTipsId; typedef enum { @@ -135,6 +137,7 @@ public: void ClickBackList(UIView &view); void ClickUpdateList(UIView &view); void ClickTransToTransList(UIView &view); + void ClickTransToAlipayBind(UIView &view); void ClickRetryTransCode(UIView &view); void ClickTransJumpHelp(UIView &view); void ClickTranstBackList(UIView &view); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp index c24d18441..84241255a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayExitBind.cpp @@ -29,7 +29,7 @@ static const int16 EXIT_LABEL_FONT_FIRST = 30; static const int16 EXIT_LABEL_FONT_SEC = 30; static const char *EXIT_LABEL_TEXT_FIRST = (char *)"未完成绑定"; -static const char *EXIT_LABEL_TEXT_SECOND = (char *)"当前未完成绑定,退出在进来需要重新扫码绑定"; +static const char *EXIT_LABEL_TEXT_SECOND = (char *)"当前未完成绑定,退出再进来需要重新扫码绑定"; static const int16 EXIT_BUTTON_EXIT_X = 58; static const int16 EXIT_BUTTON_EXIT_Y = 320; diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp index 6a1cef5c7..948966459 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayMainView.cpp @@ -814,12 +814,13 @@ void AlipayMainView::DestroyTempView(int16 hideView) } } if (hideView == ALIPAY_TRANS_TIPS_VIEW) { - + #if 0 if(AlipayModel::GetInstance()->AlipayGetSwitchIndex() == ALIPAY_TRANS_TIPS_LIST_UNKNOW) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DestroyTempView ALIPAY_TRANS_TIPS_UNKNOW"); AlipayModel::GetInstance()->delete_all_files_in_folder("/user/alipay/"); } + #endif delete alipayTransTips; alipayTransTips = nullptr; } else if (hideView == ALIPAY_TRANS_RES_VIEW) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp index 5144ac300..4bf148d1c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp @@ -7,7 +7,8 @@ #include "UiConfig.h" #include "alipay_feature.h" -#include "AlipayModel.h" +// #include "AlipayModel.h" +#include "alipay/include/AlipayModel.h" #include "AlipayMainView.h" #include "graphic_service.h" @@ -198,6 +199,13 @@ bool AlipayModel::AlipayStartBind(void) return true; } +bool AlipayModel::AlipayFinishBind(void) +{ + AlipayStopBindTimer(); + alipayApi->bind_finish(); + return true; +} + void AlipaySwitchTimerCallBackProc(void *argument) { UNUSED(argument); @@ -503,7 +511,7 @@ void AlipayModel::AlipayTransStopGetListsTimer(void) void AlipayMsgTransListCallBackProcFunc(uint32_t actionRes) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransListCallBackProcFunc in.%d",actionRes); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransListCallBackProcFunc in.%d",actionRes); if (AlipayMainView::GetInstance() == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing."); return; @@ -523,7 +531,10 @@ void AlipayMsgTransListCallBackProcFunc(uint32_t actionRes) } else { if (actionRes == ALIPAY_TRANS_CARD_LIST_OWN_TOO_MANY_CARD) { AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_TO_MUCH); + } else if(actionRes == ALIPAY_TRANS_CODE_SPECIAL_GET_FAIL) { + AlipayModel::GetInstance()->AlipaySetSwitchIndex(LIPAY_TRANS_TIPS_UNBIND); } else { + AlipayModel::GetInstance()->AlipaySetSpecificErrorCode(actionRes); AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_UNKNOW); } AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_TIPS_VIEW); @@ -546,7 +557,7 @@ void AlipayMsgTransSpeCardCallBackProcFunc(uint32_t actionRes) } else { AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_VIEW); } - } else if (actionRes == ALIPAY_TRANS_CODE_NET_ERROR) { + } else if (actionRes == ALIPAY_TRANS_CODE_NET_ERROR || actionRes == ALIPAY_TRANS_CODE_CREATE_FAIL) { AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE); AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_RES_VIEW); } else { @@ -554,7 +565,10 @@ void AlipayMsgTransSpeCardCallBackProcFunc(uint32_t actionRes) AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE); } else if (actionRes == ALIPAY_TRANS_CODE_NOT_SUPPORT) { AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT); + } else if (actionRes == ALIPAY_TRANS_CODE_List_GET_FAIL) { + AlipayModel::GetInstance()->AlipaySetSwitchIndex(LIPAY_TRANS_TIPS_UNBIND); } else { + AlipayModel::GetInstance()->AlipaySetSpecificErrorCode(actionRes); AlipayModel::GetInstance()->AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW); } AlipayMainView::GetInstance()->ChangeView(ALIPAY_TRANS_ANI_VIEW, ALIPAY_TRANS_TIPS_VIEW); @@ -692,6 +706,15 @@ char* AlipayModel::AlipayGetCardTitle(void) return cardTitle_; } +int AlipayModel::AlipayGetSpecificErrorCode(void) +{ + return specificr_error_code; +} +void AlipayModel::AlipaySetSpecificErrorCode(int errorCode) +{ + specificr_error_code = errorCode; +} + /// @brief 支付宝屏幕控制 /// @param turnOnFlag void AlipayModel::AlipayScreenControl(bool turnOnFlag) diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp index 396c190c4..dc46fac93 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayPresenter.cpp @@ -153,6 +153,7 @@ void AlipayPresenter::ClickExitAlipay(UIView &view) WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickExitAlipay start"); // uint16 preSlice = NativeAbility::GetInstance().GetPreSliceId(); // NativeAbility::GetInstance().ChangeSlice(preSlice); + AlipayModel::GetInstance()->AlipayFinishBind(); NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS); return; } @@ -242,6 +243,14 @@ void AlipayPresenter::ClickTransToTransList(UIView &view) view_->ChangeView(currentView, ALIPAY_TRANS_LIST_VIEW); return; } +void AlipayPresenter::ClickTransToAlipayBind(UIView &view) +{ + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransJumpHelp start"); + AlipayModel::GetInstance()->AlipayUnbind();//调用解绑接口 + int16_t currentView = alipayMode_->GetAlipayInterLis(); + view_->ChangeView(currentView, ALIPAY_BIND_VIEW); + return; +} //点击刷新按钮 void AlipayPresenter::ClickTransToTransCode(UIView &view) @@ -273,6 +282,7 @@ void AlipayPresenter::ClickTransToTransCode(UIView &view) } else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) { AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT); } else { + AlipayModel::GetInstance()->AlipaySetSpecificErrorCode(ret); AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW); } view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW); @@ -298,6 +308,7 @@ void AlipayPresenter::ClickRetryTransCode(UIView &view) } else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) { AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT); //不支持的错误:设置不支持提示 } else { + AlipayModel::GetInstance()->AlipaySetSpecificErrorCode(ret); AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW); //未知错误:设置未知错误提示 } view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW); //切换到相应的错误提示视图 @@ -462,6 +473,7 @@ static const AlipayPresentMapper1 PresentMapper[] = { {ALIPAY_TRANS_GET_LIST_DETAIL, &AlipayPresenter::ClickTransJumpHelp}, {ALIPAY_TRANS_CERTAIN_BACK_LIST, &AlipayPresenter::ClickTranstBackList}, {ALIPAY_TRANS_CERTAIN_TO_TRANS, &AlipayPresenter::ClickTransToTransList}, + {ALIPAY_TRANS_CERTAIN_TO_BIND, &AlipayPresenter::ClickTransToAlipayBind}, {ALIPAY_TRANS_LIST_BUTTON, &AlipayPresenter::ClickTransToTransCode}, {ALIPAY_TRANS_RETRY_TRANS_CODE, &AlipayPresenter::ClickRetryTransCode}, {ALIPAY_TRANS_LIST_RES_DETAIL, &AlipayPresenter::ClickTransJumpGetList}, diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp index 4aec64daf..c456d2aee 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayTrans/AlipayTransTips.cpp @@ -27,6 +27,7 @@ static const char *TIPS_LABEL_TEXT_2 = (char *)"开通的乘车码数量太多 static const char *TIPS_LABEL_TEXT_3 = (char *)"存在安全风险,12小时内不可用,请切换到手机侧使用"; static const char *TIPS_LABEL_TEXT_4 = (char *)"未知错误_具体错误码,请联系设备厂商解决"; static const char *TIPS_LABEL_TEXT_5 = (char *)"暂不支持,请切换到手机侧使用"; +static const char *TIPS_LABEL_TEXT_6 = (char *)"该设备已经在手机端解绑,请用手机支付宝扫码绑定"; static const int16 RES_IMAGE_X = (HORIZONTAL_RESOLUTION - 112) / 2; static const int16 RES_IMAGE_Y = 55; @@ -34,6 +35,7 @@ static const int16 RES_IMAGE_WIDTH = 112; static const int16 RES_IMAGE_HEIGHT = 112; static const char *RECOGNIZE_BUTTON = (char *)"确定"; +static const char *RECOGNIZE_BUTTON_BIND = (char *)"开始绑定"; static const int16 RECOGNIZE_BUTTON_FONT = 30; static const int16 RECOGNIZE_BUTTON_X = (HORIZONTAL_RESOLUTION - 280) / 2; static const int16 RECOGNIZE_BUTTON_Y = 315; @@ -50,6 +52,7 @@ static const AlipayTransTipsInfo g_AlipayTransTipsMapper[] = { {TIPS_LABEL_TEXT_3, ALIPAY_TRANS_CERTAIN_TO_TRANS}, {TIPS_LABEL_TEXT_4, ALIPAY_TRANS_CERTAIN_TO_TRANS}, {TIPS_LABEL_TEXT_5, ALIPAY_TRANS_CERTAIN_TO_TRANS}, + {TIPS_LABEL_TEXT_6, ALIPAY_TRANS_CERTAIN_TO_BIND}, }; AlipayTransTips::AlipayTransTips(AlipayPresenter *presenter) @@ -137,7 +140,14 @@ bool AlipayTransTips::AlipayInitButton(uint32_t index) } alipayButton->SetPosition(RECOGNIZE_BUTTON_X, RECOGNIZE_BUTTON_Y, RECOGNIZE_BUTTON_WIDTH, RECOGNIZE_BUTTON_HEIGHT); - alipayButton->SetText(RECOGNIZE_BUTTON); + if(index == LIPAY_TRANS_TIPS_UNBIND) + { + alipayButton->SetText(RECOGNIZE_BUTTON_BIND); + } + else + { + alipayButton->SetText(RECOGNIZE_BUTTON); + } alipayButton->SetAlign(TEXT_ALIGNMENT_CENTER); alipayButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, RECOGNIZE_BUTTON_FONT); alipayButton->SetViewId(g_AlipayTransTipsMapper[index].button); @@ -156,9 +166,21 @@ bool AlipayTransTips::InitTipsView(uint32_t index) SetOnDragListener(presenter_); SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); - if (!AlipayInitLabel(g_AlipayTransTipsMapper[index].str)) { + if(index == ALIPAY_TRANS_TIPS_UNKNOW || index == ALIPAY_TRANS_TIPS_LIST_UNKNOW) + { + std::string error_code_str; + error_code_str = "未知错误_错误码:"+ std::to_string(AlipayModel::GetInstance()->AlipayGetSpecificErrorCode())+",请联系设备厂商解决"; + if (!AlipayInitLabel(error_code_str.c_str())) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitLabel() false"); return false; + } + } + else + { + if (!AlipayInitLabel(g_AlipayTransTipsMapper[index].str)) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitLabel() false"); + return false; + } } if (!AlipayInitImage(PNG_ALIPAY_BIND_FAILURE)) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayTransTips::InitView AlipayInitImage() false"); diff --git a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp index 9a3c629c4..df9f2a5eb 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayUnbindFinish.cpp @@ -15,7 +15,7 @@ static AlipayUnbindFinish *g_alipayUnbindFinish = nullptr; static const char *UNBIND_FINISH_TITLE = (char *)"解绑成功"; static const char *UNBIND_FINISH_TEXT = - (char *)"设备侧已解绑,请到手机支付宝搜索进入“智能设备”小程序查看,若手机侧未解绑,则需要操作解绑"; + (char *)"手表侧已解绑,请到手机支付宝搜索进入“智能设备”小程序查看,若手机侧未解绑,则需要操作解绑"; static const char *UNBIND_FINISH_BUTTON = (char *)"确认"; -- 2.17.1