233 lines
8.3 KiB
C++
233 lines
8.3 KiB
C++
#include "TjdUiAppAlipayModel.h"
|
|
#include "TjdUiAppAlipayPresenter.h"
|
|
#include "sql_setting.h"
|
|
#include "sys_config.h"
|
|
|
|
namespace TJD {
|
|
|
|
#define ENABLE_PRINT_INFO 1
|
|
#if ENABLE_PRINT_INFO
|
|
#define static_print_info(...) sys_ui_log_i(__VA_ARGS__) // 一般信息打印宏控制
|
|
#define static_print_warn(...) sys_ui_log_w(__VA_ARGS__) // 警告信息打印一般常开
|
|
#define static_print_error(...) sys_ui_log_e(__VA_ARGS__) // 错误信息打印一般常开
|
|
#define static_print_debug(...) sys_ui_log_d(__VA_ARGS__) // 调试信息打印一般常开
|
|
#else
|
|
#define static_print_info(...)
|
|
#define static_print_warn(...)
|
|
#define static_print_error(...)
|
|
#define static_print_debug(...)
|
|
#endif
|
|
|
|
#define ALIPAY_GET_BIND_STR_LENGTH 256
|
|
|
|
TjdUiAppAlipayModel::TjdUiAppAlipayModel() : alipayApi(alipay_svr_get_api()) {}
|
|
|
|
void AlipayMsgCallBack(uint32_t msgId, uint32_t actionRes)
|
|
{
|
|
if (msgId == ALIPAY_MSG_UPDATA_TRANS_LIST) {
|
|
TjdUiAppAlipayPresenter::AlipayMsgTransListCallBackProcFunc(actionRes);
|
|
} else if (msgId == ALIPAY_MSG_UPDATA_SPECIAL_CARD) {
|
|
TjdUiAppAlipayPresenter::AlipayMsgTransSpeCardCallBackProcFunc(actionRes);
|
|
}
|
|
return;
|
|
}
|
|
|
|
uint32_t TjdUiAppAlipayModel::AlipayDriverInit(void)
|
|
{
|
|
uint32_t ret = uapi_alipay_svr_init();
|
|
if (ret != 0) {
|
|
static_print_error("AlipayDriverInit uapi_alipay_svr_init failure.");
|
|
return ret;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
bool TjdUiAppAlipayModel::AlipayInitModel(void)
|
|
{
|
|
transCode_ = (uint8_t *)malloc(ALIPAY_TRANS_CODE_MAX_LEN);
|
|
if (transCode_ == nullptr) {
|
|
static_print_info("AlipayModel::AlipayInitModel transCode_ alloc failure.");
|
|
return false;
|
|
}
|
|
uint32_t retCode = svr_alipay_init_trans_context();
|
|
if (retCode != 0) {
|
|
free(transCode_);
|
|
static_print_info("AlipayModel::AlipayInitModel svr_alipay_init_trans_context failure.");
|
|
return false;
|
|
}
|
|
svr_alipay_register_cb(AlipayMsgCallBack);
|
|
svr_alipay_create_task();
|
|
return true;
|
|
}
|
|
|
|
void TjdUiAppAlipayModel::AlipayEnterLpm(void) { alipayApi->enter_lpm(); }
|
|
|
|
void TjdUiAppAlipayModel::AlipayExitLpm(void) { alipayApi->exit_lpm(); }
|
|
|
|
void TjdUiAppAlipayModel::AlipayDeinitModel(void)
|
|
{
|
|
static_print_info("AlipayModel::AlipayDeinitModel in.");
|
|
if (transCode_ != nullptr) {
|
|
free(transCode_);
|
|
transCode_ = nullptr;
|
|
}
|
|
svr_alipay_deinit_trans_context();
|
|
svr_alipay_destroy_task();
|
|
return;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetBindCode(uint8_t *bindStr)
|
|
{
|
|
int32_t bindStrLen = ALIPAY_GET_BIND_STR_LENGTH;
|
|
return alipayApi->get_bind_str(bindStr, &bindStrLen);
|
|
}
|
|
|
|
void TjdUiAppAlipayModel::AlipayStartBind(void) { alipayApi->bind_start(); }
|
|
|
|
void TjdUiAppAlipayModel::AlipayBindFinish(void) { alipayApi->bind_finish(); }
|
|
|
|
void TjdUiAppAlipayModel::AlipayUnbind(void)
|
|
{
|
|
int32_t ret = alipayApi->remove_bind();
|
|
if (ret == 0) {
|
|
bindFlag_ = false;
|
|
};
|
|
}
|
|
|
|
bool TjdUiAppAlipayModel::AlipayGetBindState(void) { return alipayApi->get_bind_state(); }
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetBindStatus(int32_t &bindStatus)
|
|
{
|
|
return alipayApi->get_bind_status(&bindStatus);
|
|
}
|
|
|
|
void TjdUiAppAlipayModel::AlipaySetBindFlag(bool bindFlag) { bindFlag_ = bindFlag; }
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayTransGetCardNum(void)
|
|
{
|
|
mc_alipay_trans_context_t *alipayTransContext = svr_alipay_get_trans_context();
|
|
return alipayTransContext->card_len;
|
|
}
|
|
|
|
uint32_t TjdUiAppAlipayModel::AlipayGetCardNum(void) { return cardNum_; }
|
|
|
|
void TjdUiAppAlipayModel::AlipaySetCardSum(uint32_t cardSum) { cardSum_ = cardSum; }
|
|
|
|
uint32_t TjdUiAppAlipayModel::AlipayGetCardSum(void) { return cardSum_; }
|
|
|
|
void TjdUiAppAlipayModel::AlipaySetSwitchIndex(uint32_t switchIndex) { switchIndex_ = switchIndex; }
|
|
|
|
mc_alipay_trans_card_info_t *TjdUiAppAlipayModel::AlipayTransGetCardList(void)
|
|
{
|
|
mc_alipay_trans_context_t *alipayTransContext = svr_alipay_get_trans_context();
|
|
return alipayTransContext->card_info;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetTransCode(uint32_t index)
|
|
{
|
|
cardInfo_ = AlipayTransGetCardList();
|
|
memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);
|
|
memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);
|
|
transCodeLen_ = ALIPAY_TRANS_CODE_MAX_LEN;
|
|
int32_t ret = alipayApi->get_transcode(&cardInfo_[index], transCode_, &transCodeLen_);
|
|
if (ret == 0) {
|
|
memcpy_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, cardInfo_[index].title, ALIPAY_TRANS_CARD_MEMBER_LEN);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetPayCode(uint8_t *payStr)
|
|
{
|
|
uint32_t payStrLen = 20;
|
|
return alipayApi->get_pay_str(payStr, &payStrLen);
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetOnlineTranslist()
|
|
{
|
|
cardInfo_ = AlipayTransGetCardList();
|
|
mc_alipay_trans_card_info_t *onLineList = nullptr;
|
|
|
|
onLineList =
|
|
(mc_alipay_trans_card_info_t *)malloc(sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);
|
|
if (onLineList == nullptr) {
|
|
static_print_error("AlipayModel::AlipayGetOnlineTranslist alloc fail.");
|
|
return -1;
|
|
}
|
|
memset_s(onLineList, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,
|
|
sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);
|
|
|
|
uint32_t onListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;
|
|
uint32_t onLineNum = 0;
|
|
int32_t ret = alipayApi->get_online_translist(onLineList, &onListSize, &onLineNum);
|
|
static_print_debug("AlipayModel::AlipayGetOnlineTranslist ret:%u,num:%u.", ret, onLineNum);
|
|
|
|
if (ret == 0) {
|
|
memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,
|
|
sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);
|
|
memcpy_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, onLineList, onListSize);
|
|
cardSum_ = onLineNum;
|
|
}
|
|
free(onLineList);
|
|
onLineList = nullptr;
|
|
return ret;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayUpdateTransCard(uint32_t index)
|
|
{
|
|
int32_t ret = alipayApi->update_trans_cardinfo(&cardInfo_[index]);
|
|
static_print_debug("AlipayModel::AlipayUpdateTransCard in:%u.", ret);
|
|
return ret;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayCheckTransCard(uint32_t index)
|
|
{
|
|
mc_alipay_tans_card_status_t cardStatus = {};
|
|
int32_t ret = alipayApi->check_trans_cartstatus(&cardInfo_[index], &cardStatus);
|
|
static_print_debug("AlipayModel::AlipayCheckTransCard in:%u.", ret);
|
|
if (cardStatus.card_exits && cardStatus.remain_use_count >= ALIPAY_TRANS_CARD_MIN_VALID_NUM) {
|
|
return 0;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetLocalTranslist()
|
|
{
|
|
cardInfo_ = AlipayTransGetCardList();
|
|
memset_s(cardInfo_, sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH, 0,
|
|
sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH);
|
|
uint32_t localListSize = sizeof(mc_alipay_trans_card_info_t) * ALIPAY_TRANS_CARD_MAX_LENGTH;
|
|
return alipayApi->get_local_translist(cardInfo_, &localListSize, &cardSum_);
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetLastTranscode()
|
|
{
|
|
memset_s(transCode_, ALIPAY_TRANS_CODE_MAX_LEN, 0, ALIPAY_TRANS_CODE_MAX_LEN);
|
|
memset_s(cardTitle_, ALIPAY_TRANS_CARD_MEMBER_LEN, 0, ALIPAY_TRANS_CARD_MEMBER_LEN);
|
|
uint32_t len = ALIPAY_TRANS_CODE_MAX_LEN;
|
|
return alipayApi->get_last_transcode(cardTitle_, transCode_, &len);
|
|
}
|
|
|
|
uint8_t *TjdUiAppAlipayModel::AlipayGetTransCode(void) { return transCode_; }
|
|
|
|
uint32_t TjdUiAppAlipayModel::AlipayGetTransCodeLen(void) { return transCodeLen_; }
|
|
|
|
char *TjdUiAppAlipayModel::AlipayGetCardTitle(uint32_t index) { return cardInfo_[index].title; }
|
|
|
|
char *TjdUiAppAlipayModel::AlipayGetCardTitle(void) { return cardTitle_; }
|
|
|
|
bool TjdUiAppAlipayModel::IsChinese(void) { return sql_setting_get_language() == language_enum::LANGUAGE_CHINESE; }
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetNickName(uint8_t *nickName)
|
|
{
|
|
uint32_t nickNameLen = 128;
|
|
return alipayApi->get_nickname(nickName, &nickNameLen);
|
|
}
|
|
|
|
int32_t TjdUiAppAlipayModel::AlipayGetIdName(uint8_t *idStr)
|
|
{
|
|
uint32_t idStrLen = 128;
|
|
return alipayApi->get_logon_id(idStr, &idStrLen);
|
|
}
|
|
|
|
} // namespace TJD
|