// AlipayTestCaseDlg.cpp : 实现文件 // #include "stdafx.h" #include "AlipayTestCase.h" #include "AlipayTestCaseDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 class CAboutDlg : public CDialog { public: CAboutDlg(); // 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CAlipayTestCaseDlg 对话框 CAlipayTestCaseDlg::CAlipayTestCaseDlg(CWnd* pParent /*=NULL*/) : CDialog(CAlipayTestCaseDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CAlipayTestCaseDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAlipayTestCaseDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(BTN_WXPAY, &CAlipayTestCaseDlg::OnBnClickedWxpay) ON_BN_CLICKED(BTN_ALI_PAY, &CAlipayTestCaseDlg::OnBnClickedAliPay) END_MESSAGE_MAP() // CAlipayTestCaseDlg 消息处理程序 BOOL CAlipayTestCaseDlg::OnInitDialog() { CDialog::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // 设置默认参数; //SetDlgItemText(ET_WX_APPID, "wx52bf4acbefcf4653"); SetDlgItemText(ET_WX_APPID, "wxe30d2c612847beeb"); SetDlgItemText(ET_WX_MCHID, "10014662"); SetDlgItemText(ET_WX_KEY, "VIst5wdcsILt3kgMImwa21z9XPIvz0IC"); CString order = CTime::GetCurrentTime().Format("%Y%m%d-001"); SetDlgItemText(ET_WX_ORDER, order); SetDlgItemText(ET_WX_MONEY, "1"); SetDlgItemText(ET_WX_BODY, "微信支付测试用例"); SetDlgItemText(ET_WX_AUTHCODE, "130011112222333355"); // 设置默认参数; SetDlgItemText(ET_ALI_APPID, "2017032406388264"); SetDlgItemText(ET_ALI_MCHID, "2088621649564405"); SetDlgItemText(ET_ALI_PUBLICKEY, "-----BEGIN PUBLIC KEY-----\n" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDfQGUbRfMv6U4+g/RlLVXLcXk\n" "16EN8mcnmzO+d3W/2tWCM1HpHwT4aBVHQ7wyHwmHOKVYiMy55QTZlXYIpqS/UbrF\n" "ZNtAHUH6vDzz4wHTwFceJ6j5I3vbThX9Sx+/kgr5pxZJyQ3irQsQAXJzBPLmqhCo\n" "8Gl+x05LVhstbdP+VQIDAQAB\n" "-----END PUBLIC KEY-----"); SetDlgItemText(ET_ALI_PRIVATEKEY, "-----BEGIN RSA PRIVATE KEY-----\n" "MIICXQIBAAKBgQDDfQGUbRfMv6U4+g/RlLVXLcXk16EN8mcnmzO+d3W/2tWCM1Hp\n" "HwT4aBVHQ7wyHwmHOKVYiMy55QTZlXYIpqS/UbrFZNtAHUH6vDzz4wHTwFceJ6j5\n" "I3vbThX9Sx+/kgr5pxZJyQ3irQsQAXJzBPLmqhCo8Gl+x05LVhstbdP+VQIDAQAB\n" "AoGAD2Bu1mD6ZUWR1nh89AxRc0kLbuOzLGiryoa/vDSjU3MAJlypDcA94Ng3DEL8\n" "s6iTVEqVXvBrwheMmRzTivyoqqytN0jftzAKVRGMp0jHUK5dZ+hnu++ehKGwO7Vp\n" "kjJdzjuQr7F0j5MrXmkiERZicwR9+axiT4Mo12ohS+/KcIUCQQDjssEO5YnwszVr\n" "WwvmR0U4t/lg3y3Ff3ouueu1/uqT4hOHE25Ow/8ZFgfKBn3eK7gesPA1mZFwpkmJ\n" "B4XBubPrAkEA28lY5zeCPcOaqdaXhAYeA9F8YxZ0C9/cnjMHhOAYFlglX8eAC66Z\n" "WU+VhoHY0pOp9Chw89LDTWbfotR7xJ3GvwJBALA4B3Gf88F08ELFk9AEGG5s83Ml\n" "RiczITxIZ0PSpXkN3k8LmrMavLKNejnADGmFLFmUVlMlJoooJ4EFcV8ceUECQB32\n" "8ob7e2c+TszO8/NM/jSZD/NWcVXZHHP5ExJblw0c0WOgiGWPVVrmzcT72PrEpQwj\n" "o1qqpnPcDatees1QkXMCQQCS1TGEadU+tMNZ1tmfR8CNjoVPXZiInA/1ZQ+mZpJ6\n" "FqkWnzMOa1ipThOHInhYlONpvn5bUlf61LC02Ssnl4QW\n" "-----END RSA PRIVATE KEY-----"); SetDlgItemText(ET_ALI_ORDER, order); SetDlgItemText(ET_ALI_MONEY, "0.01"); SetDlgItemText(ET_ALI_SUBJECT, "支付宝支付测试用例"); SetDlgItemText(ET_ALI_BARCODE, "130011112222333355"); // TODO: 在此添加额外的初始化代码 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void CAlipayTestCaseDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CAlipayTestCaseDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CAlipayTestCaseDlg::OnQueryDragIcon() { return static_cast(m_hIcon); } void CAlipayTestCaseDlg::OnBnClickedWxpay() { CString strAppId; CString strMchId; CString strSubMchId; CString strOrder; CString strKey; CString strMoney; CString strBody; CString strAuthCode; CString strResult; GetDlgItemText(ET_WX_APPID, strAppId); GetDlgItemText(ET_WX_MCHID, strMchId); GetDlgItemText(ET_WX_SUBMCHID, strSubMchId); GetDlgItemText(ET_WX_KEY, strKey); GetDlgItemText(ET_WX_ORDER, strOrder); GetDlgItemText(ET_WX_MONEY, strMoney); GetDlgItemText(ET_WX_BODY, strBody); GetDlgItemText(ET_WX_AUTHCODE, strAuthCode); if (LoadPayApiLibrary()) { // 设置微信支付公共参数; if (g_wxpay_SetCommParam) g_wxpay_SetCommParam(strAppId, strMchId, strSubMchId, strKey); // 条码支付; if (g_wxpay_PayContent) { #ifndef _CUSTOMER_MSG_ if ( !g_wxpay_PayContent(strOrder, strBody, strAuthCode, "1", "192.168.1.1") ) { if (g_GetFailMsg) strResult = g_GetFailMsg(); AfxMessageBox(strResult); } else { AfxMessageBox("支付成功"); } #else CString strReturn = g_wxpay_PayContent(strOrder, strBody, strAuthCode, "1", "192.168.1.1"); #endif } } FreePayApiLibrary(); } void CAlipayTestCaseDlg::OnBnClickedAliPay() { CString strAppId; CString strMchId; CString strPrivateKey; CString strPublicKey; CString strOrder; CString strMoney; CString strSubject; CString strBarCode; CString strResult; GetDlgItemText(ET_ALI_APPID, strAppId); GetDlgItemText(ET_ALI_MCHID, strMchId); GetDlgItemText(ET_ALI_PRIVATEKEY, strPrivateKey); GetDlgItemText(ET_ALI_PUBLICKEY, strPublicKey); GetDlgItemText(ET_ALI_ORDER, strOrder); GetDlgItemText(ET_ALI_MONEY, strMoney); GetDlgItemText(ET_ALI_SUBJECT, strSubject); GetDlgItemText(ET_ALI_BARCODE, strBarCode); if (LoadPayApiLibrary()) { // 设置微信支付公共参数; if (g_Alipay_SetCommonParam) g_Alipay_SetCommonParam(strAppId, strPrivateKey, "RSA", "utf-8", "1.0", "https://openapi.alipay.com/gateway.do", strPublicKey); // 条码支付; if (g_Alipay_PrecreateContent) { #ifndef _CUSTOMER_MSG_ if ( !g_Alipay_PrecreateContent(strOrder, "bar_code", strBarCode, 0.01, strSubject) ) { if (g_GetFailMsg) strResult = g_GetFailMsg(); AfxMessageBox(strResult); } else { AfxMessageBox("支付成功"); } #else CString strReturn = g_Alipay_PrecreateContent(strOrder, "bar_code", strBarCode, 0.01, strSubject); #endif } } FreePayApiLibrary(); } void CAlipayTestCaseDlg::OnOK() { // TODO: 在此添加专用代码和/或调用基类 CWnd *pAliWnd = GetDlgItem(ET_ALI_BARCODE); CWnd *pWxWnd = GetDlgItem(ET_WX_AUTHCODE); if ( GetFocus() == pAliWnd ) { OnBnClickedAliPay(); } else if ( GetFocus() == pWxWnd ) { OnBnClickedWxpay(); } }