static const uint8_t alipay_adv_type[ALIPAY_BLE_ADV_TYPE_LENTH] = {2, 1, 2};\r
static const uint8_t alipay_adv_uuid[ALIPAY_BLE_ADV_UUID_LENTH] = {0x3, 0x3, 0x02, 0x38};\r
\r
+#define ALIPAY_PRINT_LOG 0\r
+\r
static bool svr_alipay_get_adv_start_state(void)\r
{\r
return g_alipay_adv_start_state;\r
}\r
}\r
\r
+//在服务添加成功后添加特征\r
static void svr_alipay_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
errcode_t status)\r
{\r
+ // 检查UUID是否匹配支付宝服务ID\r
if ((uuid->uuid_len == sizeof(uint16_t)) && (*((uint16_t *)uuid->uuid) == ALIPAYY_SERVICE_ID)) \r
{\r
- \r
- printf( "BtGattsServiceAddCallback 0x%x 0x%x 0x%x 0x%x",\r
+ // 打印服务添加回调的调试信息\r
+ ALIPAY_PRINT_DEBUG(0, "BtGattsServiceAddCallback 0x%x 0x%x 0x%x 0x%x",\r
status, server_id, srv_handle, *((uint16_t *)uuid->uuid));\r
- uint16_t id = ALIPAYY_CHARACTERISTIC_ID;\r
- gatts_add_chara_info_t character;\r
+ uint16_t id = ALIPAYY_CHARACTERISTIC_ID;// 支付宝特征值ID\r
+ gatts_add_chara_info_t character;// 特征值信息结构体\r
uint16_t value = 0;\r
\r
+ // 初始化特征值信息结构体\r
memset_s(&character, sizeof(gatts_add_chara_info_t), 0, sizeof(gatts_add_chara_info_t));\r
- character.chara_uuid.uuid_len = sizeof(id);\r
+ character.chara_uuid.uuid_len = sizeof(id); // 设置特征值UUID长度\r
memcpy_s(character.chara_uuid.uuid, sizeof(character.chara_uuid.uuid), (char *)&id, sizeof(id));\r
character.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
character.properties =\r
GATT_CHARACTER_PROPERTY_BIT_READ | GATT_CHARACTER_PROPERTY_BIT_WRITE | GATT_CHARACTER_PROPERTY_BIT_NOTIFY;\r
- character.value_len = ALIPAY_CHARACTERISTIC_MAX_LENGTH;\r
- character.value = g_alipay_character_buf;\r
+ character.value_len = ALIPAY_CHARACTERISTIC_MAX_LENGTH; // 设置特征值最大长度\r
+ character.value = g_alipay_character_buf; // 设置特征值缓冲区\r
\r
+ // 添加特征值到服务\r
int ret = gatts_add_characteristic(server_id, srv_handle, &character);\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "gatts_add_characteristic fail, ret:%u.\r\n", ret);\r
}\r
- g_alipay_svr_handle = srv_handle;\r
+ g_alipay_svr_handle = srv_handle;// 保存服务句柄\r
}\r
}\r
\r
+//在特征添加成功后添加描述符。\r
static void svr_alipay_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t *uuid, uint16_t srv_handle,\r
gatts_add_character_result_t *result, errcode_t status)\r
{\r
0x00\r
};\r
bt_uuid_t ccc_uuid = { 0 };\r
- bts_data_to_uuid_len2(0x2902, &ccc_uuid);\r
- gatts_add_desc_info_t descriptor;\r
- descriptor.desc_uuid = ccc_uuid;\r
- descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
- descriptor.value_len = (uint16_t)sizeof(bas_ccc_val);\r
+ bts_data_to_uuid_len2(0x2902, &ccc_uuid); // 将0x2902转换为UUID格式\r
+ gatts_add_desc_info_t descriptor; \r
+ descriptor.desc_uuid = ccc_uuid; //设置描述符UUID\r
+ descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE; // 设置描述符权限\r
+ descriptor.value_len = (uint16_t)sizeof(bas_ccc_val); // 设置描述符值长度\r
descriptor.value = bas_ccc_val;\r
int ret = 0;\r
ret = gatts_add_descriptor(server_id, srv_handle, &descriptor);\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "gatts_add_descriptor fail, ret:%u.\r\n", ret);\r
}\r
+ // 获取本地蓝牙地址\r
bd_addr_t addr_info;\r
gatts_add_desc_info_t descriptor_ap;\r
gap_ble_get_local_addr(&addr_info);\r
- bts_data_to_uuid_len2(0x4b02, &ccc_uuid);\r
- descriptor_ap.desc_uuid = ccc_uuid;\r
- descriptor_ap.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
- descriptor_ap.value_len = BD_ADDR_LEN;\r
+ bts_data_to_uuid_len2(0x4b02, &ccc_uuid); // 将0x4b02转换为UUID格式\r
+ descriptor_ap.desc_uuid = ccc_uuid; // 设置描述符UUID\r
+ descriptor_ap.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE; // 设置描述符权限\r
+ descriptor_ap.value_len = BD_ADDR_LEN; // 设置描述符值长度\r
uint8_t ble_data_mac_switch[BD_ADDR_LEN] = {0};\r
int k = BD_ADDR_LEN;\r
for (int i = 0; i < BD_ADDR_LEN; i++) {\r
- ble_data_mac_switch[--k] = addr_info.addr[i];\r
+ ble_data_mac_switch[--k] = addr_info.addr[i]; // 反转蓝牙地址字节顺序\r
}\r
- descriptor_ap.value = ble_data_mac_switch;\r
+\r
+ // 添加第二个描述符到特征值\r
+ descriptor_ap.value = ble_data_mac_switch; // 设置描述符值为蓝牙地址\r
ret = gatts_add_descriptor(server_id, srv_handle, &descriptor_ap);\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "gatts_add_descriptor second fail, ret:%u.\r\n", ret);\r
}\r
+ // 启动服务\r
ret = gatts_start_service(server_id, srv_handle);\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "gatts_start_service fail, ret:%u.\r\n", ret);\r
}\r
+ // 保存特征值句柄\r
g_alipay_characteristic_handle = result->value_handle;\r
}\r
}\r
}\r
return false;\r
}\r
+// 接收手机数据\r
static void svr_alipay_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, gatts_req_write_cb_t *write_cb_para,\r
errcode_t status)\r
{\r
+ // 检查写入的句柄是否匹配支付宝特征值或描述符的句柄\r
if ((g_alipay_characteristic_handle == write_cb_para->handle) ||\r
(g_alipay_descriptor_handle[0] == write_cb_para->handle) ||\r
(g_alipay_descriptor_handle[1] == write_cb_para->handle)) {\r
ALIPAY_PRINT_DEBUG(0, "write callback,handle:%u str:%s len:%u",\r
write_cb_para->handle, write_cb_para->value, write_cb_para->length);\r
- uint8_t *msg_data = write_cb_para->value;\r
+ uint8_t *msg_data = write_cb_para->value; \r
+ // 将数据写入支付宝消息队列\r
errcode_t ret = svr_alipay_msg_write(ALIPAY_MSG_BT, msg_data, write_cb_para->length, false);\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "svr_alipay_msg_write fail, ret:%u.\r\n", ret);\r
return;\r
}\r
\r
+//发送数据到手机\r
void svr_alipay_bt_gatts_noyify(uint8_t *data, uint16_t data_len)\r
{\r
gatts_ntf_ind_t data_info;\r
data_info.value = data;\r
data_info.value_len = data_len;\r
\r
+ #if ALIPAY_PRINT_LOG\r
+ // 打印 data 数据\r
+ printf("发送数据到手机: ");\r
+ for (uint16_t i = 0; i < data_len; i++) {\r
+ printf("%02x ", data[i]);\r
+ }\r
+ printf("数据长度:%d",data_len);\r
+ printf("\n");\r
+ #endif\r
+\r
errcode_t ret = gatts_notify_indicate(g_alipay_server_id, g_alipay_conn_id, &data_info);\r
ALIPAY_PRINT_DEBUG(0, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.", ret, g_alipay_server_id,\r
g_alipay_conn_id, g_alipay_characteristic_handle);\r
return;\r
}\r
\r
+//2.Alipay蓝牙模块初始化\r
void svr_alipay_bluetooth_init(uint8_t server_id)\r
{\r
// #ifndef SUPPORT_AT_OHOSFWK\r
typedef enum {
ALIPAY_TRANS_SUCCESS = 0,
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, // 网络错误
- ALIPAY_TRANS_CARD_LIST_OWN_TOO_MANY_CARD, // 用户开通了太多乘车码
- ALIPAY_TRANS_CARD_LIST_FUNC_NOT_SUPPPORT, // 不支持该功能
- ALIPAY_TRANS_CARD_LIST_DEV_ERROR, // 不该出现的错误
- ALIPAY_TRANS_CARD_LIST_BUF_TOO_SHORT, // 入参的缓存太小
+ ALIPAY_TRANS_CARD_LIST_UNBIND = ALIPAY_TRANS_CARD_LIST_START, // 设备已经在服务端解绑,设备端也需要调用解绑接口
+ ALIPAY_TRANS_CARD_LIST_NET_ERROR, // 网络错误
+ ALIPAY_TRANS_CARD_LIST_OWN_TOO_MANY_CARD, // 用户开通了太多乘车码
+ ALIPAY_TRANS_CARD_LIST_FUNC_NOT_SUPPPORT, // 不支持该功能
+ ALIPAY_TRANS_CARD_LIST_DEV_ERROR, // 不该出现的错误
+ ALIPAY_TRANS_CARD_LIST_BUF_TOO_SHORT, // 入参的缓存太小
ALIPAY_TRANS_CODE_START = ALIPAY_TRANS_CODE_SHIFT << 8,
- ALIPAY_TRANS_CODE_UNBIND = ALIPAY_TRANS_CODE_START, // 设备已经在服务端解绑,设备端也需要调用解绑接口
- ALIPAY_TRANS_CODE_NET_ERROR, // 网络错误
- ALIPAY_TRANS_CODE_DATA_LIMIT, // 因安全原因限制生码
- ALIPAY_TRANS_CODE_NOT_SUPPORT, // 该乘车码不支持
- ALIPAY_TRANS_CODE_SERVER_ERROR, // 服务端报错
- ALIPAY_TRANS_CODE_DEV_ERROR, // 不该出现的错误
+ ALIPAY_TRANS_CODE_UNBIND = ALIPAY_TRANS_CODE_START, // 设备已经在服务端解绑,设备端也需要调用解绑接口
+ ALIPAY_TRANS_CODE_NET_ERROR, // 网络错误
+ ALIPAY_TRANS_CODE_DATA_LIMIT, // 因安全原因限制生码
+ ALIPAY_TRANS_CODE_NOT_SUPPORT, // 该乘车码不支持
+ ALIPAY_TRANS_CODE_SERVER_ERROR, // 服务端报错
+ ALIPAY_TRANS_CODE_DEV_ERROR, // 不该出现的错误
} mc_alipay_trans_errcode_t;
typedef enum {
ALIPAY_MSG_BT = 0,
- ALIPAY_MSG_UPDATA_TRANS_LIST,
- ALIPAY_MSG_UPDATA_SPECIAL_CARD,
- ALIPAY_MSG_UPDATA_ALL_CARDS,
+ ALIPAY_MSG_UPDATA_TRANS_LIST, // 设备端更新乘车码列表
+ ALIPAY_MSG_UPDATA_SPECIAL_CARD, // 设备端更新特殊卡列表
+ ALIPAY_MSG_UPDATA_ALL_CARDS, // 设备端更新所有卡列表
} mc_alipay_msg_type_t;
ALIPAY_PAY_VIEW,\r
\r
ALIPAY_PAY_BARCODE_VIEW,\r
- ALIPAY_TRANS_VIEW,\r
+ ALIPAY_TRANS_VIEW, //具体的乘车码支付页面\r
ALIPAY_SETTING_VIEW,\r
ALIPAY_HELP_VIEW,\r
ALIPAY_SETTING_UNBIND_VIEW,\r
\r
ALIPAY_SETTING_FINISH_VIEW,\r
ALIPAY_GET_BIND_FAILURE_VIEW,\r
- ALIPAY_TRANS_LIST_VIEW,\r
+ ALIPAY_TRANS_LIST_VIEW, //交通卡列表视图\r
ALIPAY_TRANS_ENABLE_VIEW,\r
ALIPAY_TRANS_TIPS_VIEW,\r
\r
- ALIPAY_TRANS_RES_VIEW,\r
- ALIPAY_GET_TRANS_LIST_VIEW,\r
- ALIPAY_TRANS_ANI_VIEW,\r
+ ALIPAY_TRANS_RES_VIEW, //提示网络异常视图\r
+ ALIPAY_GET_TRANS_LIST_VIEW, //获取乘车码列表视图\r
+ ALIPAY_TRANS_ANI_VIEW, //获取乘车码列表动画视图:加载动画\r
\r
ALIPAY_INTERFACES_MAX\r
} alipayInterfacesId;\r
} alipayTransResId;\r
\r
typedef enum {\r
- ALIPAY_TRANS_GET_LIST_FIRST = 0,\r
+ ALIPAY_TRANS_GET_LIST_FIRST = 0, //首次获取交通卡交易列表索引\r
ALIPAY_TRANS_GET_LIST_CLICK_DETAIL,\r
ALIPAY_TRANS_GET_LIST_CODE_DETAIL,\r
} alipayTransGetListId;\r
return false;\r
}\r
\r
- alipayApi->bind_start();\r
+ alipayApi->bind_start(); //调用支付宝API开始绑定流程\r
uint8_t str[ALIPAY_GET_BIND_STR_MAX_LENGTH] = { 0 };\r
AlipayGetBindCode(str);\r
return true;\r
return;\r
}\r
\r
+//通过 alipay_get_bind_status 获取绑定状态,判断是否需要跳转绑定页面\r
bool AlipayModel::AlipayGetBindstate(void)\r
{\r
bool state = alipayApi->get_bind_state();\r
return state;\r
}\r
\r
+//通过 alipay_get_bind_str 获取绑定码串生成二维码\r
int32_t AlipayModel::AlipayGetBindCode(uint8_t *bindStr)\r
{\r
int32_t bindStrLen = ALIPAY_GET_BIND_STR_MAX_LENGTH;\r
return ret;\r
}\r
\r
+//通过 alipay_get_pay_str 获取支付码串生成二维码\r
int32_t AlipayModel::AlipayGetPayCode(uint8_t *payStr)\r
{\r
uint32_t payStrLen = ALIPAY_GET_PAY_STR_MAX_LENGTH;\r
return ret;\r
}\r
\r
+//通过 alipay_get_nickname 获取用户昵称\r
int32_t AlipayModel::AlipayGetNickName(uint8_t *nickName)\r
{\r
uint32_t nickNameLen = ALIPAY_GET_NICKNAME_MAX_LENGTH;\r
return ret;\r
}\r
\r
+//通过 alipay_get_logon_id 获取用户登录账号\r
int32_t AlipayModel::AlipayGetIdName(uint8_t *idStr)\r
{\r
uint32_t idStrLen = ALIPAY_GET_ID_STR_MAX_LENGTH;\r
return ret;\r
}\r
\r
+//通过 alipay_get_aid_code 获取帮助码串生成二维码\r
int32_t AlipayModel::AlipayGetAidCode(int8_t *aidStr)\r
{\r
uint32_t aidStrLen = ALIPAY_GET_AID_STR_MAX_LENGTH;\r
return ret;\r
}\r
\r
+//通过 alipay_remove_bind 解除绑定关系\r
void AlipayModel::AlipayUnbind(void)\r
{\r
int32_t ret = alipayApi->remove_bind();\r
return;\r
}\r
\r
+/*从支付宝获取最后一次交易的交易码和交易卡标题,并将结果存储在相应的数组中*/\r
int32_t AlipayModel::AlipayGetLastTranscode()\r
{\r
memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
uint32_t len = ALIPAY_TRANS_CODE_MAX_LEN;\r
\r
int32_t ret = alipayApi->get_last_transcode(cardTitle_, transCode_, &len);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:ret:%u,len:%u.", ret, len);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:ret:%u,len:%u.", ret, len);\r
return ret;\r
}\r
\r
+/*获取本地交易列表*/\r
int32_t AlipayModel::AlipayGetLocalTranslist()\r
{\r
cardInfo_ = AlipayTransGetCardList();\r
sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);\r
uint32_t localListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
int32_t ret = alipayApi->get_local_translist(cardInfo_, &localListSize, &cardSum_);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetLastTranscode in:%u.", ret);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "获取本地交易列表 in:%u.", ret);\r
return ret;\r
}\r
\r
uint32_t onListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;\r
uint32_t onLineNum = 0;\r
int32_t ret = alipayApi->get_online_translist(onLineList, &onListSize, &onLineNum);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist in,ret:%u,num:%u.", ret, onLineNum);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetOnlineTranslist in,ret:%u,num:%u.", ret, onLineNum);\r
\r
if (ret == 0) {\r
memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,\r
return ret;\r
}\r
\r
+// 检查指定索引的交易卡状态\r
int32_t AlipayModel::AlipayCheckTransCard(uint32_t index)\r
{\r
mc_alipay_tans_card_status_t cardStatus = { 0 };\r
+ //检查指定索引的交易卡状态\r
int32_t ret = alipayApi->check_trans_cartstatus(&cardInfo_[index], &cardStatus);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+ // 如果交易卡存在且剩余使用次数大于等于最小有效次数,返回成功\r
if (cardStatus.card_exits && cardStatus.remain_use_count >= ALIPAY_TRANS_CARD_MIN_VALID_NUM) {\r
return 0;\r
}\r
return -1;\r
}\r
\r
+// 获取指定索引的交易码\r
int32_t AlipayModel::AlipayGetTransCode(uint32_t index)\r
{\r
- cardInfo_ = AlipayTransGetCardList();\r
+ cardInfo_ = AlipayTransGetCardList(); //获取交易卡列表\r
memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);\r
memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
transCodeLen_ = ALIPAY_TRANS_CODE_MAX_LEN;\r
- int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_);\r
- if (ret == 0) {\r
+ int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_); //获取指定索引的交易码\r
+ if (ret == 0) { //如果获取成功,复制卡标题\r
memcpy_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, cardInfo_[index].title, ALIPAY_TRANS_CARD_MEMBER_LEN);\r
}\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayCheckTransCard in:%u.", ret);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetTransCode in:%u.", ret);\r
return ret;\r
}\r
\r
\r
void AlipayMsgTransListCallBackProcFunc(uint32_t actionRes)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransListCallBackProcFunc in.");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMsgTransListCallBackProcFunc in.%d",actionRes);\r
if (AlipayMainView::GetInstance() == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
return;\r
\r
void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes)\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMsgCallBack in,msgId:%u,actionRes:%u.", msgId, actionRes);\r
if (msgId == ALIPAY_MSG_UPDATA_TRANS_LIST) {\r
GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayMsgTransListCallBackProcFunc, actionRes));\r
} else if (msgId == ALIPAY_MSG_UPDATA_SPECIAL_CARD) {\r
\r
uint32_t AlipayModel::AlipayGetSwitchIndex(void)\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayGetSwitchIndex = %d",switchIndex_);\r
return switchIndex_;\r
}\r
\r
* Create:\r
*/\r
\r
-#include "AlipayPresenter.h"\r
-#include "AlipayMainView.h"\r
+// #include "AlipayPresenter.h"\r
+// #include "AlipayMainView.h"\r
+#include "alipay/include/AlipayPresenter.h"\r
+#include "alipay/include/AlipayMainView.h"\r
#include "ChangeSliceListener.h"\r
#include "graphic_service.h"\r
#include "string"\r
#include "sstream"\r
#include "errcode.h"\r
#include "pm_definition.h"\r
-#include "AlipayListView.h"\r
-#include "AlipayListItemView.h"\r
-#include "AlipayTransListItemView.h"\r
-#include "AlipayTransListView.h"\r
+// #include "AlipayListView.h"\r
+// #include "AlipayListItemView.h"\r
+// #include "AlipayTransListItemView.h"\r
+// #include "AlipayTransListView.h"\r
+#include "alipay/include/AlipayList/AlipayListView.h"\r
+#include "alipay/include/AlipayList/AlipayListItemView.h"\r
+#include "alipay/include/AlipayTrans/AlipayTransListItemView.h"\r
+#include "alipay/include/AlipayTrans/AlipayTransListView.h"\r
#include "custom_utils.h"\r
#include "common/key_code.h"\r
#include "gfx_utils/mem_check.h"\r
return;\r
}\r
\r
+/**\r
+ * @brief 点击跳转到交通卡相关视图的处理函数\r
+ * \r
+ * 当用户点击跳转到交通卡相关视图的按钮时,此函数会被调用。\r
+ * 它会尝试获取本地交通卡交易列表,根据获取结果决定跳转到不同的视图。\r
+ * \r
+ * @param view 被点击的视图对象\r
+ */\r
void AlipayPresenter::ClickJumpTrans(UIView &view)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpTrans start");\r
- int32_t ret = alipayMode_->AlipayGetLocalTranslist();\r
- if (ret != 0) {\r
- AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_FIRST);\r
- view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_GET_TRANS_LIST_VIEW);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "点击跳转到交通卡相关视图的操作开始");\r
+ int32_t ret = alipayMode_->AlipayGetLocalTranslist(); //获取本地交通卡交易列表\r
+ if (ret != 0) { //获取本地交通卡交易列表失败\r
+ AlipaySetSwitchIndex(ALIPAY_TRANS_GET_LIST_FIRST); //设置切换索引为首次获取交通卡交易列表\r
+ view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_GET_TRANS_LIST_VIEW); //将当前视图从列表视图切换到获取交通卡交易列表视图\r
} else if (ret == 0) {\r
- int32_t get_res = alipayMode_->AlipayGetLastTranscode();\r
+ int32_t get_res = alipayMode_->AlipayGetLastTranscode(); //从支付宝获取最后一次交易的交易码\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickJumpTrans get_res:%d", get_res);\r
if (get_res == 0) {\r
view_->ChangeView(ALIPAY_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
} else {\r
\r
void AlipayPresenter::ClickRefreshList(UIView &view)\r
{\r
+ //刷新交通卡列表\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRefreshList start");\r
alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
view_->ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
\r
void AlipayPresenter::ClickBackList(UIView &view)\r
{\r
+ //获取乘车码列表视图退回到列表视图\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickBackList start");\r
view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
return;\r
\r
void AlipayPresenter::ClickUpdateList(UIView &view)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickUpdateList start");\r
+ //获取交通卡列表\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickUpdateList start");\r
+ // 发送更新交通卡列表的消息\r
alipayMode_->AlipaySendMsg(ALIPAY_MSG_UPDATA_TRANS_LIST);\r
+ // 从获取交通卡列表视图切换到交通卡动画视图\r
view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_ANI_VIEW);\r
return;\r
}\r
return;\r
}\r
\r
+//点击刷新按钮\r
void AlipayPresenter::ClickTransToTransCode(UIView &view)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickTransToTransCode start");\r
return;\r
}\r
\r
+/// @brief 处理用户点击重试获取支付宝交易码\r
+/// @param view \r
void AlipayPresenter::ClickRetryTransCode(UIView &view)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayPresenter::ClickRetryTransCode start");\r
- uint32_t index = AlipayGetCardNum();\r
- int32_t ret = alipayMode_->AlipayGetTransCode(index);\r
+ uint32_t index = AlipayGetCardNum(); //获取当前选中的交通卡索引\r
+ int32_t ret = alipayMode_->AlipayGetTransCode(index); //尝试重新获取交易码\r
if (ret == 0) {\r
- view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW);\r
+ view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_VIEW); //成功获取交易码,跳转到交易码视图\r
} else if (ret == ALIPAY_TRANS_CODE_NET_ERROR) {\r
AlipaySetSwitchIndex(ALIPAY_TRANS_RES_CODE);\r
- view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW);\r
+ view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_RES_VIEW); //网络错误,跳转到交易码获取失败视图\r
} else {\r
if (ret == ALIPAY_TRANS_CODE_DATA_LIMIT) {\r
- AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE);\r
+ AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_SECURE); //数据限制错误:设置安全提示\r
} else if (ret == ALIPAY_TRANS_CODE_NOT_SUPPORT) {\r
- AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT);\r
+ AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_NOT_SUPPORT); //不支持的错误:设置不支持提示\r
} else {\r
- AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW);\r
+ AlipaySetSwitchIndex(ALIPAY_TRANS_TIPS_LIST_UNKNOW); //未知错误:设置未知错误提示\r
}\r
- view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW);\r
+ view_->ChangeView(ALIPAY_GET_TRANS_LIST_VIEW, ALIPAY_TRANS_TIPS_VIEW); //切换到相应的错误提示视图\r
}\r
return;\r
}\r
return alipayMode_->AlipayGetIdName(idStr);\r
}\r
\r
+//通过获取帮助码串生成二维码\r
int32_t AlipayPresenter::AlipayGetAidCode(int8_t *aidStr)\r
{\r
return alipayMode_->AlipayGetAidCode(aidStr);\r
alipayMode_->AlipaySetSwitchIndex(switchIndex);\r
}\r
\r
+//获取\r
uint32_t AlipayPresenter::AlipayGetCardNum(void)\r
{\r
return alipayMode_->AlipayGetCardNum();\r
#include "font/ui_font.h"\r
#include <string>\r
#include "cmsis_os.h"\r
-#include "AlipayGetTransList.h"\r
+// #include "AlipayGetTransList.h"\r
+#include "alipay/include/AlipayTrans/AlipayGetTransList.h"\r
\r
namespace OHOS {\r
static const int16 EXIT_LABEL_X_FIRST = 60;\r
PhoneServiceInit();\r
InitBtHeadsetEvent(); // 蓝牙ct和tg适配初始化\r
\r
+ BtInitSpp();\r
+\r
+ #if 0 // 安全模式\r
if(uapi_dev_runtime_get_safemode_flag())\r
{\r
\r
\r
BtInitSpp();\r
}\r
+ #endif\r
\r
/*******************ble init ****************/\r
wrapper_ble_register();\r