提交新项目

This commit is contained in:
kongyuebin
2019-12-19 14:47:58 +08:00
parent 7ba20ac1b9
commit f29066a984
609 changed files with 238892 additions and 0 deletions

8
shop/.idea/merchant.iml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
shop/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
shop/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/merchant.iml" filepath="$PROJECT_DIR$/.idea/merchant.iml" />
</modules>
</component>
</project>

29
shop/.idea/watcherTasks.xml generated Normal file
View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions">
<TaskOptions isEnabled="true">
<option name="arguments" value="fmt $FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="go" />
<option name="immediateSync" value="false" />
<option name="name" value="go fmt" />
<option name="output" value="$FilePath$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$GoExecPath$" />
<option name="runOnExternalChanges" value="false" />
<option name="scopeName" value="All Places" />
<option name="trackOnlyRoot" value="true" />
<option name="workingDir" value="" />
<envs>
<env name="GOROOT" value="$GOROOT$" />
<env name="GOPATH" value="$GOPATH$" />
<env name="PATH" value="$GoBinDirs$" />
</envs>
</TaskOptions>
</component>
</project>

567
shop/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,567 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="226bde98-4991-4cd8-9dcf-9c724fad0921" name="Default" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Go File" />
<option value="HTML File" />
<option value="CSS File" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>ShowHome</find>
<find>订单编号</find>
<find>H5支付</find>
<find>orderid</find>
<find>notifyUrl</find>
<find>amount</find>
<find>orderNo</find>
<find>QueryOrderStatus</find>
<find>收银台</find>
<find>Admin server Running on</find>
<find>8088</find>
<find>KJ_URL</find>
<find>Session</find>
<find>host_url</find>
<find>SCAN_URL</find>
<find>liansheng-pay-outside</find>
<find>liansheng-pay-outside.mysql.rds.aliyuncs.com</find>
<find>Payfor</find>
<find>KC_KJ_URL</find>
<find>kj_host</find>
<find>siteName</find>
<find>shopName</find>
<find>返回支付</find>
<find>此订单5分钟内交易有效!</find>
<find>ico_log</find>
<find>返回</find>
</findStrings>
<replaceStrings>
<replace />
<replace>liansheng-pay-outside.mysql.rds.aliyuncs.com</replace>
<replace>rm-uf6zsdjy853uw7fivho.mysql.rds.aliyuncs.com</replace>
</replaceStrings>
<dirStrings>
<dir>C:\gopath\kvpay\merchant</dir>
<dir>C:\gopath\src\merchant</dir>
</dirStrings>
</component>
<component name="GOROOT" path="C:\Go" />
<component name="GoLibraries">
<option name="urls">
<list>
<option value="file://$PROJECT_DIR$" />
<option value="file://$PROJECT_DIR$/third" />
</list>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/controllers/GBPayfor_act.go" />
<option value="$PROJECT_DIR$/src/sysinit/init_system.go" />
<option value="$PROJECT_DIR$/src/tests/default_test.go" />
<option value="$PROJECT_DIR$/src/views/pay/pay_page.html" />
<option value="$PROJECT_DIR$/src/utils/logs.go" />
<option value="$PROJECT_DIR$/src/views/pay/userInfo.html" />
<option value="$PROJECT_DIR$/src/views/pay_ok.html" />
<option value="$PROJECT_DIR$/src/conf/app.conf" />
<option value="$PROJECT_DIR$/src/models/esshop_jufada.go" />
<option value="$PROJECT_DIR$/src/controllers/default.go" />
<option value="$PROJECT_DIR$/src/models/esshop_lijufu.go" />
<option value="$PROJECT_DIR$/src/models/esshop_0731999.go" />
<option value="$PROJECT_DIR$/src/routers/router.go" />
<option value="$PROJECT_DIR$/src/controllers/notify_transmit.go" />
<option value="$PROJECT_DIR$/src/models/init.go" />
<option value="$PROJECT_DIR$/src/views/index.html" />
<option value="$PROJECT_DIR$/src/views/pay_fail.html" />
<option value="$PROJECT_DIR$/src/static/css/pay.css" />
<option value="$PROJECT_DIR$/src/views/pay_page.html" />
<option value="$PROJECT_DIR$/src/views/pay/scan.html" />
<option value="$PROJECT_DIR$/src/views/pay/payfor.html" />
<option value="$PROJECT_DIR$/src/controllers/home_action.go" />
<option value="$PROJECT_DIR$/src/main.go" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="1760" />
<option name="y" value="141" />
<option name="width" value="1944" />
<option name="height" value="1056" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="merchant" type="b2602c69:ProjectViewProjectNode" />
<item name="merchant" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="merchant" type="b2602c69:ProjectViewProjectNode" />
<item name="merchant" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="merchant" type="b2602c69:ProjectViewProjectNode" />
<item name="merchant" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="controllers" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="DefaultGoTemplateProperty" value="Go File" />
<property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="configurable.Global.GOPATH.is.expanded" value="true" />
<property name="configurable.Module.GOPATH.is.expanded" value="false" />
<property name="configurable.Project.GOPATH.is.expanded" value="true" />
<property name="go.gopath.indexing.explicitly.defined" value="true" />
<property name="go.sdk.automatically.set" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="list.type.of.created.stylesheet" value="CSS" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\gopath\src\merchant\src\static\img" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration default="true" type="GoApplicationRunConfiguration" factoryName="Go Application">
<module name="merchant" />
<working_directory value="$PROJECT_DIR$/" />
<go_parameters value="-i" />
<kind value="FILE" />
<filePath value="$PROJECT_DIR$/" />
<directory value="$PROJECT_DIR$/" />
</configuration>
<configuration name="build-run" type="GoApplicationRunConfiguration" factoryName="Go Application">
<module name="merchant" />
<working_directory value="$PROJECT_DIR$/" />
<go_parameters value="-i" />
<kind value="FILE" />
<filePath value="$PROJECT_DIR$/src/main.go" />
<directory value="$PROJECT_DIR$/" />
</configuration>
<configuration default="true" type="GoTestRunConfiguration" factoryName="Go Test">
<module name="merchant" />
<working_directory value="$PROJECT_DIR$/" />
<go_parameters value="-i" />
<framework value="gotest" />
<kind value="DIRECTORY" />
<directory value="$PROJECT_DIR$/" />
<filePath value="$PROJECT_DIR$/" />
</configuration>
</component>
<component name="ToolWindowManager">
<frame x="1912" y="-8" width="1936" height="1066" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.17571884" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info anchor="right" id="Database" order="3" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Run" order="2" weight="0.32903227" />
<window_info anchor="bottom" id="Version Control" order="9" show_stripe_button="false" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info active="true" anchor="bottom" id="Terminal" order="8" visible="true" weight="0.3483871" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Find" order="1" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="2" />
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/views/pay/payfor.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="350">
<caret line="25" column="40" lean-forward="true" selection-start-line="25" selection-start-column="40" selection-end-line="25" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="8064">
<caret line="576" column="23" lean-forward="true" selection-start-line="576" selection-start-column="23" selection-end-line="576" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1358">
<caret line="111" column="6" selection-start-line="111" selection-start-column="6" selection-end-line="111" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay_page.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="8" column="18" selection-start-line="8" selection-start-column="18" selection-end-line="8" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="32" column="37" selection-start-line="32" selection-start-column="37" selection-end-line="32" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routers/router.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="13" column="40" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/conf/app.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="630">
<caret line="45" column="6" selection-start-line="45" selection-start-column="6" selection-end-line="45" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="32" column="37" selection-start-line="32" selection-start-column="37" selection-end-line="32" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routers/router.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="13" column="40" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/conf/app.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="630">
<caret line="45" column="6" selection-start-line="45" selection-start-column="6" selection-end-line="45" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="32" column="37" lean-forward="true" selection-start-line="32" selection-start-column="37" selection-end-line="32" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routers/router.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="13" column="40" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="40" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/conf/app.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="630">
<caret line="45" column="6" selection-start-line="45" selection-start-column="6" selection-end-line="45" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="56">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/sysinit/init_system.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="12" column="5" selection-start-line="12" selection-start-column="5" selection-end-line="12" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/tests/default_test.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-291">
<caret line="5" column="5" selection-start-line="5" selection-start-column="5" selection-end-line="5" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils/cache.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="11" column="7" lean-forward="true" selection-start-line="11" selection-start-column="7" selection-end-line="11" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routers/commentsRouter________________gopath_kvpay_merchant_src_controllers.go" />
<entry file="file://$PROJECT_DIR$/src/routers/commentsRouter_.go" />
<entry file="file://$PROJECT_DIR$/src/views/pay/pay_page.html" />
<entry file="file://$PROJECT_DIR$/src/utils/logs.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="37" column="14" selection-start-line="37" selection-start-column="14" selection-end-line="37" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils/string_pool.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="336">
<caret line="24" column="4" selection-start-line="24" selection-start-column="4" selection-end-line="24" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/third/src/github.com/astaxie/beego/config.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-68">
<caret line="187" column="15" selection-start-line="187" selection-start-column="5" selection-end-line="187" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/third/src/github.com/astaxie/beego/admin.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="552">
<caret line="383" column="5" selection-start-line="383" selection-start-column="5" selection-end-line="383" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay/toPayfor.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126">
<caret line="9" column="22" lean-forward="true" selection-start-line="9" selection-start-column="22" selection-end-line="9" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay/userInfo.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="35" column="62" lean-forward="true" selection-start-line="35" selection-start-column="62" selection-end-line="35" selection-end-column="62" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/common.go">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="52" lean-forward="true" selection-start-column="52" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/esshop_jufada.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="15" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay_ok.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="30" column="114" selection-start-line="30" selection-start-column="107" selection-end-line="30" selection-end-column="114" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/esshop_lijufu.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="350">
<caret line="25" column="5" selection-start-line="25" selection-start-column="5" selection-end-line="25" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Temp/360zip$Temp/360$1/sendto.php" />
<entry file="file://$USER_HOME$/AppData/Local/Temp/360zip$Temp/360$0/Program.cs" />
<entry file="file://$PROJECT_DIR$/src/models/esshop_0731999.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="18" column="27" selection-start-line="18" selection-start-column="27" selection-end-line="18" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils/AES_ECB.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="14">
<caret line="11" column="7" selection-start-line="11" selection-start-column="7" selection-end-line="11" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/default.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="13" selection-start-line="13" selection-end-line="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/notify_transmit.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="686">
<caret line="55" column="64" selection-start-line="55" selection-start-column="64" selection-end-line="55" selection-end-column="64" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/GBPayfor_act.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="560">
<caret line="40" column="10" selection-start-line="40" selection-start-column="10" selection-end-line="40" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/utils/global.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1736">
<caret line="139" column="5" selection-start-line="139" selection-start-column="5" selection-end-line="139" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay_fail.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="289">
<caret line="33" column="64" selection-start-line="33" selection-start-column="55" selection-end-line="33" selection-end-column="64" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/static/css/pay.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="163">
<caret line="139" column="66" lean-forward="true" selection-start-line="139" selection-start-column="66" selection-end-line="139" selection-end-column="66" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay_page.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1484">
<caret line="69" column="104" selection-start-line="69" selection-start-column="104" selection-end-line="69" selection-end-column="104" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay/scan.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1204">
<caret line="86" column="48" selection-start-line="86" selection-start-column="48" selection-end-line="86" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/views/pay/payfor.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="20" column="46" selection-start-line="20" selection-start-column="46" selection-end-line="20" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/models/init.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="196">
<caret line="14" column="1" lean-forward="true" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/conf/app.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-182">
<caret line="2" column="12" selection-start-line="2" selection-start-column="12" selection-end-line="2" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/controllers/home_action.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="196">
<caret line="14" column="30" selection-start-line="14" selection-start-column="30" selection-end-line="14" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="84">
<caret line="6" selection-start-line="6" selection-end-line="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/routers/router.go">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="21" column="54" selection-start-line="21" selection-start-column="54" selection-end-line="21" selection-end-column="54" />
<folding>
<element signature="e#17#70#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

