|
@@ -21,10 +21,6 @@ void CWeixinzhifuShoukuanWnd::Notify(TNotifyUI& msg)
|
|
|
Close(IDCANCEL);
|
|
Close(IDCANCEL);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (msg.pSender->GetName() == _T("shoukuanBtn"))
|
|
|
|
|
- {
|
|
|
|
|
- StartShoukuan();
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -266,7 +262,7 @@ LRESULT CWeixinzhifuShoukuanWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM
|
|
|
{
|
|
{
|
|
|
if (m_shoukuan_status == 0)
|
|
if (m_shoukuan_status == 0)
|
|
|
{
|
|
{
|
|
|
- StartShoukuan();
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
else if (m_shoukuan_status == 1 || m_shoukuan_status == 2 || m_shoukuan_status == 5)
|
|
else if (m_shoukuan_status == 1 || m_shoukuan_status == 2 || m_shoukuan_status == 5)
|
|
|
{
|
|
{
|
|
@@ -331,41 +327,20 @@ LRESULT CWeixinzhifuShoukuanWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM
|
|
|
|
|
|
|
|
void CWeixinzhifuShoukuanWnd::InitMoney(std::wstring value)
|
|
void CWeixinzhifuShoukuanWnd::InitMoney(std::wstring value)
|
|
|
{
|
|
{
|
|
|
- CHorizontalLayoutUI* pInputLayout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("shoukuan_money_input_layout")));
|
|
|
|
|
- pInputLayout->SetVisible(false);
|
|
|
|
|
-
|
|
|
|
|
- CHorizontalLayoutUI* pShowLayout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("shoukuan_money_show_layout")));
|
|
|
|
|
- pShowLayout->SetVisible(true);
|
|
|
|
|
-
|
|
|
|
|
CLabelUI* pMoneyLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_money_show_money")));
|
|
CLabelUI* pMoneyLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_money_show_money")));
|
|
|
if (pMoneyLabel)
|
|
if (pMoneyLabel)
|
|
|
{
|
|
{
|
|
|
pMoneyLabel->SetText(value.c_str());
|
|
pMoneyLabel->SetText(value.c_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- m_is_money_init = true;
|
|
|
|
|
m_money = value;
|
|
m_money = value;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void CWeixinzhifuShoukuanWnd::InitFukuanma(std::string fukuanma)
|
|
void CWeixinzhifuShoukuanWnd::InitFukuanma(std::string fukuanma)
|
|
|
{
|
|
{
|
|
|
- std::wstring ws_fukuanma = CLewaimaiString::UTF8ToUnicode(fukuanma);
|
|
|
|
|
-
|
|
|
|
|
- CLabelUI* pFukuanmaLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("fukuanma_edit")));
|
|
|
|
|
- if (pFukuanmaLabel)
|
|
|
|
|
- {
|
|
|
|
|
- pFukuanmaLabel->SetText(ws_fukuanma.c_str());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ m_fukuanma = fukuanma;
|
|
|
|
|
|
|
|
- std::string shoukuan_setting_mianqueren = CSetting::GetParam("shoukuan_setting_mianqueren");
|
|
|
|
|
- if (shoukuan_setting_mianqueren == "1")
|
|
|
|
|
- {
|
|
|
|
|
- if (m_is_money_init)
|
|
|
|
|
- {
|
|
|
|
|
- //如果金额也是初始化好的,可以直接支付了
|
|
|
|
|
- this->StartShoukuan();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ this->StartShoukuan();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void CWeixinzhifuShoukuanWnd::SetCommonParams(std::map<string, string> params)
|
|
void CWeixinzhifuShoukuanWnd::SetCommonParams(std::map<string, string> params)
|
|
@@ -375,25 +350,7 @@ void CWeixinzhifuShoukuanWnd::SetCommonParams(std::map<string, string> params)
|
|
|
|
|
|
|
|
void CWeixinzhifuShoukuanWnd::UpdateFocus()
|
|
void CWeixinzhifuShoukuanWnd::UpdateFocus()
|
|
|
{
|
|
{
|
|
|
- if (m_is_money_init == false)
|
|
|
|
|
- {
|
|
|
|
|
- //如果没初始化,这个时候有2个编辑框,不能抢焦点
|
|
|
|
|
- CEditUI* pMoneyEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("money_edit")));
|
|
|
|
|
-
|
|
|
|
|
- pMoneyEdit->SetFocus();
|
|
|
|
|
-
|
|
|
|
|
- //下一个焦点的,就设置为这个控件
|
|
|
|
|
- m_pm.SetFocusNeeded(pMoneyEdit);
|
|
|
|
|
-
|
|
|
|
|
- //这个干嘛的不知道,但是不加好像不行
|
|
|
|
|
- m_pm.SetNextTabControl(false);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- CEditUI* pFukuanEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("fukuanma_edit")));
|
|
|
|
|
-
|
|
|
|
|
- pFukuanEdit->SetFocus();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
@@ -417,20 +374,11 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanNeedPassword(UINT uMsg, WPARAM wParam
|
|
|
|
|
|
|
|
LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanSuccess(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
|
{
|
|
{
|
|
|
- //判断是否要打印
|
|
|
|
|
- /*
|
|
|
|
|
- int dayinji_setting_auto_print = atoi(CSetting::GetParam("system_setting_dayinji_setting_auto_print").c_str());
|
|
|
|
|
- if (dayinji_setting_auto_print == 1)
|
|
|
|
|
- {
|
|
|
|
|
- m_valueWnd->PrintZhifu(m_out_trade_no);
|
|
|
|
|
- }
|
|
|
|
|
- }*/
|
|
|
|
|
-
|
|
|
|
|
//播放收款成功的金额
|
|
//播放收款成功的金额
|
|
|
- //if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
|
|
|
|
|
- //{
|
|
|
|
|
|
|
+ if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
|
|
|
|
|
+ {
|
|
|
std::thread(&CWeixinzhifuShoukuanWnd::ReadShoukuanValue, this).detach();
|
|
std::thread(&CWeixinzhifuShoukuanWnd::ReadShoukuanValue, this).detach();
|
|
|
- //}
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
CVerticalLayoutUI* paying_layout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("shoukuan_paying_layout")));
|
|
CVerticalLayoutUI* paying_layout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("shoukuan_paying_layout")));
|
|
|
paying_layout->SetVisible(false);
|
|
paying_layout->SetVisible(false);
|
|
@@ -472,10 +420,10 @@ LRESULT CWeixinzhifuShoukuanWnd::OnShoukuanFail(UINT uMsg, WPARAM wParam, LPARAM
|
|
|
{
|
|
{
|
|
|
wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
|
|
wstring path = CSystem::GetProgramDir() + L"\\music\\pay_fail.wav";
|
|
|
|
|
|
|
|
- //if (CSetting::GetParam("shoukuan_setting_yuyinbobao") == "1")
|
|
|
|
|
- //{
|
|
|
|
|
|
|
+ if (CSetting::GetParam("setting_is_new_diannei_voice") == "1")
|
|
|
|
|
+ {
|
|
|
PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
|
|
PlaySound(path.c_str(), NULL, SND_FILENAME | SND_ASYNC);
|
|
|
- //}
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
CVerticalLayoutUI* paying_layout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("shoukuan_paying_layout")));
|
|
CVerticalLayoutUI* paying_layout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("shoukuan_paying_layout")));
|
|
|
paying_layout->SetVisible(false);
|
|
paying_layout->SetVisible(false);
|
|
@@ -505,42 +453,8 @@ void CWeixinzhifuShoukuanWnd::StartShoukuan()
|
|
|
{
|
|
{
|
|
|
CLabelUI* pLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuanresult")));
|
|
CLabelUI* pLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuanresult")));
|
|
|
|
|
|
|
|
- //检查收款金额
|
|
|
|
|
- if (m_is_money_init == false)
|
|
|
|
|
- {
|
|
|
|
|
- CEditUI* pMoneyEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("money_edit")));
|
|
|
|
|
- m_money = pMoneyEdit->GetText();
|
|
|
|
|
-
|
|
|
|
|
- if (m_money == L"")
|
|
|
|
|
- {
|
|
|
|
|
- pLabel->SetText(L"收款金额不能为空,请重新输入!");
|
|
|
|
|
- pLabel->SetVisible(true);
|
|
|
|
|
-
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (m_money == L"0.00")
|
|
|
|
|
- {
|
|
|
|
|
- pLabel->SetText(L"收款金额不能为 0 元,请重新输入!");
|
|
|
|
|
- pLabel->SetVisible(true);
|
|
|
|
|
-
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- double money_value = atof(CLewaimaiString::UnicodeToUTF8(m_money).c_str());
|
|
|
|
|
- if (!money_value || money_value < 0.01)
|
|
|
|
|
- {
|
|
|
|
|
- pLabel->SetText(L"收款金额错误,请重新输入!");
|
|
|
|
|
- pLabel->SetVisible(true);
|
|
|
|
|
-
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
//先判断收款码的格式是否正确
|
|
//先判断收款码的格式是否正确
|
|
|
- CEditUI* pFukuanmaEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("fukuanma_edit")));
|
|
|
|
|
- std::wstring ws_Fukuanma = pFukuanmaEdit->GetText();
|
|
|
|
|
- std::string s_Fukuanma = CLewaimaiString::UnicodeToUTF8(ws_Fukuanma);
|
|
|
|
|
|
|
+ std::string s_Fukuanma = m_fukuanma;
|
|
|
|
|
|
|
|
int length = s_Fukuanma.size();
|
|
int length = s_Fukuanma.size();
|
|
|
if (length != 18 && length != 19)
|
|
if (length != 18 && length != 19)
|
|
@@ -597,8 +511,6 @@ void CWeixinzhifuShoukuanWnd::StartShoukuan()
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- m_fukuanma = ws_Fukuanma;
|
|
|
|
|
-
|
|
|
|
|
//全部验证通过,就可以开始修改状态了
|
|
//全部验证通过,就可以开始修改状态了
|
|
|
m_shoukuan_status = 1;
|
|
m_shoukuan_status = 1;
|
|
|
|
|
|
|
@@ -616,7 +528,7 @@ void CWeixinzhifuShoukuanWnd::StartShoukuan()
|
|
|
std::wstring valueInfo = L"付款金额:¥" + m_money;
|
|
std::wstring valueInfo = L"付款金额:¥" + m_money;
|
|
|
pMoneyPaying->SetText(valueInfo.c_str());
|
|
pMoneyPaying->SetText(valueInfo.c_str());
|
|
|
|
|
|
|
|
- //开启一个线程,开始处理登录
|
|
|
|
|
|
|
+ //开启一个线程,开始处理收款
|
|
|
std::thread(&CWeixinzhifuShoukuanWnd::HandleShoukuan, this).detach();
|
|
std::thread(&CWeixinzhifuShoukuanWnd::HandleShoukuan, this).detach();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -625,7 +537,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuan()
|
|
|
//生成随机的order_no
|
|
//生成随机的order_no
|
|
|
|
|
|
|
|
m_commonParams["zhifu_type"] = to_string(7);
|
|
m_commonParams["zhifu_type"] = to_string(7);
|
|
|
- m_commonParams["zhifu_code"] = CLewaimaiString::UnicodeToUTF8(m_fukuanma);
|
|
|
|
|
|
|
+ m_commonParams["zhifu_code"] = m_fukuanma;
|
|
|
|
|
|
|
|
std::string response;
|
|
std::string response;
|
|
|
|
|
|
|
@@ -707,7 +619,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuan()
|
|
|
m_take_food_code = data["take_food_code"].GetString();
|
|
m_take_food_code = data["take_food_code"].GetString();
|
|
|
m_show_trade_no = data["show_trade_no"].GetString();
|
|
m_show_trade_no = data["show_trade_no"].GetString();
|
|
|
|
|
|
|
|
- m_out_trade_no = data["trade_no"].GetString();
|
|
|
|
|
|
|
+ m_trade_no = data["trade_no"].GetString();
|
|
|
|
|
|
|
|
SendMessage(WM_SHOUKUAN_STATUS_SUCCESS, 0, 0);
|
|
SendMessage(WM_SHOUKUAN_STATUS_SUCCESS, 0, 0);
|
|
|
}
|
|
}
|
|
@@ -724,7 +636,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuan()
|
|
|
{
|
|
{
|
|
|
m_shoukuan_status = 2;
|
|
m_shoukuan_status = 2;
|
|
|
|
|
|
|
|
- m_out_trade_no = data["out_trade_no"].GetString();
|
|
|
|
|
|
|
+ m_trade_no = data["trade_no"].GetString();
|
|
|
|
|
|
|
|
//需要查询支付状态
|
|
//需要查询支付状态
|
|
|
SendMessage(WM_SHOUKUAN_STATUS_NEEDPASSWORD, 0, 0);
|
|
SendMessage(WM_SHOUKUAN_STATUS_NEEDPASSWORD, 0, 0);
|
|
@@ -743,7 +655,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuanPassword()
|
|
|
{
|
|
{
|
|
|
std::map<string, string> params;
|
|
std::map<string, string> params;
|
|
|
|
|
|
|
|
- params["trade_no"] = m_out_trade_no;
|
|
|
|
|
|
|
+ params["trade_no"] = m_trade_no;
|
|
|
|
|
|
|
|
while (m_shoukuan_status == 2)
|
|
while (m_shoukuan_status == 2)
|
|
|
{
|
|
{
|
|
@@ -815,7 +727,7 @@ void CWeixinzhifuShoukuanWnd::HandleShoukuanPassword()
|
|
|
m_take_food_code = data["take_food_code"].GetString();
|
|
m_take_food_code = data["take_food_code"].GetString();
|
|
|
m_show_trade_no = data["show_trade_no"].GetString();
|
|
m_show_trade_no = data["show_trade_no"].GetString();
|
|
|
|
|
|
|
|
- m_out_trade_no = data["out_trade_no"].GetString();
|
|
|
|
|
|
|
+ m_trade_no = data["trade_no"].GetString();
|
|
|
|
|
|
|
|
SendMessage(WM_SHOUKUAN_STATUS_SUCCESS, 0, 0);
|
|
SendMessage(WM_SHOUKUAN_STATUS_SUCCESS, 0, 0);
|
|
|
|
|
|
|
@@ -860,7 +772,7 @@ void CWeixinzhifuShoukuanWnd::HandleCancelShoukuan()
|
|
|
{
|
|
{
|
|
|
std::map<string, string> params;
|
|
std::map<string, string> params;
|
|
|
|
|
|
|
|
- params["trade_no"] = m_out_trade_no;
|
|
|
|
|
|
|
+ params["trade_no"] = m_trade_no;
|
|
|
|
|
|
|
|
std::string response;
|
|
std::string response;
|
|
|
|
|
|
|
@@ -953,5 +865,7 @@ void CWeixinzhifuShoukuanWnd::ReadShoukuanValue()
|
|
|
//处理键盘捕捉结果
|
|
//处理键盘捕捉结果
|
|
|
void CWeixinzhifuShoukuanWnd::HandleTextCapture(std::string content)
|
|
void CWeixinzhifuShoukuanWnd::HandleTextCapture(std::string content)
|
|
|
{
|
|
{
|
|
|
|
|
+ m_fukuanma = content;
|
|
|
|
|
|
|
|
|
|
+ StartShoukuan();
|
|
|
}
|
|
}
|