支付宝断连修改
authorhcj <1224667075@qq.com>
Mon, 14 Oct 2024 10:31:41 +0000 (18:31 +0800)
committerhcj <1224667075@qq.com>
Mon, 14 Oct 2024 10:31:41 +0000 (18:31 +0800)
code/sdk/application/wearable/fd230app/nativeui/alipay/include/AlipayModel.h
code/sdk/application/wearable/fd230app/nativeui/alipay/src/AlipayModel.cpp
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 1895f63..8f47146 100644 (file)
@@ -23,6 +23,7 @@ void AlipaySwitchTimerCallBackProc(void *argument);
 void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes);\r
 \r
 #define ALIPAY_BIND_STATUS_TIMER_LENGTH 2000\r
+#define ALIPAY_BIND_STATUS_DISCONNECT 3000\r
 #define ALIPAY_GET_BIND_STR_MAX_LENGTH 256\r
 #define ALIPAY_GET_PAY_STR_MAX_LENGTH 20\r
 #define ALIPAY_GET_AID_STR_MAX_LENGTH 256\r
index f5e948a..72b52bc 100644 (file)
@@ -40,6 +40,7 @@ int16 AlipayModel::GetAlipayInterLis(void)
 {\r
     return alipayInterLis;\r
 }\r
+static uint8_t disconnectfalg=0;\r
 \r
 void AlipayBindCallBackProc(void *argument)\r
 {\r
@@ -69,26 +70,40 @@ void AlipayBindCallBackProc(void *argument)
         \r
         AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
         \r
-        AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+        //AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
     } else if (ALIPAY_INTER_STATUS_BINDING_FAIL == status && reFlag == 1) {\r
         AlipayModel::GetInstance()->AlipayStopBindTimer();\r
         AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
         AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
         AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
-         AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+       \r
+         //AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
     }\r
-    else if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 && currentView==ALIPAY_BIND_ANI_VIEW) {\r
+    else if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1) {\r
         if(get_Alipay_ble_connect()==false)\r
         {\r
-              AlipayModel::GetInstance()->ble_disconnect_AlipayStartBind();\r
+            disconnectfalg++;\r
+            if(disconnectfalg>=2)\r
+            {\r
+                \r
+                AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+                AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                 "ble 断开连接 ");\r
+                AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+                AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+            }\r
+\r
+              //AlipayModel::GetInstance()->ble_disconnect_AlipayStartBind();\r
         }\r
        \r
     }\r
 }\r
 void AlipayBindCallBackProcdisconnect(void *argument)\r
 {\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc in.");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProcdisconnect in.");\r
     const alipay_svr_api_t *alipay_api = alipay_svr_get_api();\r
     int32_t status = 0;\r
     int32_t ret = alipay_api->get_bind_status(&status);\r
@@ -100,13 +115,13 @@ void AlipayBindCallBackProcdisconnect(void *argument)
     int16_t currentView = AlipayModel::GetInstance()->GetAlipayInterLis();\r
     uint32_t reFlag = AlipayModel::GetInstance()->AlipayGetRefreshFlag();\r
 \r
-    if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 && currentView==ALIPAY_BIND_ANI_VIEW) {\r
+    if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 ) {\r
     if(get_Alipay_ble_connect()==false)\r
     {\r
 \r
         AlipayModel::GetInstance()->AlipayStopBindTimer();\r
         AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
         AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
         AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
     }\r
@@ -126,31 +141,34 @@ void AlipayBindTimerCallBackbledisconnect(void *argument)
 \r
 bool AlipayModel::ble_disconnect_AlipayStartBind(void)\r
 {\r
-    if (ble_disconnect_bindTimerId == nullptr) {\r
-        ble_disconnect_bindTimerId = osTimerNew(AlipayBindTimerCallBackbledisconnect, osTimerOnce, (void *)0, nullptr);\r
-        if (ble_disconnect_bindTimerId == nullptr) {\r
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Create timer fail.");\r
-            return false;\r
-        }\r
-    }\r
+        // if (ble_disconnect_bindTimerId == nullptr) {\r
+\r
+        //     ble_disconnect_bindTimerId = osTimerNew(AlipayBindTimerCallBackbledisconnect, osTimerOnce, (void *)0, nullptr);\r
+        //     if (ble_disconnect_bindTimerId == nullptr) {\r
+        //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Create timer fail.");\r
+        //         return false;\r
+        //     }\r
+\r
+        //     int32_t retcode = osTimerStart(ble_disconnect_bindTimerId, ALIPAY_BIND_STATUS_DISCONNECT);\r
+        //     if (retcode != 0) {\r
+        //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Start timer fail");\r
+        //         return false;\r
+        //     }\r
+        //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayModel::ble_disconnect_AlipayStartBind");\r
+        // }\r
 \r
-    int32_t retcode = osTimerStart(ble_disconnect_bindTimerId, ALIPAY_BIND_STATUS_TIMER_LENGTH*2);\r
-    if (retcode != 0) {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Start timer fail");\r
-        return false;\r
-    }\r
     return true;\r
 }\r
 \r
 \r
 void AlipayModel::AlipayStopdisconnecTimer(void)\r
 {\r
-    if (ble_disconnect_bindTimerId == nullptr) {\r
-        return;\r
-    }\r
-    int32_t ret = osTimerStop(ble_disconnect_bindTimerId);\r
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopBindTimer in,%u.", ret);\r
-    ble_disconnect_bindTimerId=nullptr;\r
+    //     if (ble_disconnect_bindTimerId == nullptr) {\r
+    //         return;\r
+    //     }\r
+    //     int32_t ret = osTimerStop(ble_disconnect_bindTimerId);\r
+    //     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopBindTimer in,%u.", ret);\r
+    // ble_disconnect_bindTimerId=nullptr;\r
     return;\r
 }\r
 \r
@@ -165,6 +183,7 @@ bool AlipayModel::AlipayStartBind(void)
             return false;\r
         }\r
     }\r
+    disconnectfalg=0;\r
 \r
     int32_t retcode = osTimerStart(bindTimerId, ALIPAY_BIND_STATUS_TIMER_LENGTH);\r
     if (retcode != 0) {\r
@@ -307,6 +326,8 @@ void AlipayModel::AlipayUnbind(void)
 \r
 void AlipayModel::AlipayStopBindTimer(void)\r
 {\r
+    disconnectfalg=0;\r
+\r
     if (bindTimerId == nullptr) {\r
         return;\r
     }\r
index a8171ed..032c645 100644 (file)
@@ -438,11 +438,7 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
             }\r
 \r
         }\r
-        else\r
-        {\r
-\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "其他连接断开,不做多余处理 \r\n");\r
-        }\r
+       \r
         //如果ble连接全部断连,则需要重新开启广播\r
         //可能因ble连接不够稳定,快速断开ble连接,无法将连接判定为app连接导致断连的时候没有正确重新开启广播\r
         if(!get_ble_connect())\r
@@ -464,7 +460,11 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
             //如果当前页面处于支付宝界面,则重新开广播\r
             svr_ble_adv_start();\r
         }\r
-       \r
+\r
+        if(g_ble_Alipay_conn_id==conn_id)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "支付宝断开连接 \r\n");\r
+        }\r
      \r
     }   \r
     else \r
@@ -1391,7 +1391,8 @@ static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, g
     }\r
     if(is_alipay_handle(write_cb_para->handle))\r
     {\r
-         g_ble_Alipay_conn_id=conn_id;\r
+        g_ble_Alipay_conn_id=conn_id;\r
+        printf("g_ble_Alipay_conn_id\r\n");\r
     }\r
     // else\r
     // {\r