7
shop/conf/app.conf Normal file
View File

@@ -0,0 +1,7 @@
#基本信息
appname = shop
httpport = 3800
runmode = dev

View File

@@ -0,0 +1,40 @@
/***************************************************
** @Desc : This file for ...收银台对接快一
** @Time : 2018-8-27 13:50
** @Author : Joker
** @File : home_action
** @Last Modified by : Joker
** @Last Modified time: 2018-08-29 17:59:48
** @Software: GoLand
****************************************************/
package controllers
import (
"github.com/astaxie/beego"
"github.com/kvpay/goutils"
)
type HomeAction struct {
beego.Controller
}
/*加载首页及数据*/
func (c *HomeAction) ShowHome() {
//取值
siteName := beego.AppConfig.String("site.name")
orderNo := goutils.NewContext("Joker").GetUUID()
productName := "测试应用-支付功能体验(非商品消费)"
//数据回显
c.Data["siteName"] = siteName
c.Data["pname"] = productName
c.Data["orderNo"] = orderNo
c.TplName = "index.html"
}
func (c *HomeAction) ErrorPage() {
flash := beego.ReadFromRequest(&c.Controller)
error := flash.Data["error"]
c.Data["error"] = error
c.TplName = "error.html"
}

78
shop/controllers/pay.go Normal file
View File

@@ -0,0 +1,78 @@
/***************************************************
** @Desc : This file for ...
** @Time : 2019/12/18 17:16
** @Author : yuebin
** @File : pay
** @Last Modified by : yuebin
** @Last Modified time: 2019/12/18 17:16
** @Software: GoLand
****************************************************/
package controllers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"strconv"
"strings"
)
type PayController struct {
beego.Controller
}
func (c *PayController) Pay() {
orderNo := strings.TrimSpace(c.GetString("orderid"))
flash := beego.NewFlash()
if orderNo == "" {
flash.Error("订单号为空")
flash.Store(&c.Controller)
c.Redirect("/error.html", 302)
return
}
amount := strings.TrimSpace(c.GetString("amount"))
if !c.judgeAmount(amount) {
flash.Error("金额有误")
flash.Store(&c.Controller)
c.Redirect("/error.html", 302)
return
}
isScan := strings.TrimSpace(c.GetString("SCAN"))
isH5 := strings.TrimSpace(c.GetString("H5"))
isKj := strings.TrimSpace(c.GetString("KJ"))
if strings.Contains(isScan, "SCAN") {
//扫码
scanShop := new(ScanShopController)
scanShop.Prepare()
scanShop.Params["orderPrice"] = amount
scanShop.Params["payWayCode"] = isScan
scanShop.Params["orderNo"] = orderNo
response := scanShop.Shop(c.Ctx.Request.Host)
if response.Code == 200 {
str := "/scan.html?" + "orderNo=" + orderNo + "&orderPrice=" + amount + "&qrCode=" + response.Qrcode + "&payWayCode=" + isScan
c.Redirect(str, 302)
} else {
flash.Error("请求失败,生成二维码失败")
flash.Store(&c.Controller)
c.Redirect("/error.html", 302)
}
} else if strings.Contains(isH5, "H5") {
} else if strings.Contains(isKj, "FAST") {
} else {
flash.Error("不存在这样的支付类型")
flash.Store(&c.Controller)
c.Redirect("/error.html", 302)
return
}
}
func (c *PayController) judgeAmount(amount string) bool {
_, err := strconv.ParseFloat(amount, 64)
if err != nil {
logs.Error("输入金额有误")
return false
}
return true
}

View File

