diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 216681e..5134eff 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,12 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="e93f11c2-a7d9-4d35-8b1c-8dd18e7f5fef" name="Default" comment=""> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/application/api/controller/User.php" afterPath="$PROJECT_DIR$/application/api/controller/User.php" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/public/cert/apiclient_cert.p12" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/public/cert/apiclient_cert.pem" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/public/cert/apiclient_key.pem" /> + <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/public/cert/证书使用说明.txt" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/application/extra/verify.php" afterPath="$PROJECT_DIR$/application/extra/verify.php" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> @@ -13,11 +18,11 @@ </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file leaf-file-name="User.php" pinned="false" current-in-tab="true"> + <file leaf-file-name="User.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/application/api/controller/User.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-1239"> - <caret line="1486" column="20" lean-forward="true" selection-start-line="1486" selection-start-column="20" selection-end-line="1486" selection-end-column="20" /> + <state relative-caret-position="871"> + <caret line="1550" column="39" lean-forward="false" selection-start-line="1550" selection-start-column="39" selection-end-line="1550" selection-end-column="39" /> <folding> <element signature="e#365#484#0#PHP" expanded="false" /> <element signature="e#490#1228#0#PHP" expanded="false" /> @@ -88,13 +93,12 @@ <file leaf-file-name="Pay.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/application/api/controller/Pay.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="227"> - <caret line="329" column="31" lean-forward="false" selection-start-line="329" selection-start-column="31" selection-end-line="329" selection-end-column="31" /> + <state relative-caret-position="474"> + <caret line="55" column="45" lean-forward="true" selection-start-line="55" selection-start-column="45" selection-end-line="55" selection-end-column="45" /> <folding> <element signature="e#38#68#0#PHP" expanded="true" /> <element signature="e#472#591#0#PHP" expanded="false" /> <element signature="e#597#910#0#PHP" expanded="false" /> - <element signature="e#915#2960#0#PHP" expanded="false" /> <element signature="e#2966#3286#0#PHP" expanded="false" /> <element signature="e#3291#5342#0#PHP" expanded="false" /> <element signature="e#5348#5766#0#PHP" expanded="false" /> @@ -126,6 +130,16 @@ </provider> </entry> </file> + <file leaf-file-name="verify.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/application/extra/verify.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="397"> + <caret line="17" column="6" lean-forward="true" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="6" /> + <folding /> + </state> + </provider> + </entry> + </file> </leaf> </component> <component name="FindInProjectRecents"> @@ -185,10 +199,10 @@ <option value="$PROJECT_DIR$/public/assets/js/backend/order.js" /> <option value="$PROJECT_DIR$/application/admin/lang/zh-cn/order.php" /> <option value="$PROJECT_DIR$/application/admin/controller/Order.php" /> - <option value="$PROJECT_DIR$/application/extra/verify.php" /> <option value="$PROJECT_DIR$/application/nsms/nsms.php" /> <option value="$PROJECT_DIR$/application/api/controller/Pay.php" /> <option value="$PROJECT_DIR$/application/api/controller/User.php" /> + <option value="$PROJECT_DIR$/application/extra/verify.php" /> </list> </option> </component> @@ -207,10 +221,10 @@ </component> <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" /> <component name="ProjectFrameBounds" extendedState="1"> - <option name="x" value="153" /> - <option name="y" value="62" /> + <option name="x" value="-2" /> + <option name="y" value="41" /> <option name="width" value="1776" /> - <option name="height" value="1042" /> + <option name="height" value="1084" /> </component> <component name="ProjectView"> <navigator currentView="ProjectPane" proportions="" version="1"> @@ -227,6 +241,7 @@ <foldersAlwaysOnTop value="true" /> </navigator> <panes> + <pane id="Scratches" /> <pane id="ProjectPane"> <subPane> <expand> @@ -252,23 +267,35 @@ <item name="api" type="2a2b976b:PhpTreeStructureProvider$1" /> <item name="controller" type="2a2b976b:PhpTreeStructureProvider$1" /> </path> + <path> + <item name="areial" type="b2602c69:ProjectViewProjectNode" /> + <item name="areial" type="2a2b976b:PhpTreeStructureProvider$1" /> + <item name="application" type="2a2b976b:PhpTreeStructureProvider$1" /> + <item name="extra" type="2a2b976b:PhpTreeStructureProvider$1" /> + </path> + <path> + <item name="areial" type="b2602c69:ProjectViewProjectNode" /> + <item name="areial" type="2a2b976b:PhpTreeStructureProvider$1" /> + <item name="public" type="2a2b976b:PhpTreeStructureProvider$1" /> + </path> + <path> + <item name="areial" type="b2602c69:ProjectViewProjectNode" /> + <item name="areial" type="2a2b976b:PhpTreeStructureProvider$1" /> + <item name="public" type="2a2b976b:PhpTreeStructureProvider$1" /> + <item name="cert" type="2a2b976b:PhpTreeStructureProvider$1" /> + </path> </expand> <select /> </subPane> </pane> <pane id="Scope" /> - <pane id="Scratches" /> </panes> </component> <component name="PropertiesComponent"> <property name="WebServerToolWindowFactoryState" value="false" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/../scrap1/scrap" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> </component> <component name="RecentsManager"> - <key name="MoveFile.RECENT_KEYS"> - <recent name="D:\htdocs\areial\public\uploads\20191118" /> - <recent name="D:\htdocs\areial\public\uploads" /> - </key> <key name="CopyFile.RECENT_KEYS"> <recent name="D:\htdocs\areial\application" /> <recent name="D:\htdocs\areial\extend" /> @@ -276,6 +303,11 @@ <recent name="D:\htdocs\areial\vendor\overtrue\wechat\src" /> <recent name="D:\htdocs\areial\application\api\controller" /> </key> + <key name="MoveFile.RECENT_KEYS"> + <recent name="D:\htdocs\areial\public\cert" /> + <recent name="D:\htdocs\areial\public\uploads\20191118" /> + <recent name="D:\htdocs\areial\public\uploads" /> + </key> </component> <component name="RunDashboard"> <option name="ruleStates"> @@ -315,7 +347,9 @@ <workItem from="1574641631900" duration="15479000" /> <workItem from="1574669596135" duration="11747000" /> <workItem from="1574727687281" duration="17586000" /> - <workItem from="1574759184313" duration="3844000" /> + <workItem from="1574759184313" duration="4793000" /> + <workItem from="1574814989178" duration="1007000" /> + <workItem from="1574831367903" duration="224000" /> </task> <task id="LOCAL-00001" summary="调试"> <created>1574145133364</created> @@ -328,7 +362,7 @@ <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="251701000" /> + <option name="totallyTimeSpent" value="253881000" /> </component> <component name="TodoView"> <todo-panel id="selected-file"> @@ -340,19 +374,19 @@ </todo-panel> </component> <component name="ToolWindowManager"> - <frame x="153" y="62" width="1776" height="1042" extended-state="1" /> + <frame x="-2" y="41" width="1776" height="1084" extended-state="1" /> <editor active="true" /> <layout> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.14335664" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" /> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1462704" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32912987" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" /> <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.1281768" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> @@ -398,13 +432,6 @@ <watches-manager /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/vendor/overtrue/wechat/src/Factory.php"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="297"> - <caret line="25" column="6" lean-forward="false" selection-start-line="25" selection-start-column="6" selection-end-line="25" selection-end-column="6" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/vendor/overtrue/wechat/src/Kernel/Support/Helpers.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="411"> @@ -683,13 +710,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/application/extra/verify.php"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="100"> - <caret line="4" column="55" lean-forward="true" selection-start-line="4" selection-start-column="55" selection-end-line="4" selection-end-column="55" /> - </state> - </provider> - </entry> <entry file="file://$USER_HOME$/Desktop/助通短信平台账号/php_Nsms_demo.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="0"> @@ -723,22 +743,25 @@ <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="283"> <caret line="15" column="13" lean-forward="false" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" /> - <folding> - <element signature="e#461#1049#0#PHP" expanded="false" /> - <element signature="e#1055#2041#0#PHP" expanded="false" /> - </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/vendor/overtrue/wechat/src/Payment/Order/Client.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="307"> + <caret line="34" column="20" lean-forward="false" selection-start-line="34" selection-start-column="20" selection-end-line="34" selection-end-column="20" /> + <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/application/api/controller/Pay.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="227"> - <caret line="329" column="31" lean-forward="false" selection-start-line="329" selection-start-column="31" selection-end-line="329" selection-end-column="31" /> + <state relative-caret-position="474"> + <caret line="55" column="45" lean-forward="true" selection-start-line="55" selection-start-column="45" selection-end-line="55" selection-end-column="45" /> <folding> <element signature="e#38#68#0#PHP" expanded="true" /> <element signature="e#472#591#0#PHP" expanded="false" /> <element signature="e#597#910#0#PHP" expanded="false" /> - <element signature="e#915#2960#0#PHP" expanded="false" /> <element signature="e#2966#3286#0#PHP" expanded="false" /> <element signature="e#3291#5342#0#PHP" expanded="false" /> <element signature="e#5348#5766#0#PHP" expanded="false" /> @@ -771,8 +794,8 @@ </entry> <entry file="file://$PROJECT_DIR$/application/api/controller/User.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-1239"> - <caret line="1486" column="20" lean-forward="true" selection-start-line="1486" selection-start-column="20" selection-end-line="1486" selection-end-column="20" /> + <state relative-caret-position="871"> + <caret line="1550" column="39" lean-forward="false" selection-start-line="1550" selection-start-column="39" selection-end-line="1550" selection-end-column="39" /> <folding> <element signature="e#365#484#0#PHP" expanded="false" /> <element signature="e#490#1228#0#PHP" expanded="false" /> @@ -839,5 +862,13 @@ </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/application/extra/verify.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="397"> + <caret line="17" column="6" lean-forward="true" selection-start-line="17" selection-start-column="6" selection-end-line="17" selection-end-column="6" /> + <folding /> + </state> + </provider> + </entry> </component> </project> \ No newline at end of file diff --git a/application/extra/verify.php b/application/extra/verify.php index e92ea6e..323c8e5 100644 --- a/application/extra/verify.php +++ b/application/extra/verify.php @@ -19,9 +19,9 @@ return [ 'path'=>'http://q1i4mcfwv.bkt.clouddn.com', //微信支付配置 'wx_pay' => [ - 'app_id' => '', - 'mch_id' => '', - 'key' => '', // 支付 密钥 + 'app_id' => 'wx4300d933e5abd5ba', + 'mch_id' => '1564926431', + 'key' => 'qVlAakIMilfqud0w1WMysBcWhztDKAox', // 支付 密钥 // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书) 'cert_path' => ROOT_PATH.'public/cert/apiclient_cert.pem', // XXX: 绝对路径!!!! diff --git a/public/cert/apiclient_cert.p12 b/public/cert/apiclient_cert.p12 new file mode 100644 index 0000000..72057f9 Binary files /dev/null and b/public/cert/apiclient_cert.p12 differ diff --git a/public/cert/apiclient_cert.pem b/public/cert/apiclient_cert.pem new file mode 100644 index 0000000..0c1647d --- /dev/null +++ b/public/cert/apiclient_cert.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID9jCCAt6gAwIBAgIUaR5cRQKfTyPHdmP4mCl988idQ5YwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMTkxMTI3MDI0NjI2WhcNMjQxMTI1MDI0NjI2WjCBhzETMBEGA1UEAwwK +MTU2NDkyNjQzMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTMwMQYDVQQL +DCrlsbHkuJzku4HnlLLnnIvop4HlvbHlg4/mnI3liqHmnInpmZDlhazlj7gxCzAJ +BgNVBAYMAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKYdpcN4J75F0Y7PYHKqq4qZnS1VXui7JiMzb0d7c8Viq7K+ +Yx0cWJTqsZiJVOdN+zkXTykiTDxZnrraHTKcf+gnZDy0rhnJWA+kEiLcORklBtOU +EOIRreYPa1kYQzH7Eybw9PJAS2B8bO0+deRtOCpVuUQv4K28nx7ogGMTu6RKkggK +keH1UPGHNCzGN6zTTZEkRkd+ps5n4i7+DLdS+GuOfufyWM8jneJrVQ/Uf3yxWRCU +fu8SDRX9sMX+9+Se9uTtC+4l17kP0WgTCgfdG7TjWtIPfBKGFnqMozQMmwDgjsA/ +JJB/vxXvkKdPC+jxsh1K2Bt+/d2R2VAU4JdlMlcCAwEAAaOBgTB/MAkGA1UdEwQC +MAAwCwYDVR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0 +cnVzLmNvbS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2 +QUQzOTc1NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEAlsiryblg +4hFv7jbEWF1+rGGReKV3h5jitzLyOzPcBG1NWsU6t7U6DHDW+sIUsYAkhY+CRGLn +ho2HJwHaptCFUYtZQzNLJqjkYWKgQKdx+6LlQ8bo0IWRBu5Sd4vE8W2AhZ+vLtWm +nCDk4hbsH2NP8E0W8C27Fz4fqlQQ1yCbE2REw2jraY6qxSg0NcfqheZpKj27QjZy +rVEXD3ocZB329teoHf1WnwG+ivNtWEapdyEVONNHaNv7zOhNoHqKB8L7lj1i8NIG +jAeGd5GSpSbyy1YPeVBvWaEFX3C7/2rXKOMVnT2wgtl+N6BmPiy2hRxwcYENDNzZ +8JpEmvVk/kJFlA== +-----END CERTIFICATE----- diff --git a/public/cert/apiclient_key.pem b/public/cert/apiclient_key.pem new file mode 100644 index 0000000..5ff81a1 --- /dev/null +++ b/public/cert/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmHaXDeCe+RdGO +z2ByqquKmZ0tVV7ouyYjM29He3PFYquyvmMdHFiU6rGYiVTnTfs5F08pIkw8WZ66 +2h0ynH/oJ2Q8tK4ZyVgPpBIi3DkZJQbTlBDiEa3mD2tZGEMx+xMm8PTyQEtgfGzt +PnXkbTgqVblEL+CtvJ8e6IBjE7ukSpIICpHh9VDxhzQsxjes002RJEZHfqbOZ+Iu +/gy3Uvhrjn7n8ljPI53ia1UP1H98sVkQlH7vEg0V/bDF/vfknvbk7QvuJde5D9Fo +EwoH3Ru041rSD3wShhZ6jKM0DJsA4I7APySQf78V75CnTwvo8bIdStgbfv3dkdlQ +FOCXZTJXAgMBAAECggEANoa0ypy+Lu6sArx/ZCQxeqVBuoezR6Fmu1c+x6/2KGxi +/6EO15deXENNWEx72hD2zZ6hFVd0vrqMJ7lArERCl+mWNXb5Tu2QQlIQwfCXrXFB +9GE9yXcUJdgZ3HziUZ2gg7/EJ2CDXYB6IMXH3Nsc/Ih277LnhR/M+1BGFD998Eci +llmIqg4cjhmBtpebil4rRM41TEWmXZpBFDZrInKTyOYB0fel0Vcz2AnvfvId61p8 +sQzPmI9c1+h8ZBAYsm+/iqLr/4mLTcBw3BtyxH0fq3Ty1qnvVNAK9gD1j5ePTi+A +dAdzFz0oltXBQQy0XPLeq1sEsvZ1KfR3yEru5KQRgQKBgQDPEQqsJ7hHib3DKBm0 +dcaep2+Gn7YTqdsrDIVIaMIIIbVtzTrbgWDsFm+G77MlcnRAi+XN7kU/n6Z9if1H +hP5/lkcNOSM1BCKq23Q523xwBkypJVi331F56si22bC+iR24e4dK9ofyaXDLvZwJ +uwhCWRvK403KIhpkfrq2HHmn6QKBgQDNXzKOkweMo8miVQJcKI7y2iuhu3STGqQm +op7bDM7vxWZQszbHK1UmVXuSnQRaKlEu2Uy4XXHR2as2gyowS7litw5y0zgCre6Y +W4oq5vnlv6uQT4yFMNU4nzyZC0eYnXm8zqsCFAPMDhj/GJAx84/OzLthNliE722I +2VEhoaHgPwKBgQCSjU0wayxR9XsJFOicgH8C6x5T+dW0NROZdFMg3IP3nWP7QrXV +hcxDS93DcwMoDcmZpWoQRgNc9HGxiGhqpgY55vKCuV3ht/uRUaEBEgcQgmTfkj8o +ZDYWQ8WrJIejUwhl+YfX1oSBXX8ntBssB+PgkZDKF/aGiXyEg+1B1wWDgQKBgQCv +pu2B3iVF18ycaCL1mcbx1UIeOUtyigW9+bbu2ZygnPBus2l1ng1dFR30/xD64VjA +PiENSvcPqiFzJWpPFmVAFhtogFlWiVcZvqmFGjrAk1f0vOUOAf9MR3231FrvIDlA +EG9Y/q9ktuYQQP0LjCsCkD7v3WCGipXfxydKIYlnVwKBgFXHWZFsi1vYnruKVTXL +E0pNIN6G+hDzke8QI2OjK3TYVlkbzGLsYFxg2yQgA+drJoAM8We7L9wJp16+lqFy +45OyP8ubIqrzXaiXSUo1PQw4+f1in+0XD6tA1SH8LBhEwWGsGgBz6MbJrK3atunR +1yy/WwqUyztX4tCqn8NRJGVB +-----END PRIVATE KEY----- diff --git a/public/cert/证书使用说明.txt b/public/cert/证书使用说明.txt new file mode 100644 index 0000000..9a0aab1 --- /dev/null +++ b/public/cert/证书使用说明.txt @@ -0,0 +1,18 @@ +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file