{"id":28484,"date":"2024-11-25T12:27:18","date_gmt":"2024-11-25T04:27:18","guid":{"rendered":"https:\/\/fwq.ai\/blog\/28484\/"},"modified":"2024-11-25T12:27:18","modified_gmt":"2024-11-25T04:27:18","slug":"%e5%b0%8f%e7%a8%8b%e5%ba%8f%e5%bc%80%e5%8f%91%e4%b9%8b%e4%bc%81%e4%b8%9a%e4%bb%98%e6%ac%be","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/28484\/","title":{"rendered":"\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u4e4b\u4f01\u4e1a\u4ed8\u6b3e"},"content":{"rendered":"<p><span>new<\/a>&#8216;, courier; font-size: 13px;&#8221;&gt;\u5199\u8fd9\u7bc7\u6587\u7ae0\u7684\u76ee\u7684\u4e3b\u8981\u662f\u7531\u4e8e\u5728\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u63d0\u4f9b\u7684sdk\u4e2d\u5e76\u6ca1\u6709\u63d0\u4f9b\u6b64\u529f\u80fd\u7684sdk\u5b9e\u73b0\uff0c<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u5176\u5b9e\u6700\u540e\u5b9e\u73b0\u8fd8\u662f\u501f\u52a9&nbsp;\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u5f00\u53d1\u6587\u6863&nbsp;\u548c SDK \u3002<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u4f01\u4e1a\u4ed8\u6b3e\u7684\u5e94\u7528\u573a\u666f\uff1a \u516c\u4f17\u53f7\u5411\u5df2\u5173\u6ce8\u7528\u6237\u4ed8\u6b3e\uff0c\u6bd4\u5982\u5904\u7406\u9000\u6b3e\u3001\u8d22\u52a1\u7ed3\u7b97\u7b49<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u5148\u8bf4\u4e00\u4e0b\u5b9e\u73b0\u601d\u8def\uff1a<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u5728SDK\u4e2d\u81ea\u5e26\u7684\u57fa\u7840\u4e0a\u6269\u5c55WxMchPay\u7ec4\u4ef6\uff0c \u5b9e\u73b0\u4f01\u4e1a\u4ed8\u6b3e\u529f\u80fd\u7684\u6269\u5c55\u3002<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u8bdd\u4e0d\u591a\u8bf4\uff0c\u4e0a\u4ee3\u7801\uff0c \u4e0b\u9762\u662fSDK\uff0c\u5b9e\u73b0\u4f01\u4e1a\u4ed8\u6b3e\u7684\u7ec4\u4ef6\uff1a<\/span><\/p>\n<p><span style=\"font-size: 13px\">$parameters\u53c2\u6570\u53c2\u8003\uff1a \u4f01\u4e1a\u4ed8\u6b3e\u7684\u6587\u6863<\/span><\/p>\n<pre>&lt;?php \/\/ \u5f15\u5165SDKimport(&#039;Common.Util.WxPay&#039;);\/**\r\n * \u5fae\u4fe1\u4f01\u4e1a\u4ed8\u6b3e\u64cd\u4f5c\u7c7b\r\n * Author  :  Max.wen\r\n * DateTime: &lt;15\/9\/16 11:00&gt;&nbsp;*\/class&nbsp;WxMchPay&nbsp;extends&nbsp;Wxpay_client_pub\r\n{&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;API&nbsp;\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;array\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'mch_appid'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u516c\u4f17\u53f7APPID\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'mchid'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u5546\u6237\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'device_info'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u8bbe\u5907\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'nonce_str'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u968f\u673a\u5b57\u7b26\u4e32\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'partner_trade_no'&nbsp;&nbsp;#&nbsp;\u5546\u6237\u8ba2\u5355\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'openid'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6536\u6b3e\u7528\u6237openid\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'check_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6821\u9a8c\u7528\u6237\u59d3\u540d\u9009\u9879&nbsp;\u9488\u5bf9\u5b9e\u540d\u8ba4\u8bc1\u7684\u7528\u6237\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'re_user_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6536\u6b3e\u7528\u6237\u59d3\u540d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'amount'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u4ed8\u6b3e\u91d1\u989d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'desc'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u4f01\u4e1a\u4ed8\u6b3e\u63cf\u8ff0\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'spbill_create_ip'&nbsp;&nbsp;#&nbsp;Ip\u5730\u5740\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;'sign'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u7b7e\u540d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;$parameters&nbsp;=&nbsp;[];&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;construct()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;url&nbsp;=&nbsp;'https:\/\/api.mch.weixin.qq.com\/mmpaymkttransfers\/promotion\/transfers';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;curl_timeout&nbsp;=&nbsp;WxPayConf_pub::CURL_TIMEOUT;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u751f\u6210\u8bf7\u6c42xml\u6570\u636e\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;createXml()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters['mch_appid']&nbsp;=&nbsp;WxPayConf_pub::APPID;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters['mchid']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;WxPayConf_pub::MCHID;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters['nonce_str']&nbsp;=&nbsp;$this-&amp;gt;createNoncestr();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters['sign']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;getSign($this-&amp;gt;parameters);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&amp;gt;arrayToXml($this-&amp;gt;parameters);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u4f7f\u7528\u8bc1\u4e66\uff0c\u4ee5post\u65b9\u5f0f\u63d0\u4ea4xml\u5230\u5bf9\u5e94\u7684\u63a5\u53e3url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;postXmlSSLCurl($xml,$url,$second=30)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ch&nbsp;=&nbsp;curl_init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8d85\u65f6\u65f6\u95f4\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_TIMEOUT,$second);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd9\u91cc\u8bbe\u7f6e\u4ee3\u7406\uff0c\u5982\u679c\u6709\u7684\u8bdd\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/curl_setopt($ch,CURLOPT_PROXY,&nbsp;'8.8.8.8');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/curl_setopt($ch,CURLOPT_PROXYPORT,&nbsp;8080);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_URL,&nbsp;$url);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6eheader\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_HEADER,FALSE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8981\u6c42\u7ed3\u679c\u4e3a\u5b57\u7b26\u4e32\u4e14\u8f93\u51fa\u5230\u5c4f\u5e55\u4e0a\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6e\u8bc1\u4e66\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_CAINFO,&nbsp;WxPayConf_pub::SSLROOTCA_PATH);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u4f7f\u7528\u8bc1\u4e66\uff1acert&nbsp;\u4e0e&nbsp;key&nbsp;\u5206\u522b\u5c5e\u4e8e\u4e24\u4e2a.pem\u6587\u4ef6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u9ed8\u8ba4\u683c\u5f0f\u4e3aPEM\uff0c\u53ef\u4ee5\u6ce8\u91ca\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLCERT,&nbsp;WxPayConf_pub::SSLCERT_PATH);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u9ed8\u8ba4\u683c\u5f0f\u4e3aPEM\uff0c\u53ef\u4ee5\u6ce8\u91ca\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLKEY,&nbsp;WxPayConf_pub::SSLKEY_PATH);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/post\u63d0\u4ea4\u65b9\u5f0f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_POST,&nbsp;true);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;curl_exec($ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd4\u56de\u7ed3\u679c\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($data){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$data;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$error&nbsp;=&nbsp;curl_errno($ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"curl\u51fa\u9519\uff0c\u9519\u8bef\u7801:$error\".\"&lt;br&gt;\";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\"&lt;a&gt;\u9519\u8bef\u539f\u56e0\u67e5\u8be2&lt;\/a&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><span style=\"font-size: 13px\">Controller\u5c42\u529f\u80fd\u5b9e\u73b0\uff1a<\/span><\/p>\n<pre>&lt;?php \/**\r\n * Author  :  Max.wen\r\n * DateTime: &lt;15\/9\/20 16:47&gt;&nbsp;*\/namespace&nbsp;HomeController;class&nbsp;TestController&nbsp;extends&nbsp;CommonController\r\n{&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u4f01\u4e1a\u4ed8\u6b3e\u6d4b\u8bd5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;rebate()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;import('Common.Util.WxMchPay');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay&nbsp;=&nbsp;new&nbsp;WxMchPay();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u7528\u6237openid\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('openid',&nbsp;'oy2lbszXkgvlEKThrzqEziKEBzqU');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u5546\u6237\u8ba2\u5355\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('partner_trade_no',&nbsp;'test-'.time());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u6821\u9a8c\u7528\u6237\u59d3\u540d\u9009\u9879\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('check_name',&nbsp;'NO_CHECK');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u4f01\u4e1a\u4ed8\u6b3e\u91d1\u989d&nbsp;&nbsp;\u5355\u4f4d\u4e3a\u5206\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('amount',&nbsp;100);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u4f01\u4e1a\u4ed8\u6b3e\u63cf\u8ff0\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('desc',&nbsp;'\u5f00\u53d1\u6d4b\u8bd5');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u8c03\u7528\u63a5\u53e3\u7684\u673a\u5668IP\u5730\u5740&nbsp;&nbsp;\u81ea\u5b9a\u4e49\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mchPay-&amp;gt;setParameter('spbill_create_ip',&nbsp;'127.0.0.1');&nbsp;#&nbsp;getClientIp()\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u6536\u6b3e\u7528\u6237\u59d3\u540d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$mchPay-&amp;gt;setParameter('re_user_name',&nbsp;'Max&nbsp;wen');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u8bbe\u5907\u4fe1\u606f\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$mchPay-&amp;gt;setParameter('device_info',&nbsp;'dev_server');\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$response&nbsp;=&nbsp;$mchPay-&amp;gt;postXmlSSL();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;!empty($response)&nbsp;)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;simplexml_load_string($response,&nbsp;null,&nbsp;LIBXML_NOCDATA);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;json_encode($data);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;json_encode(&nbsp;array('return_code'&nbsp;=&amp;gt;&nbsp;'FAIL',&nbsp;'return_msg'&nbsp;=&amp;gt;&nbsp;'transfers_\u63a5\u53e3\u51fa\u9519',&nbsp;'return_ext'&nbsp;=&amp;gt;&nbsp;array())&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><span style=\"font-size: 13px\">\u5b8c\u6210\u4e0a\u8ff0\u4e24\u90e8\u5206\u4ee3\u7801\uff0c\u57fa\u672c\u5c31\u53ef\u4ee5\u6210\u529f\u8c03\u7528\u4f01\u4e1a\u4ed8\u6b3eAPI\u4e86\u3002<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u8fd4\u56de\u7ed3\u679c\u7684\u6570\u636e\u7ed3\u6784\u793a\u4f8b\uff1a<\/span><\/p>\n<pre>{\r\n\t\"return_code\":&nbsp;\"SUCCESS\",\r\n\t\"return_msg\":&nbsp;{&nbsp;},\r\n\t\"mch_appid\":&nbsp;\"wx519cae424099ed6b\",\r\n\t\"mchid\":&nbsp;\"1228636402\",\r\n\t\"device_info\":&nbsp;{&nbsp;},\r\n\t\"nonce_str\":&nbsp;\"qjupk84q4iqxkb578hb5h2qiatgcwxwg\",\r\n\t\"result_code\":&nbsp;\"SUCCESS\",\r\n\t\"partner_trade_no\":&nbsp;\"test-1442801966\",\r\n\t\"payment_no\":&nbsp;\"1000018301201509210739170397\",\r\n\t\"payment_time\":&nbsp;\"2015-09-21&nbsp;10:19:26\"\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p><span style=\"font-size: 13px\">\u53ef\u80fd\u9047\u5230\u7684\u95ee\u9898\uff1a<\/span><\/p>\n<p><span style=\"font-size: 13px\">1\u3001CA\u8bc1\u4e66\u9519\u8bef<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u3000\u3000\u5728WxMchPay\u4e2d\u5927\u5bb6\u53ef\u4ee5\u770b\u5230\uff0c\u6211\u91cd\u5199\u4e86SDK\u4e2d&nbsp;Wxpay_client_pub \u7684&nbsp;postXmlSSLCurl()\u65b9\u6cd5<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u3000\u3000\u56e0\u4e3a\u9ed8\u8ba4\u5728SDK\u4e2d\u7684\u8fd9\u4e2a\u65b9\u6cd5\u5728CURL \u7684\u65f6\u5019\u6ca1\u6709\u9644\u5e26CA\u8bc1\u4e66\u3002<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u3000\u3000\u76f8\u6bd4\u4e4b\u4e0b\u5c31\u591a\u4e86&nbsp;<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u3000\u3000<span style=\"color: #0000ff;background-color: #ffffff\">curl_setopt($ch,CURLOPT_CAINFO, WxPayConf_pub::SSLROOTCA_PATH);<\/span>\u3000\u3000\u8fd9\u4e48\u4e00\u884c\u4ee3\u7801\u3002\u3000\u3000<\/span><\/p>\n<p><span style=\"font-size: 13px\">\u3000\u3000\u4f5c\u7528\u5c31\u662f\u8bf7\u6c42\u65f6\u9644\u5e26CA\u8bc1\u4e66\u3002<\/span><\/p>\n<p><span>2\u3001<\/span><span>\u5bf9\u540c\u4e00\u7528\u6237\u8f6c\u8d26\u64cd\u4f5c\u8fc7\u4e8e\u9891\u7e41,\u8bf7\u7a0d\u5019\u91cd\u8bd5.<\/span><\/p>\n<p><span>\u3000\u3000\u8fd9\u4e2a\u9519\u8bef\u5c5e\u4e8e\u5fae\u4fe1\u670d\u52a1\u7aef\u7684\u9650\u5236\uff0c\u5177\u4f53\u9650\u5236\u9891\u7387\u4e5f\u6ca1\u6709\u627e\u5230\u90a3\u91cc\u6709\u8bf4\u660e\uff0c\u4e0d\u8fc7\u7ecf\u8fc7\u5b9e\u9645\u6d4b\u8bd5\u5927\u6982\u57281\u5206\u949f\u5de6\u53f3\u3002<\/span><\/p>\n<p><span>\u3000\u3000\u6240\u4ee5\u5728\u5f00\u53d1\u7684\u65f6\u5019\u8fd8\u9700\u8981\u591a\u6ce8\u610f\u3002<\/span><\/p>\n<p>\u3010\u76f8\u5173\u63a8\u8350\u3011&nbsp;<\/p>\n<p>1. <\/p>\n<p>2. <\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u4e4b\u4f01\u4e1a\u4ed8\u6b3e\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>new&#8216;, courier; font-size: 13px;&#8221;&gt;\u5199\u8fd9\u7bc7\u6587\u7ae0\u7684\u76ee\u7684\u4e3b\u8981\u662f\u7531\u4e8e\u5728\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u63d0\u4f9b\u7684sdk\u4e2d\u5e76\u6ca1\u6709\u63d0\u4f9b\u6b64\u529f\u80fd\u7684sdk\u5b9e\u73b0\uff0c \u5176\u5b9e\u6700\u540e\u5b9e\u73b0\u8fd8\u662f\u501f\u52a9&nbsp;\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u5f00\u53d1\u6587\u6863&nbsp;\u548c SDK \u3002 \u4f01\u4e1a\u4ed8\u6b3e\u7684\u5e94\u7528\u573a\u666f\uff1a \u516c\u4f17\u53f7\u5411\u5df2\u5173\u6ce8\u7528\u6237\u4ed8\u6b3e\uff0c\u6bd4\u5982\u5904\u7406\u9000\u6b3e\u3001\u8d22\u52a1\u7ed3\u7b97\u7b49 \u5148\u8bf4\u4e00\u4e0b\u5b9e\u73b0\u601d\u8def\uff1a \u5728SDK\u4e2d\u81ea\u5e26\u7684\u57fa\u7840\u4e0a\u6269\u5c55WxMchPay\u7ec4\u4ef6\uff0c \u5b9e\u73b0\u4f01\u4e1a\u4ed8\u6b3e\u529f\u80fd\u7684\u6269\u5c55\u3002 \u8bdd\u4e0d\u591a\u8bf4\uff0c\u4e0a\u4ee3\u7801\uff0c \u4e0b\u9762\u662fSDK\uff0c\u5b9e\u73b0\u4f01\u4e1a\u4ed8\u6b3e\u7684\u7ec4\u4ef6\uff1a $parameters\u53c2\u6570\u53c2\u8003\uff1a \u4f01\u4e1a\u4ed8\u6b3e\u7684\u6587\u6863 &lt;?php \/\/ \u5f15\u5165SDKimport(&#039;Common.Util.WxPay&#039;);\/** * \u5fae\u4fe1\u4f01\u4e1a\u4ed8\u6b3e\u64cd\u4f5c\u7c7b * Author : Max.wen * DateTime: &lt;15\/9\/16 11:00&gt;&nbsp;*\/class&nbsp;WxMchPay&nbsp;extends&nbsp;Wxpay_client_pub {&nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;API&nbsp;\u53c2\u6570 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;array &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;mch_appid&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u516c\u4f17\u53f7APPID &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;mchid&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u5546\u6237\u53f7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;device_info&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u8bbe\u5907\u53f7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;nonce_str&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u968f\u673a\u5b57\u7b26\u4e32 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;partner_trade_no&#8217;&nbsp;&nbsp;#&nbsp;\u5546\u6237\u8ba2\u5355\u53f7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;openid&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6536\u6b3e\u7528\u6237openid &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;check_name&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6821\u9a8c\u7528\u6237\u59d3\u540d\u9009\u9879&nbsp;\u9488\u5bf9\u5b9e\u540d\u8ba4\u8bc1\u7684\u7528\u6237 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;re_user_name&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u6536\u6b3e\u7528\u6237\u59d3\u540d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;amount&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u4ed8\u6b3e\u91d1\u989d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;desc&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u4f01\u4e1a\u4ed8\u6b3e\u63cf\u8ff0\u4fe1\u606f &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;spbill_create_ip&#8217;&nbsp;&nbsp;#&nbsp;Ip\u5730\u5740 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&#8216;sign&#8217;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;\u7b7e\u540d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;$parameters&nbsp;=&nbsp;[];&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;construct() &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;url&nbsp;=&nbsp;&#8216;https:\/\/api.mch.weixin.qq.com\/mmpaymkttransfers\/promotion\/transfers&#8217;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;curl_timeout&nbsp;=&nbsp;WxPayConf_pub::CURL_TIMEOUT; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u751f\u6210\u8bf7\u6c42xml\u6570\u636e &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;createXml() &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[&#8216;mch_appid&#8217;]&nbsp;=&nbsp;WxPayConf_pub::APPID;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[&#8216;mchid&#8217;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;WxPayConf_pub::MCHID;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[&#8216;nonce_str&#8217;]&nbsp;=&nbsp;$this-&amp;gt;createNoncestr();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[&#8216;sign&#8217;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;$this-&amp;gt;getSign($this-&amp;gt;parameters);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&amp;gt;arrayToXml($this-&amp;gt;parameters); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u4f7f\u7528\u8bc1\u4e66\uff0c\u4ee5post\u65b9\u5f0f\u63d0\u4ea4xml\u5230\u5bf9\u5e94\u7684\u63a5\u53e3url&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;postXmlSSLCurl($xml,$url,$second=30) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ch&nbsp;=&nbsp;curl_init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8d85\u65f6\u65f6\u95f4 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-28484","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=28484"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28484\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=28484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=28484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=28484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}