@@ -0,0 +1,123 @@
/***************************************************
** @Desc : 模拟商户扫码支付请求
** @Time : 2019/10/26 9:48
** @Author : yuebin
** @File : scan
** @Last Modified by : yuebin
** @Last Modified time: 2019/10/26 9:48
** @Software: GoLand
****************************************************/
package controllers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/httplib"
"github.com/astaxie/beego/logs"
"github.com/skip2/go-qrcode"
"github.com/widuu/gojson"
"juhe/service/utils"
"strings"
)
type ScanShopController struct {
beego.Controller
Params map[string]string
}
type DataJSON struct {
Code int
Msg string
}
type ResponseJSON struct {
Code int
Msg string
OrderNo string
Url string
Qrcode string
}
const (
HOST = "http://localhost:10081"
SCAN_HOST = HOST + "/gateway/scan"
H5_HOST = HOST + "/gateway/h5"
SYT_HOST = HOST + "/gateway/syt"
FAST_HOST = HOST + "/gateway/fast"
NOTIFY_URL = HOST + "/shop/notify"
RETURN_URL = HOST + "/shop/return"
PAY_KEY = "kkkkbmrb9gijhrt0th4naoag"
PAY_SERCET = "ssssbmrb9gijhrt0th4naob0"
)
func (c *ScanShopController) Prepare() {
c.Params = make(map[string]string)
//c.Params["orderNo"] = xid.New().String()
c.Params["productName"] = "测试"
c.Params["orderPeriod"] = "1"
c.Params["osType"] = "1"
c.Params["notifyUrl"] = NOTIFY_URL
c.Params["returnUrl"] = RETURN_URL
c.Params["payKey"] = PAY_KEY
}
func (c *ScanShopController) Shop(requestHost string) *ResponseJSON {
responseJSON := new(ResponseJSON)
reqUrl := SCAN_HOST
keys := utils.SortMap(c.Params)
sign := utils.GetMD5Sign(c.Params, keys, PAY_SERCET)
c.Params["sign"] = sign
req := httplib.Post(reqUrl)
for k, v := range c.Params {
req.Param(k, v)
}
response, err := req.String()
if err != nil {
logs.Error("扫码请求失败")
responseJSON.Code = -1
responseJSON.Msg = response + " ;" + err.Error()
} else {
statusCode := gojson.Json(response).Get("statusCode").Tostring()
if statusCode != "00" {
msg := gojson.Json(response).Get("msg").Tostring()
responseJSON.Code = -1
responseJSON.Msg = msg
} else {
responseJSON.Code = 200
payUrl := gojson.Json(response).Get("payURL").Tostring()
orderNo := gojson.Json(response).Get("orderNo").Tostring()
qrCodePathName := "./static/img/" + orderNo + ".png"
qrCode := "/static/img/" + orderNo + ".png"
GenerateQrcode(payUrl, qrCodePathName)
responseJSON.OrderNo = orderNo
responseJSON.Url = payUrl
responseJSON.Qrcode = "http://" + requestHost + qrCode
}
}
return responseJSON
}
func GenerateQrcode(codeUrl, qrcodePathName string) {
err := qrcode.WriteFile(codeUrl, qrcode.Medium, 256, qrcodePathName)
if err != nil {
logs.Error("generate qrCode fail: ", err)
}
}
func (c *ScanShopController) ScanRender() {
orderNo := strings.TrimSpace(c.GetString("orderNo"))
orderPrice := strings.TrimSpace(c.GetString("orderPrice"))
qrCode := strings.TrimSpace(c.GetString("qrCode"))
payWayCode := strings.TrimSpace(c.GetString("payWayCode"))
if strings.Contains(payWayCode, "UNION") {
c.Data["payTypeName"] = "云闪付app"
c.Data["openApp"] = "云闪付app [扫一扫]"
}
c.Data["qrCode"] = qrCode
c.Data["orderNo"] = orderNo
c.Data["price"] = orderPrice
c.TplName = "pay/scan.html"
}

51
shop/enums/enums.go Normal file
View File

@@ -0,0 +1,51 @@
/***************************************************
** @Desc : This file for 枚举
** @Time : 2018-7-26 10:13
** @Author : Joker
** @File : enums.go
** @Last Modified by : Joker
** @Last Modified time: 2018-08-30 16:32:33
** @Software: GoLand
****************************************************/
package enums
/*支付方式*/
var paySubType = map[string]string{
"": "所有",
"WEIXIN_SCAN": "微信扫码",
"UNION_SCAN": "银联扫码",
"ALI_SCAN": "支付宝扫码",
"WEIXIN_H5": "微信H5",
"ALI_H5": "支付宝H5",
"UNION_FAST": "银联快捷",
}
func GetPaySubType() map[string]string {
return paySubType
}
/*银行编码*/
var bankCode = map[string]string{
"01020000": "ICBC", //工商银行
"01030000": "ABC", //农业银行
"01040000": "BOC", //中国银行
"01050000": "CCB", //建设银行
"03010000": "BOCOM", //交通银行
"03020000": "CNCB", //中信银行
"03030000": "CEB", //中信银行
"03040000": "HXB", //光大银行
"03050000": "CMBC", //民生银行
"03060000": "GDB", //广发银行
"04100000": "PAB", //平安银行
"03080000": "CMB", //招商银行
"03090000": "CIB", //兴业银行
"03170000": "BOHC", //渤海银行
"03200000": "BEAI", //东亚银行
"04012900": "BOS", //上海银行
"04031000": "BCCB", //北京银行
"04083320": "NBBC", //宁波银行
"04243010": "NJBC", //南京银行
"64296510": "CDSBC", //成都银行
}

10
shop/main.go Normal file
View File

