{"id":30366,"date":"2024-11-25T11:45:49","date_gmt":"2024-11-25T03:45:49","guid":{"rendered":"https:\/\/fwq.ai\/blog\/30366\/"},"modified":"2024-11-25T11:45:49","modified_gmt":"2024-11-25T03:45:49","slug":"%e8%af%a6%e8%a7%a3%e5%be%ae%e4%bf%a1%e6%94%af%e4%bb%98%e5%bc%80%e5%8f%91%e4%b9%8b%e5%88%b7%e5%8d%a1%e6%94%af%e4%bb%98%e5%ae%9e%e4%be%8b","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/30366\/","title":{"rendered":"\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b"},"content":{"rendered":"<p>\u672c\u6587\u4ecb\u7ecd\u5fae\u4fe1\u652f\u4ed8\u4e0b\u7684\u5237\u5361\u652f\u4ed8\u7684\u5f00\u53d1\u8fc7\u7a0b\u3002\u5fae\u4fe1\u5237\u5361\u652f\u4ed8\u662f\u6307\u7528\u6237\u6253\u5f00\u5fae\u4fe1\u94b1\u5305\u7684\u5237\u5361\u7684\u754c\u9762\uff0c\u5546\u6237\u626b\u7801\u540e\u63d0\u4ea4\u5b8c\u6210\u652f\u4ed8\u7684\u652f\u4ed8\u8fc7\u7a0b\u3002<\/p>\n<p>&nbsp;<img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/001\/506\/6272809c1ecdaa2978249924f187be75-0.png\" class=\"aligncenter\" title=\"\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b\u63d2\u56fe\" alt=\"\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b\u63d2\u56fe\" \/><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/001\/506\/6272809c1ecdaa2978249924f187be75-1.png\" class=\"aligncenter\" title=\"\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b\u63d2\u56fe1\" alt=\"\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b\u63d2\u56fe1\" \/><\/p>\n<h2>\u4e00\u3001\u5237\u5361\u652f\u4ed8API<\/h2>\n<h3>\u63a5\u53e3\u5730\u5740<\/h3>\n<pre>api.mch.weixin.qq.com\/pay\/micropay<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u662f\u5426\u9700\u8981\u8bc1\u4e66<\/p>\n<p>\u4e0d\u9700\u8981\u3002<\/p>\n<h3>\u8f93\u5165\u53c2\u6570<\/h3>\n<p>\u540d\u79f0 \u53d8\u91cf\u540d \u5fc5\u586b \u7c7b\u578b \u793a\u4f8b\u503c \u63cf\u8ff0<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u516c\u4f17\u8d26\u53f7ID<\/td>\n<td>appid<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>wx8888888888888888<\/td>\n<td>\u5fae\u4fe1\u5206\u914d\u7684\u516c\u4f17\u8d26\u53f7ID\uff08\u4f01\u4e1a\u53f7corpid\u5373\u4e3a\u6b64appId\uff09<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u6237\u53f7<\/td>\n<td>mch_id<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>1900000109<\/td>\n<td>\u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u5907\u53f7<\/td>\n<td>device_info<\/td>\n<td>\u5426<\/td>\n<td>String(32)<\/td>\n<td>013467007045764<\/td>\n<td>\u7ec8\u7aef\u8bbe\u5907\u53f7(\u5546\u6237\u81ea\u5b9a\u4e49\uff0c\u5982\u95e8\u5e97\u7f16\u53f7)<\/td>\n<\/tr>\n<tr>\n<td>\u968f\u673a\u5b57\u7b26\u4e32<\/td>\n<td>nonce_str<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>5K8264ILTKCH16CQ2502SI8ZNMTM67VS<\/td>\n<td>\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d\u3002\u63a8\u8350\u968f\u673a\u6570\u751f\u6210\u7b97\u6cd5<\/td>\n<\/tr>\n<tr>\n<td>\u7b7e\u540d<\/td>\n<td>sign<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>C380BEC2BFD727A4B6845133519F3AD6<\/td>\n<td>\u7b7e\u540d\uff0c\u8be6\u89c1\u7b7e\u540d\u751f\u6210\u7b97\u6cd5<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u54c1\u63cf\u8ff0<\/td>\n<td>body<\/td>\n<td>\u662f<\/td>\n<td>String(128)<\/td>\n<td>image\u5f62\u8c61\u5e97-\u6df1\u5733\u817e\u5927- QQ\u516c\u4ed4<\/td>\n<td>\u5546\u54c1\u7b80\u5355\u63cf\u8ff0\uff0c\u8be5\u5b57\u6bb5\u987b\u4e25\u683c\u6309\u7167\u89c4\u8303\u4f20\u9012\uff0c\u5177\u4f53\u8bf7\u89c1\u53c2\u6570\u89c4\u5b9a<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u54c1\u8be6\u60c5<\/td>\n<td>detail<\/td>\n<td>\u5426<\/td>\n<td>String(6000)<\/td>\n<td>\n<pre>{\r\n\"goods_detail\":[\r\n{\r\n\"goods_id\":\"iphone6s_16G\",\r\n\"wxpay_goods_id\":\"1001\",\r\n\"goods_name\":\"iPhone6s&nbsp;16G\",\r\n\"goods_num\":1,\r\n\"price\":528800,\r\n\"goods_category\":\"123456\",\r\n\"body\":\"\u82f9\u679c\u624b\u673a\"\r\n},\r\n{\r\n\"goods_id\":\"iphone6s_32G\",\r\n\"wxpay_goods_id\":\"1002\",\r\n\"goods_name\":\"iPhone6s&nbsp;32G\",\r\n\"quantity\":1,\r\n\"price\":608800,\r\n\"goods_category\":\"123789\",\r\n\"body\":\"\u82f9\u679c\u624b\u673a\"\r\n}\r\n]\r\n}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/td>\n<td>\n<p>\u5546\u54c1\u8be6\u7ec6\u5217\u8868\uff0c\u4f7f\u7528Json\u683c\u5f0f\uff0c\u4f20\u8f93\u7b7e\u540d\u524d\u8bf7\u52a1\u5fc5\u4f7f\u7528CDATA\u6807\u7b7e\u5c06JSON\u6587\u672c\u4e32\u4fdd\u62a4\u8d77\u6765\u3002<\/p>\n<p>goods_detail []\uff1a<br \/>\u2514 goods_id String \u5fc5\u586b 32 \u5546\u54c1\u7684\u7f16\u53f7<br \/>\u2514 wxpay_goods_id String \u53ef\u9009 32 \u5fae\u4fe1\u652f\u4ed8\u5b9a\u4e49\u7684\u7edf\u4e00\u5546\u54c1\u7f16\u53f7<br \/>\u2514 goods_name String \u5fc5\u586b 256 \u5546\u54c1\u540d\u79f0<br \/>\u2514 goods_num Int \u5fc5\u586b \u5546\u54c1\u6570\u91cf<br \/>\u2514 price Int \u5fc5\u586b \u5546\u54c1\u5355\u4ef7\uff0c\u5355\u4f4d\u4e3a\u5206<br \/>\u2514 goods_category String \u53ef\u9009 32 \u5546\u54c1\u7c7b\u76eeID<br \/>\u2514 body String \u53ef\u9009 1000 \u5546\u54c1\u63cf\u8ff0\u4fe1\u606f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\u9644\u52a0\u6570\u636e<\/td>\n<td>attach<\/td>\n<td>\u5426<\/td>\n<td>String(127)<\/td>\n<td>\u8bf4\u660e<\/td>\n<td>\u9644\u52a0\u6570\u636e\uff0c\u5728\u67e5\u8be2API\u548c\u652f\u4ed8\u901a\u77e5\u4e2d\u539f\u6837\u8fd4\u56de\uff0c\u8be5\u5b57\u6bb5\u4e3b\u8981\u7528\u4e8e\u5546\u6237\u643a\u5e26\u8ba2\u5355\u7684\u81ea\u5b9a\u4e49\u6570\u636e<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u6237\u8ba2\u5355\u53f7<\/td>\n<td>out_trade_no<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>1217752501201407033233368018<\/td>\n<td>\u5546\u6237\u7cfb\u7edf\u5185\u90e8\u7684\u8ba2\u5355\u53f7,32\u4e2a\u5b57\u7b26\u5185\u3001\u53ef\u5305\u542b\u5b57\u6bcd,\u5176\u4ed6\u8bf4\u660e\u89c1\u5546\u6237\u8ba2\u5355\u53f7<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u54c1\u8be6\u60c5<\/td>\n<td>detail<\/td>\n<td>\u5426<\/td>\n<td>String(8192)<\/td>\n<td>\u4e0e\u63d0\u4ea4\u6570\u636e\u4e00\u81f4<\/td>\n<td>\n<p>\u5b9e\u9645\u63d0\u4ea4\u7684\u8fd4\u56de<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\u8ba2\u5355\u91d1\u989d<\/td>\n<td>total_fee<\/td>\n<td>\u662f<\/td>\n<td>Int<\/td>\n<td>888<\/td>\n<td>\u8ba2\u5355\u603b\u91d1\u989d\uff0c\u5355\u4f4d\u4e3a\u5206\uff0c\u53ea\u80fd\u4e3a\u6574\u6570\uff0c\u8be6\u89c1\u652f\u4ed8\u91d1\u989d<\/td>\n<\/tr>\n<tr>\n<td>\u8d27\u5e01\u7c7b\u578b<\/td>\n<td>fee_type<\/td>\n<td>\u5426<\/td>\n<td>String(16)<\/td>\n<td>CNY<\/td>\n<td>\u7b26\u5408ISO4217\u6807\u51c6\u7684\u4e09\u4f4d\u5b57\u6bcd\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4eba\u6c11\u5e01\uff1aCNY\uff0c\u5176\u4ed6\u503c\u5217\u8868\u8be6\u89c1\u8d27\u5e01\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>\u7ec8\u7aefIP<\/td>\n<td>spbill_create_ip<\/td>\n<td>\u662f<\/td>\n<td>String(16)<\/td>\n<td>8.8.8.8<\/td>\n<td>\u8c03\u7528\u5fae\u4fe1\u652f\u4ed8API\u7684\u673a\u5668IP<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u54c1\u6807\u8bb0<\/td>\n<td>goods_tag<\/td>\n<td>\u5426<\/td>\n<td>String(32)<\/td>\n<td>&nbsp;<\/td>\n<td>\u5546\u54c1\u6807\u8bb0\uff0c\u4ee3\u91d1\u5238\u6216\u7acb\u51cf\u4f18\u60e0\u529f\u80fd\u7684\u53c2\u6570\uff0c\u8bf4\u660e\u8be6\u89c1\u4ee3\u91d1\u5238\u6216\u7acb\u51cf\u4f18\u60e0<\/td>\n<\/tr>\n<tr>\n<td>\u6307\u5b9a\u652f\u4ed8\u65b9\u5f0f<\/td>\n<td>limit_pay<\/td>\n<td>\u5426<\/td>\n<td>String(32)<\/td>\n<td>no_credit<\/td>\n<td>no_credit&#8211;\u6307\u5b9a\u4e0d\u80fd\u4f7f\u7528\u4fe1\u7528\u5361\u652f\u4ed8<\/td>\n<\/tr>\n<tr>\n<td>\u6388\u6743\u7801<\/td>\n<td>auth_code<\/td>\n<td>\u662f<\/td>\n<td>String(128)<\/td>\n<td>120061098828009406<\/td>\n<td>\u626b\u7801\u652f\u4ed8\u6388\u6743\u7801\uff0c\u8bbe\u5907\u8bfb\u53d6\u7528\u6237\u5fae\u4fe1\u4e2d\u7684\u6761\u7801\u6216\u8005\u4e8c\u7ef4\u7801\u4fe1\u606f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e3e\u4f8b\u5982\u4e0b\uff1a<\/p>\n<pre>&lt;xml&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;appid&gt;wx2421b1c4370ec43b&lt;\/appid&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;attach&gt;\u8ba2\u5355\u989d\u5916\u63cf\u8ff0&lt;\/attach&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;auth_code&gt;120269300684844649&lt;\/auth_code&gt;\r\n&nbsp;&nbsp;&nbsp;\u5237\u5361\u652f\u4ed8\u6d4b\u8bd5\r\n&nbsp;&nbsp;&nbsp;&lt;device_info&gt;1000&lt;\/device_info&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;goods_tag&gt;&lt;\/goods_tag&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;mch_id&gt;10000100&lt;\/mch_id&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;nonce_str&gt;8aaee146b1dee7cec9100add9b96cbe2&lt;\/nonce_str&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;out_trade_no&gt;1415757673&lt;\/out_trade_no&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;spbill_create_ip&gt;14.17.22.52&lt;\/spbill_create_ip&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;time_expire&gt;&lt;\/time_expire&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;total_fee&gt;1&lt;\/total_fee&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;sign&gt;C29DB7DB1FD4136B84AE35604756362C&lt;\/sign&gt;&lt;\/xml&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u6ce8\uff1a\u53c2\u6570\u503c\u7528XML\u8f6c\u4e49\u5373\u53ef\uff0cCDATA\u6807\u7b7e\u7528\u4e8e\u8bf4\u660e\u6570\u636e\u4e0d\u88abXML\u89e3\u6790\u5668\u89e3\u6790\u3002<\/p>\n<h3>\u8fd4\u56de\u7ed3\u679c<\/h3>\n<p>\u540d\u79f0 \u53d8\u91cf\u540d \u5fc5\u586b \u7c7b\u578b \u793a\u4f8b\u503c \u63cf\u8ff0<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u8fd4\u56de\u72b6\u6001\u7801<\/td>\n<td>return_code<\/td>\n<td>\u662f<\/td>\n<td>String(16)<\/td>\n<td>SUCCESS<\/td>\n<td>SUCCESS\/FAIL&nbsp;<br \/>\u6b64\u5b57\u6bb5\u662f\u901a\u4fe1\u6807\u8bc6\uff0c\u975e\u4ea4\u6613\u6807\u8bc6\uff0c\u4ea4\u6613\u662f\u5426\u6210\u529f\u9700\u8981\u67e5\u770bresult_code\u6765\u5224\u65ad<\/td>\n<\/tr>\n<tr>\n<td>\u8fd4\u56de\u4fe1\u606f<\/td>\n<td>return_msg<\/td>\n<td>\u5426<\/td>\n<td>String(128)<\/td>\n<td>\u7b7e\u540d\u5931\u8d25<\/td>\n<td>\u8fd4\u56de\u4fe1\u606f\uff0c\u5982\u975e\u7a7a\uff0c\u4e3a\u9519\u8bef\u539f\u56e0&nbsp;<br \/>\u7b7e\u540d\u5931\u8d25&nbsp;<br \/>\u53c2\u6570\u683c\u5f0f\u6821\u9a8c\u9519\u8bef<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5f53return_code\u4e3aSUCCESS\u7684\u65f6\u5019\uff0c\u8fd8\u4f1a\u5305\u62ec\u4ee5\u4e0b\u5b57\u6bb5\uff1a<\/p>\n<p>\u540d\u79f0 \u53d8\u91cf\u540d \u5fc5\u586b \u7c7b\u578b \u793a\u4f8b\u503c \u63cf\u8ff0<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u516c\u4f17\u8d26\u53f7ID<\/td>\n<td>appid<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>wx8888888888888888<\/td>\n<td>\u8c03\u7528\u63a5\u53e3\u63d0\u4ea4\u7684\u516c\u4f17\u8d26\u53f7ID<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u6237\u53f7<\/td>\n<td>mch_id<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>1900000109<\/td>\n<td>\u8c03\u7528\u63a5\u53e3\u63d0\u4ea4\u7684\u5546\u6237\u53f7<\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u5907\u53f7<\/td>\n<td>device_info<\/td>\n<td>\u5426<\/td>\n<td>String(32)<\/td>\n<td>013467007045764<\/td>\n<td>\u8c03\u7528\u63a5\u53e3\u63d0\u4ea4\u7684\u7ec8\u7aef\u8bbe\u5907\u53f7\uff0c<\/td>\n<\/tr>\n<tr>\n<td>\u968f\u673a\u5b57\u7b26\u4e32<\/td>\n<td>nonce_str<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>5K8264ILTKCH16CQ2502SI8ZNMTM67VS<\/td>\n<td>\u5fae\u4fe1\u8fd4\u56de\u7684\u968f\u673a\u5b57\u7b26\u4e32<\/td>\n<\/tr>\n<tr>\n<td>\u7b7e\u540d<\/td>\n<td>sign<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>C380BEC2BFD727A4B6845133519F3AD6<\/td>\n<td>\u5fae\u4fe1\u8fd4\u56de\u7684\u7b7e\u540d\uff0c\u8be6\u89c1\u7b7e\u540d\u751f\u6210\u7b97\u6cd5<\/td>\n<\/tr>\n<tr>\n<td>\u4e1a\u52a1\u7ed3\u679c<\/td>\n<td>result_code<\/td>\n<td>\u662f<\/td>\n<td>String(16)<\/td>\n<td>SUCCESS<\/td>\n<td>SUCCESS\/FAIL<\/td>\n<\/tr>\n<tr>\n<td>\u9519\u8bef\u4ee3\u7801<\/td>\n<td>err_code<\/td>\n<td>\u5426<\/td>\n<td>String(32)<\/td>\n<td>SYSTEMERROR<\/td>\n<td>\u8be6\u7ec6\u53c2\u89c1\u9519\u8bef\u5217\u8868<\/td>\n<\/tr>\n<tr>\n<td>\u9519\u8bef\u4ee3\u7801\u63cf\u8ff0<\/td>\n<td>err_code_des<\/td>\n<td>\u5426<\/td>\n<td>String(128)<\/td>\n<td>\u7cfb\u7edf\u9519\u8bef<\/td>\n<td>\u9519\u8bef\u8fd4\u56de\u7684\u4fe1\u606f\u63cf\u8ff0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u5f53return_code \u548cresult_code\u90fd\u4e3aSUCCESS\u7684\u65f6\uff0c\u8fd8\u4f1a\u5305\u62ec\u4ee5\u4e0b\u5b57\u6bb5\uff1a<\/p>\n<p>\u540d\u79f0 \u53d8\u91cf\u540d \u5fc5\u586b \u7c7b\u578b \u793a\u4f8b\u503c \u63cf\u8ff0<\/p>\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\u7528\u6237\u6807\u8bc6<\/td>\n<td>openid<\/td>\n<td>\u662f<\/td>\n<td>String(128)<\/td>\n<td>Y<\/td>\n<td>\u7528\u6237\u5728\u5546\u6237appid \u4e0b\u7684\u552f\u4e00\u6807\u8bc6<\/td>\n<\/tr>\n<tr>\n<td>\u662f\u5426\u5173\u6ce8\u516c\u4f17\u8d26\u53f7<\/td>\n<td>is_subscribe<\/td>\n<td>\u662f<\/td>\n<td>String(1)<\/td>\n<td>Y<\/td>\n<td>\u7528\u6237\u662f\u5426\u5173\u6ce8\u516c\u4f17\u8d26\u53f7\uff0c\u4ec5\u5728\u516c\u4f17\u8d26\u53f7\u7c7b\u578b\u652f\u4ed8\u6709\u6548\uff0c\u53d6\u503c\u8303\u56f4\uff1aY\u6216N;Y-\u5173\u6ce8;N-\u672a\u5173\u6ce8<\/td>\n<\/tr>\n<tr>\n<td>\u4ea4\u6613\u7c7b\u578b<\/td>\n<td>trade_type<\/td>\n<td>\u662f<\/td>\n<td>String(16)<\/td>\n<td>MICROPAY<\/td>\n<td>\u652f\u4ed8\u7c7b\u578b\u4e3aMICROPAY(\u5373\u626b\u7801\u652f\u4ed8)<\/td>\n<\/tr>\n<tr>\n<td>\u4ed8\u6b3e\u94f6\u884c<\/td>\n<td>bank_type<\/td>\n<td>\u662f<\/td>\n<td>String(16)<\/td>\n<td>CMC<\/td>\n<td>\u94f6\u884c\u7c7b\u578b\uff0c\u91c7\u7528\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u94f6\u884c\u6807\u8bc6\uff0c\u503c\u5217\u8868\u8be6\u89c1\u94f6\u884c\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>\u8d27\u5e01\u7c7b\u578b<\/td>\n<td>fee_type<\/td>\n<td>\u5426<\/td>\n<td>String(16)<\/td>\n<td>CNY<\/td>\n<td>\u7b26\u5408ISO 4217\u6807\u51c6\u7684\u4e09\u4f4d\u5b57\u6bcd\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4eba\u6c11\u5e01\uff1aCNY\uff0c\u5176\u4ed6\u503c\u5217\u8868\u8be6\u89c1\u8d27\u5e01\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>\u8ba2\u5355\u91d1\u989d<\/td>\n<td>total_fee<\/td>\n<td>\u662f<\/td>\n<td>Int<\/td>\n<td>888<\/td>\n<td>\u8ba2\u5355\u603b\u91d1\u989d\uff0c\u5355\u4f4d\u4e3a\u5206\uff0c\u53ea\u80fd\u4e3a\u6574\u6570\uff0c\u8be6\u89c1\u652f\u4ed8\u91d1\u989d<\/td>\n<\/tr>\n<tr>\n<td>\u73b0\u91d1\u652f\u4ed8\u8d27\u5e01\u7c7b\u578b<\/td>\n<td>cash_fee_type<\/td>\n<td>\u5426<\/td>\n<td>String(16)<\/td>\n<td>CNY<\/td>\n<td>\u7b26\u5408ISO 4217\u6807\u51c6\u7684\u4e09\u4f4d\u5b57\u6bcd\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4eba\u6c11\u5e01\uff1aCNY\uff0c\u5176\u4ed6\u503c\u5217\u8868\u8be6\u89c1\u8d27\u5e01\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>\u73b0\u91d1\u652f\u4ed8\u91d1\u989d<\/td>\n<td>cash_fee<\/td>\n<td>\u662f<\/td>\n<td>Int<\/td>\n<td>100<\/td>\n<td>\u8ba2\u5355\u73b0\u91d1\u652f\u4ed8\u91d1\u989d\uff0c\u8be6\u89c1\u652f\u4ed8\u91d1\u989d<\/td>\n<\/tr>\n<tr>\n<td>\u5fae\u4fe1\u652f\u4ed8\u8ba2\u5355\u53f7<\/td>\n<td>transaction_id<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>1217752501201407033233368018<\/td>\n<td>\u5fae\u4fe1\u652f\u4ed8\u8ba2\u5355\u53f7<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u6237\u8ba2\u5355\u53f7<\/td>\n<td>out_trade_no<\/td>\n<td>\u662f<\/td>\n<td>String(32)<\/td>\n<td>1217752501201407033233368018<\/td>\n<td>\u5546\u6237\u7cfb\u7edf\u7684\u8ba2\u5355\u53f7\uff0c\u4e0e\u8bf7\u6c42\u4e00\u81f4\u3002<\/td>\n<\/tr>\n<tr>\n<td>\u5546\u5bb6\u6570\u636e\u5305<\/td>\n<td>attach<\/td>\n<td>\u5426<\/td>\n<td>String(128)<\/td>\n<td>123456<\/td>\n<td>\u5546\u5bb6\u6570\u636e\u5305\uff0c\u539f\u6837\u8fd4\u56de<\/td>\n<\/tr>\n<tr>\n<td>\u652f\u4ed8\u5b8c\u6210\u65f6\u95f4<\/td>\n<td>time_end<\/td>\n<td>\u662f<\/td>\n<td>String(14)<\/td>\n<td>20141030133525<\/td>\n<td>\u8ba2\u5355\u751f\u6210\u65f6\u95f4\uff0c\u683c\u5f0f\u4e3ayyyyMMddHHmmss\uff0c\u59822009\u5e7412\u670825\u65e59\u70b910\u520610\u79d2\u8868\u793a\u4e3a20091225091010\u3002\u8be6\u89c1\u65f6\u95f4\u89c4\u5219<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e3e\u4f8b\u5982\u4e0b\uff1a<\/p>\n<pre>&lt;xml&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;return_code&gt;&lt;\/return_code&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;return_msg&gt;&lt;\/return_msg&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;appid&gt;&lt;\/appid&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;mch_id&gt;&lt;\/mch_id&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;device_info&gt;&lt;\/device_info&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;nonce_str&gt;&lt;\/nonce_str&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;sign&gt;&lt;\/sign&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;result_code&gt;&lt;\/result_code&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;openid&gt;&lt;\/openid&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;is_subscribe&gt;&lt;\/is_subscribe&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;trade_type&gt;&lt;\/trade_type&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;bank_type&gt;&lt;\/bank_type&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;total_fee&gt;1&lt;\/total_fee&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;coupon_fee&gt;0&lt;\/coupon_fee&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;fee_type&gt;&lt;\/fee_type&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;transaction_id&gt;&lt;\/transaction_id&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;out_trade_no&gt;&lt;\/out_trade_no&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;attach&gt;&lt;\/attach&gt;\r\n&nbsp;&nbsp;&nbsp;&lt;time_end&gt;&lt;\/time_end&gt;&lt;\/xml&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<h2>\u4e8c\u3001\u5237\u5361\u652f\u4ed8\u7c7b\u5b9e\u73b0<\/h2>\n<p>\u5728\u5fae\u4fe1\u652f\u4ed8\u539f\u6765\u7684\u5fae\u4fe1\u652f\u4ed8\u7c7b\u6587\u4ef6\u4e2d\uff0c\u4eff\u7167\u7edf\u4e00\u652f\u4ed8\u7c7b\u7684\u65b9\u5f0f\uff0c\u6dfb\u52a0\u5237\u5361\u652f\u4ed8\u7c7b\u5982\u4e0b\uff1a<\/p>\n<pre>\/**\r\n&nbsp;*&nbsp;\u5237\u5361\u652f\u4ed8\u63a5\u53e3\u7c7b\r\n&nbsp;*\/\r\nclass&nbsp;MicroPay_pub&nbsp;extends&nbsp;Wxpay_client_pub\r\n{&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;__construct()&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6e\u63a5\u53e3\u94fe\u63a5\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;url&nbsp;=&nbsp;\"https:\/\/api.mch.weixin.qq.com\/pay\/micropay\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6ecurl\u8d85\u65f6\u65f6\u95f4\r\n&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;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;\u751f\u6210\u63a5\u53e3\u53c2\u6570xml\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;createXml()\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u68c0\u6d4b\u5fc5\u586b\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($this-&amp;gt;parameters[\"out_trade_no\"]&nbsp;==&nbsp;null){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;SDKRuntimeException(\"\u7f3a\u5c11\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u5fc5\u586b\u53c2\u6570out_trade_no\uff01\".\"&lt;br&gt;\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elseif($this-&amp;gt;parameters[\"body\"]&nbsp;==&nbsp;null){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;SDKRuntimeException(\"\u7f3a\u5c11\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u5fc5\u586b\u53c2\u6570body\uff01\".\"&lt;br&gt;\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elseif&nbsp;($this-&amp;gt;parameters[\"total_fee\"]&nbsp;==&nbsp;null&nbsp;)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;SDKRuntimeException(\"\u7f3a\u5c11\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u5fc5\u586b\u53c2\u6570total_fee\uff01\".\"&lt;br&gt;\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elseif&nbsp;($this-&amp;gt;parameters[\"auth_code\"]&nbsp;==&nbsp;null)&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;SDKRuntimeException(\"\u7f3a\u5c11\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u5fc5\u586b\u53c2\u6570auth_code\uff01\".\"&lt;br&gt;\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[\"appid\"]&nbsp;=&nbsp;WxPayConf_pub::APPID;\/\/\u516c\u4f17\u8d26\u53f7ID\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[\"mch_id\"]&nbsp;=&nbsp;WxPayConf_pub::MCHID;\/\/\u5546\u6237\u53f7\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[\"spbill_create_ip\"]&nbsp;=&nbsp;$_SERVER['REMOTE_ADDR'];\/\/\u7ec8\u7aefip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[\"nonce_str\"]&nbsp;=&nbsp;$this-&amp;gt;createNoncestr();\/\/\u968f\u673a\u5b57\u7b26\u4e32\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;parameters[\"sign\"]&nbsp;=&nbsp;$this-&amp;gt;getSign($this-&amp;gt;parameters);\/\/\u7b7e\u540d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;var_dump($this-&amp;gt;parameters);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;$this-&amp;gt;arrayToXml($this-&amp;gt;parameters);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}catch&nbsp;(SDKRuntimeException&nbsp;$e)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die($e-&amp;gt;errorMessage());\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>\u539f\u6709\u7684\u57fa\u7840\u7c7b\u548c\u8bf7\u6c42\u7c7b\u4e5f\u5217\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre>\/**\r\n&nbsp;*&nbsp;\u6240\u6709\u63a5\u53e3\u7684\u57fa\u7c7b\r\n&nbsp;*\/\r\nclass&nbsp;Common_util_pub\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;__construct()&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;trimString($value)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret&nbsp;=&nbsp;null;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;!=&nbsp;$value)&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret&nbsp;=&nbsp;$value;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strlen($ret)&nbsp;==&nbsp;0)&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret&nbsp;=&nbsp;null;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$ret;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u4ea7\u751f\u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;createNoncestr(&nbsp;$length&nbsp;=&nbsp;32&nbsp;)&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chars&nbsp;=&nbsp;\"abcdefghijklmnopqrstuvwxyz0123456789\";&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str&nbsp;=\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;$i&nbsp;=&nbsp;0;&nbsp;$i&nbsp;&nbsp;$v)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($urlencode)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$v&nbsp;=&nbsp;urlencode($v);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/$buff&nbsp;.=&nbsp;strtolower($k)&nbsp;.&nbsp;\"=\"&nbsp;.&nbsp;$v&nbsp;.&nbsp;\"&amp;amp;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$buff&nbsp;.=&nbsp;$k&nbsp;.&nbsp;\"=\"&nbsp;.&nbsp;$v&nbsp;.&nbsp;\"&amp;amp;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$reqPar;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strlen($buff)&nbsp;&amp;gt;&nbsp;0)&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$reqPar&nbsp;=&nbsp;substr($buff,&nbsp;0,&nbsp;strlen($buff)-1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$reqPar;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u751f\u6210\u7b7e\u540d\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getSign($Obj)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($Obj&nbsp;as&nbsp;$k&nbsp;=&amp;gt;&nbsp;$v)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Parameters[$k]&nbsp;=&nbsp;$v;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b7e\u540d\u6b65\u9aa4\u4e00\uff1a\u6309\u5b57\u5178\u5e8f\u6392\u5e8f\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ksort($Parameters);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$String&nbsp;=&nbsp;$this-&amp;gt;formatBizQueryParaMap($Parameters,&nbsp;false);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/echo&nbsp;'\u3010string1\u3011'.$String.'';\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b7e\u540d\u6b65\u9aa4\u4e8c\uff1a\u5728string\u540e\u52a0\u5165KEY\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$String&nbsp;=&nbsp;$String.\"&amp;amp;key=\".WxPayConf_pub::KEY;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/echo&nbsp;\"\u3010string2\u3011\".$String.\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b7e\u540d\u6b65\u9aa4\u4e09\uff1aMD5\u52a0\u5bc6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$String&nbsp;=&nbsp;md5($String);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/echo&nbsp;\"\u3010string3\u3011&nbsp;\".$String.\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u7b7e\u540d\u6b65\u9aa4\u56db\uff1a\u6240\u6709\u5b57\u7b26\u8f6c\u4e3a\u5927\u5199\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result_&nbsp;=&nbsp;strtoupper($String);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/echo&nbsp;\"\u3010result\u3011&nbsp;\".$result_.\"\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$result_;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1aarray\u8f6cxml\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;arrayToXml($arr)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml&nbsp;=&nbsp;\"&lt;xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($arr&nbsp;as&nbsp;$key=&amp;gt;$val)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_numeric($val))\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml.=\"\".$val.\"\".$key.\"&amp;gt;\";&nbsp;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml.=\"\".$key.\"&amp;gt;\";&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml.=\"&lt;\/xml&gt;\";\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$xml;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u5c06xml\u8f6c\u4e3aarray\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;xmlToArray($xml)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5c06XML\u8f6c\u4e3aarray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_data&nbsp;=&nbsp;json_decode(json_encode(simplexml_load_string($xml,&nbsp;'SimpleXMLElement',&nbsp;LIBXML_NOCDATA)),&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$array_data;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u4ee5post\u65b9\u5f0f\u63d0\u4ea4xml\u5230\u5bf9\u5e94\u7684\u63a5\u53e3url\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;postXmlCurl($xml,$url,$second=30)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u521d\u59cb\u5316curl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ch&nbsp;=&nbsp;curl_init();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6e\u8d85\u65f6\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,&nbsp;CURLOP_TIMEOUT,&nbsp;$second);\r\n&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);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6eheader\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,&nbsp;CURLOPT_HEADER,&nbsp;FALSE);\r\n&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,&nbsp;CURLOPT_RETURNTRANSFER,&nbsp;TRUE);\r\n&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,&nbsp;CURLOPT_POST,&nbsp;TRUE);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,&nbsp;CURLOPT_POSTFIELDS,&nbsp;$xml);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8fd0\u884ccurl\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;curl_exec($ch);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);\r\n&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;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_close($ch);\r\n&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;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$error&nbsp;=&nbsp;curl_errno($ch);\r\n&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;\r\n&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);\r\n&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&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\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;postXmlSSLCurl($xml,$url,$second=30)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ch&nbsp;=&nbsp;curl_init();\r\n&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);\r\n&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);\r\n&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);\r\n&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);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6e\u8bc1\u4e66\r\n&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;dirname(__FILE__).WxPayConf_pub::SSLCERT_PATH);\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_SSLKEYTYPE,'PEM');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($ch,CURLOPT_SSLKEY,&nbsp;dirname(__FILE__).WxPayConf_pub::SSLKEY_PATH);\r\n&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);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;=&nbsp;curl_exec($ch);\r\n&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);\r\n&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;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$error&nbsp;=&nbsp;curl_errno($ch);\r\n&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;\r\n&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);\r\n&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&nbsp;&nbsp;&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u6253\u5370\u6570\u7ec4\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/\r\n&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;printErr($wording='',$err='')\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r('&lt;pre class=\"brush:php;toolbar:false\"&gt;');\r\n        echo $wording.\"&lt;\/br&gt;\";\r\n        var_dump($err);\r\n        print_r('<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 &#8216;); &nbsp;&nbsp;&nbsp;&nbsp;} } \/** &nbsp;*&nbsp;\u8bf7\u6c42\u578b\u63a5\u53e3\u7684\u57fa\u7c7b &nbsp;*\/ class&nbsp;Wxpay_client_pub&nbsp;extends&nbsp;Common_util_pub&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$parameters;\/\/\u8bf7\u6c42\u53c2\u6570\uff0c\u7c7b\u578b\u4e3a\u5173\u8054\u6570\u7ec4 &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;$response;\/\/\u5fae\u4fe1\u8fd4\u56de\u7684\u54cd\u5e94 &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;$result;\/\/\u8fd4\u56de\u53c2\u6570\uff0c\u7c7b\u578b\u4e3a\u5173\u8054\u6570\u7ec4 &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$url;\/\/\u63a5\u53e3\u94fe\u63a5 &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$curl_timeout;\/\/curl\u8d85\u65f6\u65f6\u95f4 &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u8bbe\u7f6e\u8bf7\u6c42\u53c2\u6570 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;setParameter($parameter,&nbsp;$parameterValue) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;parameters[$this-&gt;trimString($parameter)]&nbsp;=&nbsp;$this-&gt;trimString($parameterValue); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u8bbe\u7f6e\u6807\u914d\u7684\u8bf7\u6c42\u53c2\u6570\uff0c\u751f\u6210\u7b7e\u540d\uff0c\u751f\u6210\u63a5\u53e3\u53c2\u6570xml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;createXml() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;parameters[&#8220;appid&#8221;]&nbsp;=&nbsp;WxPayConf_pub::APPID;\/\/\u516c\u4f17\u8d26\u53f7ID &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;parameters[&#8220;mch_id&#8221;]&nbsp;=&nbsp;WxPayConf_pub::MCHID;\/\/\u5546\u6237\u53f7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;parameters[&#8220;nonce_str&#8221;]&nbsp;=&nbsp;$this-&gt;createNoncestr();\/\/\u968f\u673a\u5b57\u7b26\u4e32 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;parameters[&#8220;sign&#8221;]&nbsp;=&nbsp;$this-&gt;getSign($this-&gt;parameters);\/\/\u7b7e\u540d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;$this-&gt;arrayToXml($this-&gt;parameters); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1apost\u8bf7\u6c42xml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;postXml() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml&nbsp;=&nbsp;$this-&gt;createXml(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;response&nbsp;=&nbsp;$this-&gt;postXmlCurl($xml,$this-&gt;url,$this-&gt;curl_timeout); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;response; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u4f7f\u7528\u8bc1\u4e66post\u8bf7\u6c42xml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;postXmlSSL() &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$xml&nbsp;=&nbsp;$this-&gt;createXml(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;response&nbsp;=&nbsp;$this-&gt;postXmlSSLCurl($xml,$this-&gt;url,$this-&gt;curl_timeout); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;response; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u4f5c\u7528\uff1a\u83b7\u53d6\u7ed3\u679c\uff0c\u9ed8\u8ba4\u4e0d\u4f7f\u7528\u8bc1\u4e66 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;getResult()&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;postXml(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;result&nbsp;=&nbsp;$this-&gt;xmlToArray($this-&gt;response); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;result; &nbsp;&nbsp;&nbsp;&nbsp;} } <\/p>\n<h2>\u4e09\u3001\u53d1\u8d77\u652f\u4ed8<\/h2>\n<p>\u5728\u7a0b\u5e8f\u4e2d\uff0c\u83b7\u5f97\u7528\u6237\u7684\u6388\u6743\u7801\uff0c\u5e76\u586b\u5165\u5230$authcode\u53c2\u6570\u4e2d\u3002\u6388\u6743\u7801\u5c31\u662f\u6761\u7801\u4e0a\u7684\u90a3\u4e00\u4e3218\u4f4d\u7eaf\u6570\u5b57\uff0c\u4ee510\u300111\u300112\u300113\u300114\u300115\u5f00\u5934<\/p>\n<p>\u5176\u4ed6\u53c2\u6570\u5219\u81ea\u52a8\u751f\u6210\u6216\u8005\u624b\u52a8\u8f93\u5165\u6307\u5b9a\u3002<\/p>\n<p>\u8c03\u7528\u51fd\u6570\u5982\u4e0b\u6240\u793a<\/p>\n<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5168\u5c40\u5f15\u5165\u5fae\u4fe1\u652f\u4ed8\u7c7b\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vendor('Wxpay.WxPayPubHelper.WxPayPubHelper');\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u4f7f\u7528\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPay&nbsp;=&nbsp;new&nbsp;MicroPay_pub();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u8bbe\u7f6e\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u53c2\u6570\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPay-&amp;gt;setParameter(\"body\",\"\u65b9\u500d\u5546\u6237\u5237\u5361\u652f\u4ed8\");\/\/\u5546\u54c1\u63cf\u8ff0\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPay-&amp;gt;setParameter(\"out_trade_no\",&nbsp;\"$out_trade_no\");\/\/\u5546\u6237\u8ba2\u5355\u53f7&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPay-&amp;gt;setParameter(\"total_fee\",&nbsp;$total_fee);\/\/\u603b\u91d1\u989d&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPay-&amp;gt;setParameter(\"auth_code\",&nbsp;$authcode);\/\/\u6388\u6743\u7801\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u83b7\u53d6\u7edf\u4e00\u652f\u4ed8\u63a5\u53e3\u7ed3\u679c\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$microPayResult&nbsp;=&nbsp;$microPay-&amp;gt;getResult();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/3.&nbsp;\u5f02\u5e38\u5224\u65ad\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isset($microPayResult[\"result_code\"])&nbsp;||&nbsp;($microPayResult[\"result_code\"]&nbsp;==&nbsp;\"FAIL\"))&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&amp;gt;resRpcError(isset($microPayResult['result_code'])&nbsp;?&nbsp;$microPayResult['err_code_des']&nbsp;:&nbsp;$microPayResult['return_msg'],&nbsp;\"21000\");\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u3010\u76f8\u5173\u63a8\u8350\u3011<\/p>\n<p>1. <\/p>\n<p>2.&nbsp;<\/p>\n<p>3.&nbsp;<\/p>\n<p>4.&nbsp;<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u8be6\u89e3\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u4e4b\u5237\u5361\u652f\u4ed8\u5b9e\u4f8b\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>\u672c\u6587\u4ecb\u7ecd\u5fae\u4fe1\u652f\u4ed8\u4e0b\u7684\u5237\u5361\u652f\u4ed8\u7684\u5f00\u53d1\u8fc7\u7a0b\u3002\u5fae\u4fe1\u5237\u5361\u652f\u4ed8\u662f\u6307\u7528\u6237\u6253\u5f00\u5fae\u4fe1\u94b1\u5305\u7684\u5237\u5361\u7684\u754c\u9762\uff0c\u5546\u6237\u626b\u7801\u540e\u63d0\u4ea4\u5b8c\u6210\u652f\u4ed8\u7684\u652f\u4ed8\u8fc7\u7a0b\u3002 &nbsp; \u4e00\u3001\u5237\u5361\u652f\u4ed8API \u63a5\u53e3\u5730\u5740 api.mch.weixin.qq.com\/pay\/micropay \u767b\u5f55\u540e\u590d\u5236 \u662f\u5426\u9700\u8981\u8bc1\u4e66 \u4e0d\u9700\u8981\u3002 \u8f93\u5165\u53c2\u6570 \u540d\u79f0 \u53d8\u91cf\u540d \u5fc5\u586b \u7c7b\u578b \u793a\u4f8b\u503c \u63cf\u8ff0 \u516c\u4f17\u8d26\u53f7ID appid \u662f String(32) wx8888888888888888 \u5fae\u4fe1\u5206\u914d\u7684\u516c\u4f17\u8d26\u53f7ID\uff08\u4f01\u4e1a\u53f7corpid\u5373\u4e3a\u6b64appId\uff09 \u5546\u6237\u53f7 mch_id \u662f String(32) 1900000109 \u5fae\u4fe1\u652f\u4ed8\u5206\u914d\u7684\u5546\u6237\u53f7 \u8bbe\u5907\u53f7 device_info \u5426 String(32) 013467007045764 \u7ec8\u7aef\u8bbe\u5907\u53f7(\u5546\u6237\u81ea\u5b9a\u4e49\uff0c\u5982\u95e8\u5e97\u7f16\u53f7) \u968f\u673a\u5b57\u7b26\u4e32 nonce_str \u662f String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS \u968f\u673a\u5b57\u7b26\u4e32\uff0c\u4e0d\u957f\u4e8e32\u4f4d\u3002\u63a8\u8350\u968f\u673a\u6570\u751f\u6210\u7b97\u6cd5 \u7b7e\u540d sign \u662f String(32) C380BEC2BFD727A4B6845133519F3AD6 \u7b7e\u540d\uff0c\u8be6\u89c1\u7b7e\u540d\u751f\u6210\u7b97\u6cd5 \u5546\u54c1\u63cf\u8ff0 body \u662f String(128) image\u5f62\u8c61\u5e97-\u6df1\u5733\u817e\u5927- QQ\u516c\u4ed4 \u5546\u54c1\u7b80\u5355\u63cf\u8ff0\uff0c\u8be5\u5b57\u6bb5\u987b\u4e25\u683c\u6309\u7167\u89c4\u8303\u4f20\u9012\uff0c\u5177\u4f53\u8bf7\u89c1\u53c2\u6570\u89c4\u5b9a \u5546\u54c1\u8be6\u60c5 detail \u5426 [&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-30366","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/30366","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=30366"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/30366\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=30366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=30366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=30366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}