@@ -0,0 +1,10 @@
package main
import (
"github.com/astaxie/beego"
_ "juhe/shop/routers"
)
func main() {
beego.Run()
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

14
shop/routers/router.go Normal file
View File

@@ -0,0 +1,14 @@
package routers
import (
"github.com/astaxie/beego"
"juhe/shop/controllers"
)
func init() {
beego.Router("/", &controllers.HomeAction{}, "*:ShowHome") //初始化首页
beego.Router("/pay.html", &controllers.PayController{}, "*:Pay")
beego.Router("/pay_requst.html", &controllers.ScanShopController{})
beego.Router("/scan.html", &controllers.ScanShopController{}, "*:ScanRender")
beego.Router("/error.html", &controllers.HomeAction{}, "*:ErrorPage")
}

238
shop/static/css/cashier.css Normal file
View File

@@ -0,0 +1,238 @@
/* CSS Document */
li, ol, ul {
list-style: outside none none;
}
html, body {
height: 100%;
}
body {
background: #f8f8f8;
}
* {
font-family: Arial,microsoft yahei;
margin: 0;
padding: 0;
}
.tastesdk-box {
background-color: #f8f8f8;
position: relative;
}
/*头部*/
.header{width:100%; height:60px;background: #fefefe;border-bottom: 2px solid #f68452;}
.header .title{width: 1200px;margin: 0 auto;position: relative;}
.header .title .scan_code{display:none;width:190px;height:190px;position: absolute;right: 0px;top: 52px;background: #ffffff;border: 1px solid #dcdcdc;box-shadow:0 0 7px rgba(115, 115, 115, .2);-webkit-box-shadow:0 0 7px rgba(115, 115, 115, .2);-moz-box-shadow:0 0 7px rgba(1115, 115, 115, .2);}
.header .title .scan_code img{width: 160px;height: 160px;padding: 15px;}
.header .title .logo{font-family: "方正正黑简体";font-size:22px;color:#000000;float:left;background: url(../images/icon_logo.png) no-repeat left center;display:inline-block;height: 30px;margin-top: 17px;padding-left: 126px;}
.header .title .logo span{font-size: 24px;color: #9f9f9f;font-family: "微软雅黑";background: url(../images/syt_03.png) no-repeat 8px 4px;display: block;width: 72px;height:30px;}
.header .title .right{float:right; padding-top:16px;}
.header .title .right ul{float:right; padding-top:7px;}
.header .title .right li{float:left; padding-left:15px;font-size:12px;line-height: 17px;height: 17px;}
.header .title .right li span{display:inline-block;color:#868686; background-repeat:no-repeat; background-image:url(../images/icon_header.png);letter-spacing: 1px;}
.icon_info{padding-left:21px; background-position:left top;line-height: 13px;}
.icon_qq{padding-left:22px; background-position:left -13px;}
.icon_phone{padding-left:21px; background-position:left -30px;}
.login{padding-left: 15px;}
.iap_new img{margin-left: 8px;float: right;margin-top: 1px;}
.iap_new:hover .scan_code{display: block;}
.clearfix {
zoom: 1;
}
li {
list-style-image: none;
list-style-position: outside;
list-style-type: none;
}
.header .title .right li {
float: left;
padding-left: 15px;
font-size: 12px;
line-height: 17px;
height: 17px;
}
.header .title .right li span {
display: inline-block;
color: #868686;
background-repeat: no-repeat;
background-image: url(../images/icon_header.png);
letter-spacing: 1px;
}
.icon_info {
padding-left: 21px;
background-position: left top;
line-height: 13px;
}
.tastesdk-box::after {
background-color: #f8f8f8;
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 166px;
z-index: 1;
}
.tastesdk-box .main {
position: relative;
z-index: 2;
}
.main {
margin: 0 auto;
width: 1200px;
}
.tastesdk-box .typedemo {
background-color: #fff;
display: block;
height: 480px;
margin: 50px 0 0;
position: relative;
transition: box-shadow 0.5s cubic-bezier(0, 0, 0.2, 1) 0s;
}
.tastesdk-box .typedemo .tit, .tastesdk-box .typedemo .title {
border-bottom: 1px solid #e5e5e5;
font-size: 16px;
height: 60px;
line-height: 60px;
padding: 0 30px;
}
.tastesdk-box .typedemo .tit span, .tastesdk-box .typedemo .title span {
cursor: pointer;
}
.demo-pc {
padding: 30px 40px 0;
}
.two-step p {
color: #666;
}
.two-step p strong {
color: #333;
display: block;
font-size: 16px;
margin-bottom: 10px;
}
.two-step p span {
color: #fb226b;
}
.two-step .pay-infor {
border: 1px solid #e5e5e5;
margin: 25px 0 20px;
width: 100%;
float:left;
}
.two-step .pay-infor li {
box-sizing: border-box;
float: left;
font-size: 14px;
height: 58px;
line-height: 58px;
text-align: center;
width: 33.3333%;
padding-left: 50px;
text-align: left;
}
.two-step .pay-infor li strong {
color: #fb226b;
font-size: 20px;
}
.two-step .pay-infor li strong span {
font-size: 14px;
}
.two-step h5 {
font-size: 14px;
font-weight: 400;
margin-bottom: 16px;
}
.two-step .pay-label {
border: 1px solid #e5e5e5;
padding: 0 20px 20px;
float:left;
width:100%;
}
.two-step .pay-label li {
display: inline;
float: left;
height: 42px;
margin: 20px 40px 0 0;
position: relative;
width: 150px;
}
.two-step .pay-label li input {
height: 40px;
left: 0;
opacity: 0;
position: absolute;
top: 0;
width: 100%;
}
.two-step .pay-label li input:checked + label {
border-color: #27c8e8;
}
.two-step .pay-label li label {
border: 1px solid #e5e5e5;
left: 0;
text-align: center;
top: 0;
vertical-align: middle;
width: 148px;
}
.two-step .btns, .two-step .pay-label li label {
height: 40px;
line-height: 40px;
position: absolute;
}
.pay-label span {
margin-left: 5px;
}
.two-step .pay-label li label img {
vertical-align: middle;
width: auto;
height:25px;
}
.two-step .btns {
bottom: 10px;
right: 10px;
height: 40px;
line-height: 40px;
position: absolute;
}
.two-step .btns span {
color: #0098b6;
}
.two-step .btns button {
margin-left: 30px;
vertical-align: top;
}
.pcdemo-btn {
background-color: #27c8e8;
border: medium none;
border-radius: 4px;
color: #fff;
height: 40px;
line-height: 40px;
overflow: hidden;
position: relative;
width: 160px;
z-index: 2;
}
.ylzf_list{
display:none;
}
.ylzf_list h5{
margin-top: 20px;
}
.ylzf_list ul li img{
width: 96%;
height: 46px;
line-height: 46px;
}

File diff suppressed because one or more lines are too long

461
shop/static/css/pay.css Normal file
View File

@@ -0,0 +1,461 @@
@charset "UTF-8";
html {
font-size: 62.5%;
font-family: 'helvetica neue', tahoma, arial, 'hiragino sans gb', 'microsoft yahei', 'Simsun', sans-serif
}
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td, hr {
margin: 0;
padding: 0px 2px;
}
body {
line-height: 1.333;
font-size: 12px
}
h1, h2, h3, h4, h5, h6 {
font-size: 100%;
font-family: arial, 'hiragino sans gb', 'microsoft yahei', 'Simsun', sans-serif
}
input, textarea, select, button {
font-size: 12px;
font-weight: normal
}
input[type="button"], input[type="submit"], select, button {
cursor: pointer
}
table {
border-collapse: collapse;
border-spacing: 0
}
address, caption, cite, code, dfn, em, th, var {
font-style: normal;
font-weight: normal
}
li {
list-style: none
}
caption, th {
text-align: left
}
q:before, q:after {
content: ''
}
abbr, acronym {
border: 0;
font-variant: normal
}
sup {
vertical-align: text-top
}
sub {
vertical-align: text-bottom
}
fieldset, img, a img, iframe {
border-width: 0;
border-style: none
}
img {
-ms-interpolation-mode: bicubic
}
textarea {
overflow-y: auto
}
legend {
color: #000
}
a:link, a:visited {
text-decoration: none
}
hr {
height: 0
}
label {
cursor: pointer
}
a {
color: #328CE5
}
a:hover {
color: #2b8ae8;
text-decoration: none
}
a:focus {
outline: none
}
body, .body {
background: #f7f7f7;
height: 100%;
max-width: 640px;
min-width: 300px;
min-height: 100%;
margin: 0 auto;
}
.mod-title {
height: 60px;
line-height: 60px;
text-align: center;
border-bottom: 1px solid #ddd;
background: #fff
}
.ico_log {
display: inline-block;
width: 140px;
height: 38px;
vertical-align: middle;
margin-right: 7px
}
.ico-0 {
background: url("../../static/img/timg.jpg") no-repeat;
background-size:cover;
}
.ico-1 {
background: url("../../static/img/logo_alipay.jpg") no-repeat;
background-size:cover;
}
.ico-2 {
background: url("../images/qq.jpg") no-repeat;
background-size:cover;
}
.ico-3 {
background: url("../images/weixin.jpg") no-repeat;
background-size:cover;
}
.mod-title .text {
font-size: 20px;
color: #333;
font-weight: normal;
vertical-align: middle
}
.mod-ct {
min-width: 300px;
max-width: 640px;
margin: 0 auto;
margin-top: 15px;
margin-bottom: 15px;
padding-bottom: 10px;
background: #fff url("../images/wave.png") top center repeat-x;
text-align: center;
color: #333;
border: 1px solid #e5e5e5;
border-top: none
}
.mod-ct .order {
font-size: 20px;
padding-top: 10px
}
.mod-ct .amount {
font-size: 44px;
margin-top: 10px;
font-weight: 700;
}
.mod-ct .qr-image {
margin-top: 30px
}
.mod-ct .qr-image img {
width: 230px;
height: 230px
}
.mod-ct .detail {
margin-top: 10px;
padding-top: 0px;
padding-bottom: 10px;
}
.mod-ct .detail .arrow .ico-arrow {
display: inline-block;
width: 20px;
height: 11px;
background: url("../images/wechat-pay.png") -25px -100px no-repeat
}
.mod-ct .detail .detail-ct {
display: none;
font-size: 12px;
text-align: right;
line-height: 28px
}
.mod-ct .detail .detail-ct dt {
float: left
}
.mod-ct .detail-open {
border-top: 1px solid #e5e5e5
}
.mod-ct .detail .arrow {
padding: 6px 34px;
border: 1px solid #e5e5e5
}
.mod-ct .detail .arrow .ico-arrow {
display: inline-block;
width: 20px;
height: 11px;
background: url("../images/wechat-pay.png") -25px -100px no-repeat
}
.mod-ct .detail-open .arrow .ico-arrow {
display: inline-block;
width: 20px;
height: 11px;
background: url("../images/wechat-pay.png") 0 -100px no-repeat
}
.mod-ct .detail-open .detail-ct {
display: block
}
.mod-ct .tip {
margin-top: 20px;
border-top: 1px dashed #e5e5e5;
padding: 10px 0;
position: relative
}
.mod-ct .tip .ico-scan {
display: inline-block;
width: 56px;
height: 55px;
background: url("../images/wechat-pay.png") 0 0 no-repeat;
vertical-align: middle;
*display: inline;
*zoom: 1
}
.mod-ct .tip .ico-scan-0 {
display: inline-block;
width: 56px;
height: 55px;
background: url("../images/epay.jpg") 0 0 no-repeat;
vertical-align: middle;
*display: inline;
*zoom: 1
}
.mod-ct .tip .tip-text {
display: inline-block;
vertical-align: middle;
text-align: left;
margin-left: 23px;
font-size: 16px;
line-height: 28px;
*display: inline;
*zoom: 1
}
.mod-ct .tip .dec {
display: inline-block;
width: 22px;
height: 45px;
background: url("../images/wechat-pay.png") 0 -55px no-repeat;
position: absolute;
top: -23px
}
.mod-ct .tip .dec-left {
background-position: 0 -55px;
left: -136px
}
.mod-ct .tip .dec-right {
background-position: -25px -55px;
right: -136px
}
.foot {
text-align: center;
margin: 30px auto;
color: #888888;
font-size: 12px;
line-height: 20px;
font-family: "simsun"
}
.copyRight {
text-align: center;
color: #888888;
margin-bottom: 1px;
}
.copyRight a {
color: #888888;
}
h1 {
font-family: "微软雅黑";
font-size: 15px;
margin: 5px 0;
padding-bottom: 2px;
letter-spacing: 2px;
}
.time-item strong {
background: #3ec742;
color: #fff;
line-height: 25px;
font-size: 15px;
font-family: Arial;
padding: 0 10px;
margin-right: 10px;
border-radius: 5px;
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
}
.item-title {
background: none;
line-height: 25px;
font-size: 24px;
padding: 0 10px;
float: left;
}
.paybtn{
display: inline-block;
width: 100%;
height: 80px;
vertical-align: middle;
padding-top: 10%;
margin-right: 7px
}
.submit_alipay {
font-size:16px;
font-family:Arial;
font-weight:normal;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
border:1px solid #84bbf3;
padding:9px 76px;
text-decoration:none;
background:-moz-linear-gradient( center top, #79bbff 105%, #378de5 0% );
background:-ms-linear-gradient( top, #79bbff 105%, #378de5 0% );
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#378de5');
background:-webkit-gradient( linear, left top, left bottom, color-stop(105%, #79bbff), color-stop(0%, #378de5) );
background-color:#79bbff;
color:#ffffff;
display:inline-block;
text-shadow:1px 1px 0px #528ecc;
-webkit-box-shadow: 0px 0px 0px 0px #bbdaf7;
-moz-box-shadow: 0px 0px 0px 0px #bbdaf7;
box-shadow: 0px 0px 0px 0px #bbdaf7;
}.submit_alipay:active {
position:relative;
top:1px;
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.42857143;
text-align: center;
width:80%;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus {
color: #333;
text-decoration: none;
}
.btn:active,
.btn.active {
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
opacity: .65;
}
.btn-primary {
color: #fff;
background-color: #428bca;
border-color: #357ebd;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
background-color: #3071a9;
border-color: #285e8e;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary .badge {
color: #428bca;
background-color: #fff;
}
/* This css button was generated by css-button-generator.com */

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

BIN
shop/static/img/epay.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
shop/static/img/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
shop/static/img/pay_ok1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
shop/static/img/qq.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
shop/static/img/qqq.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
shop/static/img/timg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
shop/static/img/weixin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
shop/static/img/weixin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
shop/static/img/yinlian.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

43
shop/static/js/base.js Normal file
View File

@@ -0,0 +1,43 @@
/***************************************************
** @Desc : This file for ...基本js
** @Time : 2018-08-27 10:52:14
** @Author : Joker
** @File :
** @Last Modified by : Joker
** @Last Modified time: 2018-08-27 11:12:19
** @Software: HBuilder
****************************************************/
/*限制只能选中一种支付方式*/
$(function () {
$("input[name=SCAN]").click(function () {
$("input[name=WAP]").attr("checked", false);
$("input[name=WY]").attr("checked", false);
$("input[name=KJ]").attr("checked", false);
$("input[name=H5]").attr("checked", false);
});
$("input[name=WAP]").click(function () {
$("input[name=SCAN]").attr("checked", false);
$("input[name=WY]").attr("checked", false);
$("input[name=KJ]").attr("checked", false);
$("input[name=H5]").attr("checked", false);
});
$("input[name=WY]").click(function () {
$("input[name=WAP]").attr("checked", false);
$("input[name=SCAN]").attr("checked", false);
$("input[name=KJ]").attr("checked", false);
$("input[name=H5]").attr("checked", false);
});
$("input[name=KJ]").click(function () {
$("input[name=WAP]").attr("checked", false);
$("input[name=WY]").attr("checked", false);
$("input[name=SCAN]").attr("checked", false);
$("input[name=H5]").attr("checked", false);
});
$("input[name=H5]").click(function () {
$("input[name=WAP]").attr("checked", false);
$("input[name=WY]").attr("checked", false);
$("input[name=SCAN]").attr("checked", false);
$("input[name=KJ]").attr("checked", false);
});
});

4
shop/static/js/jquery-3.2.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
shop/static/js/jquery.cookie.min.js vendored Normal file
View File

@@ -0,0 +1,8 @@
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof exports==="object"){a(require("jquery"))}else{a(jQuery)}}}(function(f){var a=/\+/g;function d(i){return b.raw?i:encodeURIComponent(i)}function g(i){return b.raw?i:decodeURIComponent(i)}function h(i){return d(b.json?JSON.stringify(i):String(i))}function c(i){if(i.indexOf('"')===0){i=i.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{i=decodeURIComponent(i.replace(a," "));return b.json?JSON.parse(i):i}catch(j){}}function e(j,i){var k=b.raw?j:c(j);return f.isFunction(i)?i(k):k}var b=f.cookie=function(q,p,v){if(p!==undefined&&!f.isFunction(p)){v=f.extend({},b.defaults,v);if(typeof v.expires==="number"){var r=v.expires,u=v.expires=new Date();u.setTime(+u+r*86400000)}return(document.cookie=[d(q),"=",h(p),v.expires?"; expires="+v.expires.toUTCString():"",v.path?"; path="+v.path:"",v.domain?"; domain="+v.domain:"",v.secure?"; secure":""].join(""))}var w=q?undefined:{};var s=document.cookie?document.cookie.split("; "):[];for(var o=0,m=s.length;o<m;o++){var n=s[o].split("=");var j=g(n.shift());var k=n.join("=");if(q&&q===j){w=e(k,p);break}if(!q&&(k=e(k))!==undefined){w[j]=k}}return w};b.defaults={};f.removeCookie=function(j,i){if(f.cookie(j)===undefined){return false}f.cookie(j,"",f.extend({},i,{expires:-1}));return !f.cookie(j)}}));

6
shop/static/js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

15
shop/views/error.html Normal file
View File

@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>错误页面</title>
<style>
</style>
</head>
<body>
<div class="container">
<p>{{.error}}</p>
</div>
</body>
</html>

160
shop/views/index.html Normal file
View File

@@ -0,0 +1,160 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{{.siteName}}</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../static/img/icon.ico">
<link href="../static/css/cashier.css" rel="stylesheet">
<style type="text/css">
#maxthon-1eec22d4-0232-4212-8283-6f2ac8f967-iframe {
display: block !important;
position: absolute !important;
visibility: visible !important;
z-index: 2147483647 !important;
border-style: none !important;
opacity: 1 !important;
margin: 0 !important;
padding: 0 !important;
box-shadow: 0 0 5px rgba(0, 0, 0, .3) !important;
border: 1px solid #b3b3b3 !important
}
</style>
</head>
<body style="">
<div class="tastesdk-box">
<div class="header clearfix">
<div class="title">
<p class="logo">
<span style="width: 100%;">{{.siteName}}</span>
</p>
<div class="right">
<div class="clearfix">
<ul class="clearfix">
</ul>
</div>
</div>
</div>
</div>
<div class="main">
<div class="typedemo" style="height: 900px;">
<div class="demo-pc">
<div class="pay-jd">
<form action="/pay.html" method="post" autocomplete="off">
<input type="text" style="display: none" name="orderid" value="{{.orderNo}}">
<div class="two-step">
<p><strong>请您及时付款,以便订单尽快处理!</strong>请您在提交订单后<span>24小时</span>内完成支付,否则订单会自动取消。</p>
<ul class="pay-infor">
<li>商品名称:{{.pname}}</li>
<li>订单编号:<span>{{.orderNo}}</span></li>
</ul>
<ul class="pay-infor">
<li>支付金额:<strong><input type="text" id="amount" name="amount" value="" required>
<span></span></strong></li>
<li class="" style="float: left;">
<button type="submit" class="pcdemo-btn sbpay-btn">立即支付</button>
</li>
</ul>
<h4>扫码支付:</h4>
<ul class="pay-label type">
<li>
<input value="UNION_SCAN" checked="checked" name="SCAN" id="UNION_SCAN" type="radio">
<label for="UNION_SCAN"><img src="../static/img/yunshanfu.jpg" alt="银联扫码"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="ALI_SCAN" name="SCAN" id="ALI_SCAN" type="radio">
<label for="ALI_SCAN"><img src="../static/img/zhifubao.png" alt="支付宝扫码支付"
style="width:100px;height: 35px;"><span></span></label>
</li>
<li>
<input value="WEIXIN_SCAN" name="SCAN" id="WEIXIN_SCAN" type="radio">
<label for="WEIXIN_SCAN"><img src="../static/img/weixin.png" alt="微信扫码支付"
style="width:100px;height: 35px;"><span></span></label>
</li>
</ul>
<h4 style="margin-top: 125px">H5支付(只支持手机端,不支持PC端)</h4>
<ul class="pay-label type">
<li>
<input value="WEIXIN_H5" name="H5" id="WEIXIN_H5" type="radio">
<label for="WEIXIN_H5"><img src="../static/img/weixin.jpg" alt="微信H5"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="ALI_H5" name="H5" id="ALI_H5" type="radio">
<label for="ALI_H5"><img src="../static/img/zhifubao.png" alt="支付宝H5"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h4 style="margin-top: 120px">快捷支付:</h4>
<ul class="pay-label type">
<li>
<input value="04031000" name="KJ" id="beijing_kj" type="radio">
<label for="beijing_kj"><img src="../static/img/beijing_0.jpg" alt="中国北京银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01020000" name="KJ" id="gongshang_kj" type="radio">
<label for="gongshang_kj"><img src="../static/img/gongshang_0.jpg" alt="中国工商银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03030000" name="KJ" id="guangda_kj" type="radio">
<label for="guangda_kj"><img src="../static/img/guangda_0.jpg" alt="中国光大银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01050000" name="KJ" id="jianshe_kj" type="radio">
<label for="jianshe_kj"><img src="../static/img/jieshe_0.jpg" alt="中国建设银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03050000" name="KJ" id="minsheng_kj" type="radio">
<label for="minsheng_kj"><img src="../static/img/minsheng_0.jpg" alt="中国民生银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01030000" name="KJ" id="nongye_kj" type="radio">
<label for="nongye_kj"><img src="../static/img/nongye_0.jpg" alt="中国农业银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="04012900" name="KJ" id="shanghai_kj" type="radio">
<label for="shanghai_kj"><img src="../static/img/shanghai_0.jpg" alt="中国上海银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01000000" name="KJ" id="youzheng_kj" type="radio">
<label for="youzheng_kj"><img src="../static/img/youzheng_0.jpg" alt="中国邮政银行"
style="height: 35px;"><span></span></label>
</li>
</ul>
<input value="CCB" name="bankCode" type="hidden">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../static/js/jquery.min.js"></script>
<script type="text/javascript" src="../static/js/base.js"></script>
<script type="text/javascript">
$("#amount").blur(function () {
var idBank = /([1-9]\d*\.?\d*)|(0\.\d*[1-9])/;
if ($("#amount").val().match(idBank) == null) {
$("#amount").val("");
return false;
}
});
$(function () {
window.location = "/";
});
</script>
</body>
</html>

185
shop/views/indexKV.html Normal file
View File

@@ -0,0 +1,185 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{{.siteName}}</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../static/img/icon.ico">
<link href="../static/css/cashier.css" rel="stylesheet">
<style type="text/css">
#maxthon-1eec22d4-0232-4212-8283-6f2ac8f967-iframe {
display: block !important;
position: absolute !important;
visibility: visible !important;
z-index: 2147483647 !important;
border-style: none !important;
opacity: 1 !important;
margin: 0 !important;
padding: 0 !important;
box-shadow: 0 0 5px rgba(0, 0, 0, .3) !important;
border: 1px solid #b3b3b3 !important
}
</style>
</head>
<body style="">
<div class="tastesdk-box">
<div class="header clearfix">
<div class="title">
<p class="logo" >
<span style="width: 100%;">{{.siteName}}</span>
</p>
<div class="right">
<div class="clearfix">
<ul class="clearfix">
</ul>
</div>
</div>
</div>
</div>
<div class="main">
<div class="typedemo" style="height: 600px;">
<div class="demo-pc">
<div class="pay-jd">
<form action="/payfor.py/" method="post" autocomplete="off">
<input type="text" style="display: none" name="orderid" value="{{.orderNo}}">
<div class="two-step">
<p><strong>请您及时付款,以便订单尽快处理!</strong>请您在提交订单后<span>24小时</span>内完成支付,否则订单会自动取消。</p>
<ul class="pay-infor">
<li>商品名称:{{.pname}}</li>
<li>订单编号:<span>{{.orderNo}}</span></li>
</ul>
<ul class="pay-infor">
<li>支付金额:<strong><input type="number" name="amount" value="" required>
<span></span></strong></li>
</ul>
<h5>扫码支付:</h5>
<ul class="pay-label type">
<li>
<input value="SCAN_YL" name="SCAN" id="SCAN_YL" type="radio">
<label for="SCAN_YL"><img src="../static/img/yinlian.jpg" alt="银联扫码"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="SCAN_ALIPAY" checked="checked" name="SCAN" id="SCAN_ALIPAY"
type="radio">
<label for="SCAN_ALIPAY"><img src="../static/img/zhifubao.png" alt="支付宝扫码支付"
style="width:100px;height: 35px;"><span></span></label>
</li>
<li>
<input value="SCAN_WEIXIN" name="SCAN" id="SCAN_WEIXIN" type="radio">
<label for="SCAN_WEIXIN"><img src="../static/img/weixin.png" alt="微信扫码支付"
style="width:100px;height: 35px;"><span></span></label>
</li>
<li>
<input value="SCAN_QQ" name="SCAN" id="SCAN_QQ" type="radio">
<label for="SCAN_QQ"><img src="../static/img/qqq.jpg" alt="QQ扫码支付"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h5 style="margin-top: 115px">网银支付:</h5>
<ul class="pay-label type">
<li>
<input value="04031000" name="WY" id="beijing_wy" type="radio">
<label for="beijing_wy"><img src="../static/img/beijing_0.jpg" alt="中国北京银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01020000" name="WY" id="gongshang_wy" type="radio">
<label for="gongshang_wy"><img src="../static/img/gongshang_0.jpg" alt="中国工商银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03030000" name="WY" id="guangda_wy" type="radio">
<label for="guangda_wy"><img src="../static/img/guangda_0.jpg" alt="中国光大银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01050000" name="WY" id="jianshe_wy" type="radio">
<label for="jianshe_wy"><img src="../static/img/jieshe_0.jpg" alt="中国建设银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03050000" name="WY" id="minsheng_wy" type="radio">
<label for="minsheng_wy"><img src="../static/img/minsheng_0.jpg" alt="中国民生银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01030000" name="WY" id="nongye_wy" type="radio">
<label for="nongye_wy"><img src="../static/img/nongye_0.jpg" alt="中国农业银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="04012900" name="WY" id="shanghai_wy" type="radio">
<label for="shanghai_wy"><img src="../static/img/shanghai_0.jpg" alt="中国上海银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01000000" name="WY" id="youzheng_wy" type="radio">
<label for="youzheng_wy"><img src="../static/img/youzheng_0.jpg" alt="中国邮政银行"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h5 style="margin-top: 175px">快捷支付:</h5>
<ul class="pay-label type">
<li>
<input value="04031000" name="KJ" id="beijing_kj" type="radio">
<label for="beijing_kj"><img src="../static/img/beijing_0.jpg" alt="中国北京银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01020000" name="KJ" id="gongshang_kj" type="radio">
<label for="gongshang_kj"><img src="../static/img/gongshang_0.jpg" alt="中国工商银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03030000" name="KJ" id="guangda_kj" type="radio">
<label for="guangda_kj"><img src="../static/img/guangda_0.jpg" alt="中国光大银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01050000" name="KJ" id="jianshe_kj" type="radio">
<label for="jianshe_kj"><img src="../static/img/jieshe_0.jpg" alt="中国建设银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03050000" name="KJ" id="minsheng_kj" type="radio">
<label for="minsheng_kj"><img src="../static/img/minsheng_0.jpg" alt="中国民生银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01030000" name="KJ" id="nongye_kj" type="radio">
<label for="nongye_kj"><img src="../static/img/nongye_0.jpg" alt="中国农业银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="04012900" name="KJ" id="shanghai_kj" type="radio">
<label for="shanghai_kj"><img src="../static/img/shanghai_0.jpg" alt="中国上海银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01000000" name="KJ" id="youzheng_kj" type="radio">
<label for="youzheng_kj"><img src="../static/img/youzheng_0.jpg" alt="中国邮政银行"
style="height: 35px;"><span></span></label>
</li>
</ul>
<input value="CCB" name="bankCode" type="hidden">
<div class="" style="float: right;">
<button type="submit" class="pcdemo-btn sbpay-btn">立即支付</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../static/js/jquery.min.js"></script>
<script type="text/javascript" src="../static/js/base.js"></script>
</body>
</html>

View File

@@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>收银台</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../../static/img/icon.ico">
<link rel="stylesheet" type="text/css" href="../../static/css/hy_basic.css">
</head>
<body style="">
<div class="tastesdk-box" style="margin-top: 15%;">
<div class="main">
<div class="typedemo" style="height: 600px;">
<div style="z-index:100;background:#000000;position:absolute;left:0px;top:0px;display:none;"
id="cover"></div>
<div class="container">
<div class="c-box1 clearfix">
<div class="bt_border-green">
<div class="hy-hd0815 vip20130401 c30 clearfix">
<div class="pay_box fl">
<ul class="disc">
{{if eq .statusCode "00"}}
<h3><img src="../../static/img/barcode/joker.png"></h3>
<li>
交易金额:{{.orderPrice}}
</li>
<li>
交易订单号:{{.orderNo}}
</li>
{{else}}
<li>
交易失败:{{.statusMsg}}
</li>
{{end}}
<li>
交易状态:<span id="status">等待支付</span>
</li>
<li>
此订单5分钟内交易有效!
</li>
<br>
<li style="float: right;list-style: none;">
<a href="/youxi" style="text-decoration: none;" class="c00">返回支付页</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../../static/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
//每隔2秒检测cookie中订单状态
var count = 0;
setInterval('getSession()', 3000);
function getSession() {
if (count <= 300) {
$.ajax({
type: "GET",
url: "/queryOrderStatus.py/" +{{.orderNo}},
dataType: "JSON",
success: function (res) {
console.info(res.code);
if (res.code == "9") {
$("#status").val(res.tradeStatus);
window.location.href = "/queryOrder.py/";
}
}
});
count++;
}
}
</script>
</body>
</html>

96
shop/views/pay/scan.html Normal file
View File

@@ -0,0 +1,96 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="apple-mobile-web-app-capable" content="no">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="format-detection" content="telephone=no,email=no">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>
{{.payTypeName}} </title>
<link href="../../static/css/pay.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="body">
<h1 class="mod-title">
<span class="ico_log
ico-0"></span>
</h1>
<div class="mod-ct">
<div class="order">
</div>
<div class="amount" id="money" style="font-size: 8px;">
<label style="color: red;font-size: 30px;">¥{{.price}}</label> </div>
<div class="paybtn" style="display: none;" id="btnalipay">
<div class="payalipaybtn" style="display: none;">
{{.openApp}}
</div>
<h1 style="font-size:1.5em;color:red;">1.截图保存二维码到手机</h1>
<h1 style="font-size:1.5em;color:red;">2.打开对应的app进行支付</h1> <div id="openalipay" style="display: none"></div>
</div>
<div style="color:blue;font-size:13px; display: block;">
方式一直接打开app进行支付APP扫码支付<br/> 方式二截图保存到相册再打开app扫一扫从相册选择图片<br> 温馨提示:请不要重复支付,不要修改金额,否则无法到账 </div> <div class="qrcode-img-wrapper" data-role="qrPayImgWrapper">
<div data-role="qrPayImg" class="qrcode-img-area">
<div class="ui-loading qrcode-loading" data-role="qrPayImgLoading" style="display: none;"></div>
<div style="position: relative;display: inline-block;">
<div id="show_qrcode" style="padding:8px;"></div>
<img src="{{.qrCode}}" width="200px" height="200px">
</div>
</div>
</div>
<div class="time-item" style="padding-top: 5px">
<div class="time-item" id="msg"><h2>付款即时到账,未到账可联系我们。 <br>订单号:{{.orderNo}}</h2></div>
</div>
{{/* <div class="tip">
<div class="tip-text">
<i src="../../static/img/epay.jpg" width="30" height="30"></i> <p id="showtext">打开
各大银行APP [扫一扫]</p>
</div>
</div>*/}}
<div class="tip-text">
</div>
</div>
</div>
<br>
<script type="text/javascript" src="../../static/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
//每隔2秒检测cookie中订单状态
var count = 0;
/*setInterval('getSession()', 3000);
function getSession() {
if (count <= 300) {
$.ajax({
type: "GET",
url: "/queryOrderStatus.py/" +{{.orderNo}},
dataType: "JSON",
success: function (res) {
console.info(res.code);
if (res.code == "9") {
$("#status").val(res.tradeStatus);
window.location.href = "/queryOrder.py/";
}
}
});
count++;
}*/
}
</script>
</body>
</html>

View File

@@ -0,0 +1 @@
{{str2html .bankInfo}}

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<title>收银台</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../../static/img/icon.ico">
</head>
<body>
{{str2html .toPayfor}}
</body>
</html>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>收银台</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../../static/img/icon.ico">
<link rel="stylesheet" type="text/css" href="../../static/css/hy_basic.css">
<link href="../../static/css/cashier.css" rel="stylesheet">
</head>
<body style="">
<form action="/payfor_kj.py/" method="post">
<div class="" style="margin-top: 15%;">
<div class="">
<div class="">
<div style="z-index:100;background:#000000;position:absolute;left:0px;top:0px;display:none;"
id="cover"></div>
<div class="container">
<div class="c-box1 clearfix">
<div class="bt_border-green">
<div class="hy-hd0815 vip20130401 c30 clearfix" style="height: 300px">
<div class="pay_box fl">
<h3 style="position: absolute;left: 200px;"><img
src="../../static/img/pay-icon_user.png">&nbsp;&nbsp;请输入持卡人信息:</h3>
<br><br>
<ul class="disc" style="position: absolute;left: 280px;">
<li><span>身份证号:</span>
<input type="text" id="IDCard" name="IDCard"
style="float: right;width: 148px" required/>
</li>
<li style="list-style: none;">
<span style="font-size: 13px;color: red;" id="vIDCard"></span>
</li>
<li><span>银行卡号:</span>
<input type="text" id="IDBank" name="IDBank"
style="float: right;width: 148px" required/>
</li>
<li style="list-style: none;">
<span style="font-size: 13px;color: red;" id="vIDBank"></span>
</li>
<li><span>持卡人:</span>
<input type="text" id="userId" name="userId"
style="float: right;width: 148px" required/>
</li>
<li><span>银行预留手机号:</span>
<input type="text" id="phone" name="phone" style="float: right;width: 148px"
required/>
</li>
<li style="list-style: none;">
<span style="font-size: 13px;color: red;" id="vphone"></span>
</li>
{{/*<li><span>短信验证码:</span>*/}}
{{/*<input type="text" id="phoneCode" name="phoneCode"*/}}
{{/*style="float: right;width: 148px"*/}}
{{/*required/>*/}}
{{/*<button class="pcdemo-btn sbpay-btn"*/}}
{{/*style="width: 93px;line-height:25px;height:25px;background-color: #9a9a9a;position: absolute; left: 260px"*/}}
{{/*type="button"*/}}
{{/*onclick="javascript:history.go(-1);">重发短信验证码*/}}
{{/*</button>*/}}
{{/*</li>*/}}
</ul>
<div style="position: absolute; margin-top: 200px;left: 380px">
<button class="pcdemo-btn sbpay-btn" style="font-size: 20px" type="submit">提交
</button>
<button class="pcdemo-btn sbpay-btn"
style="width: 43px;background-color: #9a9a9a" type="button"
onclick="javascript:history.go(-1);">返回
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<input type="text" name="kj" value="{{.kj}}" style="display: none"/>
<input type="text" name="orderNo" value="{{.orderNo}}" style="display: none"/>
<input type="text" name="money" value="{{.money}}" style="display: none"/>
<input type="text" name="productName" value="{{.productName}}" style="display: none" />
</form>
<script type="text/javascript" src="../../static/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function () {
$("#IDCard").blur(function () {
var idCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/,
idCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/,
card = $("#IDCard").val();
if (card.match(idCard1) == null && card.match(idCard2) == null) {
$("#vIDCard").html("身份证号输入不合法!");
return false;
} else {
$("#vIDCard").html("");
}
});
$("#IDBank").blur(function () {
var idBank = /^\d{13,}$/;
if ($("#IDBank").val().match(idBank) == null) {
$("#vIDBank").html("银行卡号输入不合法!");
return false;
} else {
$("#vIDBank").html("");
}
});
$("#phone").blur(function () {
var phone = /^[1][3,4,5,7,8][0-9]{9}$/;
if ($("#phone").val().match(phone) == null) {
$("#vphone").html("手机号输入不合法!");
return false;
} else {
$("#vphone").html("");
}
});
});
// function getPhoneCode() {
// $.ajax({
// type: "get",
// url: "",
// success: function (res) {
// if (res.code == "9") {
//
// }
// }
// });
// }
</script>
</body>
</html>

49
shop/views/pay_fail.html Normal file
View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>收银台</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../static/img/icon.ico">
<link rel="stylesheet" type="text/css" href="../static/css/hy_basic.css">
</head>
<body style="">
<div class="tastesdk-box" style="margin-top: 15%;">
<div class="main">
<div class="typedemo" style="height: 600px;">
<div style="z-index:100;background:#000000;position:absolute;left:0px;top:0px;display:none;"
id="cover"></div>
<div class="container">
<div class="c-box1 clearfix">
<div class="bt_border-green">
<div class="hy-hd0815 vip20130401 c30 clearfix">
<div class="pay_box fl">
<h3><img src="../static/img/pay_fail.png">支付失败!</h3>
<ul class="disc">
<li>
银行卡已扣款
<p class="c999">可能是由于网络传输发生故障或延时造成的,请稍后再次查看订单状态,勿重复支付。</p>
</li>
<li>
银行卡未扣款
<p class="c999">请选择其他支付方式完成支付。<a
href="/payfor.py" class="c00">返回支付页</a>
</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

44
shop/views/pay_ok.html Normal file
View File

@@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>收银台</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../static/img/icon.ico">
<link rel="stylesheet" type="text/css" href="../static/css/hy_basic.css">
<link href="../static/css/cashier.css" rel="stylesheet">
</head>
<body style="">
<div class="tastesdk-box" style="margin-top: 15%;">
<div class="main">
<div class="typedemo" style="height: 600px;">
<div style="z-index:100;background:#000000;position:absolute;left:0px;top:0px;display:none;"
id="cover"></div>
<div class="container">
<div class="c-box1 clearfix">
<div class="bt_border-green">
<div class="hy-hd0815 vip20130401 c30 clearfix">
<div class="pay_box fl">
<h3><img src="../static/img/pay_ok1.png">支付成功!</h3>
<ul class="disc">
<li>交易订单号:{{.orderNo}}</li>
<li>付款金额:{{.orderPrice}} 元</li>
<li>交易时间:{{.orderTime}}</li>
<li><button type="button" onclick="javascript:window.location.href='{{.hrefUrl}}'" class="pcdemo-btn sbpay-btn">返回商城</button></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

155
shop/views/pay_page.html Normal file
View File

@@ -0,0 +1,155 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{{.siteName}}</title>
<link rel="shortcut icon" type="tmpay/image/x-icon" href="../static/img/icon.ico">
<link href="../static/css/cashier.css" rel="stylesheet">
<style type="text/css">
#maxthon-1eec22d4-0232-4212-8283-6f2ac8f967-iframe {
display: block !important;
position: absolute !important;
visibility: visible !important;
z-index: 2147483647 !important;
border-style: none !important;
opacity: 1 !important;
margin: 0 !important;
padding: 0 !important;
box-shadow: 0 0 5px rgba(0, 0, 0, .3) !important;
border: 1px solid #b3b3b3 !important
}
</style>
</head>
<body style="">
<div class="tastesdk-box">
<div class="header clearfix">
<div class="title">
<p class="logo">
<span style="width: 100%;">{{.siteName}}</span>
</p>
<div class="right">
<div class="clearfix">
<ul class="clearfix">
</ul>
</div>
</div>
</div>
</div>
<div class="main">
<div class="typedemo" style="height: 900px;">
<div class="demo-pc">
<div class="pay-jd">
<form action="/payfor.py/" method="post" autocomplete="off">
<input type="text" style="display: none" name="orderid" value="{{.orderNo}}">
<input type="text" style="display: none" name="shopName" value="{{.shopName}}">
<input type="text" style="display: none" name="productName" value="{{.productName}}">
<div class="two-step">
<p><strong>请您及时付款,以便订单尽快处理!</strong></p>
<ul class="pay-infor">
<li>商城:{{.shopName}}</li>
<li>商品名称:{{.productName}}</li>
<li>订单编号:<span>{{.orderNo}}</span></li>
<li>商品数量:{{.count}}</li>
<li>商品单价:{{.price}}</li>
</ul>
<ul class="pay-infor">
<li>支付金额:<strong><input style="border: 0px;width: 34px;color: red;" value="{{.allPrice}}" id="amount" name="amount" />
<span></span></strong></li>
<li class="" style="float: left;">
<button type="submit" class="pcdemo-btn sbpay-btn">立即支付</button>
</li>
</ul>
<h4 >扫码支付:</h4>
<ul class="pay-label type" >
<li>
<input value="SCAN_YL" name="SCAN" id="SCAN_YL" type="radio" checked>
<label for="SCAN_YL"><img src="../static/img/yinlian.jpg" alt="银联扫码"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="SCAN_QQ" name="SCAN" id="SCAN_QQ" type="radio">
<label for="SCAN_QQ"><img src="../static/img/qqq.jpg" alt="QQ扫码支付"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h4 style="margin-top: 115px">H5支付</h4>
<ul class="pay-label type">
<li>
<input value="SCAN_YL_H5" name="H5" id="SCAN_YL_H5" type="radio">
<label for="SCAN_YL_H5"><img src="../static/img/yinlian.jpg" alt="银联H5"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h4 style="margin-top: 115px">快捷支付:</h4>
<ul class="pay-label type">
<li>
<input value="04031000" name="KJ" id="beijing_kj" type="radio">
<label for="beijing_kj"><img src="../static/img/beijing_0.jpg" alt="中国北京银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01020000" name="KJ" id="gongshang_kj" type="radio">
<label for="gongshang_kj"><img src="../static/img/gongshang_0.jpg" alt="中国工商银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03030000" name="KJ" id="guangda_kj" type="radio">
<label for="guangda_kj"><img src="../static/img/guangda_0.jpg" alt="中国光大银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01050000" name="KJ" id="jianshe_kj" type="radio">
<label for="jianshe_kj"><img src="../static/img/jieshe_0.jpg" alt="中国建设银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="03050000" name="KJ" id="minsheng_kj" type="radio">
<label for="minsheng_kj"><img src="../static/img/minsheng_0.jpg" alt="中国民生银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01030000" name="KJ" id="nongye_kj" type="radio">
<label for="nongye_kj"><img src="../static/img/nongye_0.jpg" alt="中国农业银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="04012900" name="KJ" id="shanghai_kj" type="radio">
<label for="shanghai_kj"><img src="../static/img/shanghai_0.jpg" alt="中国上海银行"
style="height: 35px;"><span></span></label>
</li>
<li>
<input value="01000000" name="KJ" id="youzheng_kj" type="radio">
<label for="youzheng_kj"><img src="../static/img/youzheng_0.jpg" alt="中国邮政银行"
style="height: 35px;"><span></span></label>
</li>
</ul>
<h4 style="margin-top: 175px">WAP支付(只支持手机端,不支持PC端)</h4>
<ul class="pay-label type">
<li>
<input value="SCAN_QQ_WAP" name="WAP" id="SCAN_QQ_WAP" type="radio">
<label for="SCAN_QQ_WAP"><img src="../static/img/qqq.jpg" alt="QQ-WAP支付"
style="height: 35px;"><span></span></label>
</li>
</ul>
<input value="CCB" name="bankCode" type="hidden">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../static/js/jquery.min.js"></script>
<script type="text/javascript" src="../static/js/base.js"></script>
</body>
</html>