{"id":28682,"date":"2024-11-25T15:43:40","date_gmt":"2024-11-25T07:43:40","guid":{"rendered":"https:\/\/fwq.ai\/blog\/28682\/"},"modified":"2024-11-25T15:43:40","modified_gmt":"2024-11-25T07:43:40","slug":"%e5%be%ae%e4%bf%a1%e6%94%af%e4%bb%98%e5%bc%80%e5%8f%91%e6%94%b6%e8%b4%a7%e5%9c%b0%e5%9d%80%e5%85%b1%e4%ba%ab%e6%8e%a5%e5%8f%a3","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/28682\/","title":{"rendered":"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3"},"content":{"rendered":"<p>\u672c\u6587\u4ecb\u7ecd\u5fae\u4fe1\u652f\u4ed8\u4e0b\u7684\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u7684\u5f00\u53d1\u8fc7\u7a0b\u3002<\/p>\n<h3>\u4e00. \u7b80\u4ecb<\/h3>\n<p>\u5fae\u4fe1\u6536\u8d27\u5730\u5740\u5171\u4eab\uff0c\u662f\u6307\u7528\u6237\u5728\u5fae\u4fe1\u6d4f\u89c8\u5668\u5185\u6253\u5f00\u7f51\u9875\uff0c\u586b\u5199\u8fc7\u5730\u5740\u540e\uff0c\u540e\u7eed\u53ef\u4ee5\u514d\u586b\u5199\u652f\u6301\u5feb\u901f\u9009\u62e9\uff0c\u4e5f\u53ef\u589e\u52a0\u548c\u7f16\u8f91\u3002\u6b64\u5730\u5740\u4e3a\u7528\u6237\u5c5e\u6027\uff0c\u53ef\u5728\u5404\u5546\u6237\u7684\u7f51\u9875\u4e2d\u5171\u4eab\u4f7f\u7528\u3002\u652f\u6301\u539f\u751f\u63a7\u4ef6\u586b\u5199\u5730\u5740\uff0c\u5730\u5740\u6570\u636e\u4f1a\u4f20\u9012\u5230\u5546\u6237\u3002<\/p>\n<p>\u5730\u5740\u5171\u4eab\u662f\u57fa\u4e8e\u5fae\u4fe1JavaScript API \u5b9e\u73b0\uff0c\u53ea\u80fd\u5728\u5fae\u4fe1\u5185\u7f6e\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528\uff0c\u5176\u4ed6\u6d4f\u89c8\u5668\u8c03\u7528\u65e0\u6548\u3002\u540c\u65f6\uff0c\u9700\u8981\u5fae\u4fe15.0 \u7248\u672c\u624d\u80fd\u652f\u6301\uff0c\u5efa\u8bae\u901a\u8fc7user agent \u6765\u786e\u5b9a\u7528\u6237\u5f53\u524d\u7684\u7248\u672c\u53f7\u540e\u518d\u8c03\u7528\u5730\u5740\u63a5\u53e3\u3002\u4ee5iPhone \u7248\u672c\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u901a\u8fc7useragent\u53ef\u83b7\u53d6\u5982\u4e0b\u5fae\u4fe1\u7248\u672c\u793a\u4f8b\u4fe1\u606f\uff1a&#8221;Mozilla\/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X)AppleWebKit\/534.46(KHTML,like Geocko) Mobile\/9B206MicroMessenger\/5.0&#8243;\u5176\u4e2d5.0 \u4e3a\u7528\u6237\u5b89\u88c5\u7684\u5fae\u4fe1\u7248\u672c\u53f7\uff0c\u5546\u6237\u53ef\u4ee5\u5224\u5b9a\u7248\u672c\u53f7\u662f\u5426\u9ad8\u4e8e\u6216\u8005\u7b49\u4e8e5.0\u3002<\/p>\n<p>\u5730\u5740\u683c\u5f0f<br \/>\u5fae\u4fe1\u5730\u5740\u5171\u4eab\u4f7f\u7528\u7684\u6570\u636e\u5b57\u6bb5\u5305\u62ec\uff1a<\/p>\n<ul>\n<li>\n<p>\u6536\u8d27\u4eba\u59d3\u540d<\/p>\n<\/li>\n<li>\n<p>\u5730\u533a\uff0c\u7701\u5e02\u533a\u4e09\u7ea7<\/p>\n<\/li>\n<li>\n<p>\u8be6\u7ec6\u5730\u5740<\/p>\n<\/li>\n<li>\n<p>\u90ae\u7f16<\/p>\n<\/li>\n<li>\n<p>\u8054\u7cfb\u7535\u8bdd<\/p>\n<\/li>\n<\/ul>\n<p>\u5176\u4e2d\uff0c\u5730\u533a\u5bf9\u5e94\u662f\u56fd\u6807\u4e09\u7ea7\u5730\u533a\u7801\uff0c\u5982\u201c\u5e7f\u4e1c\u7701-\u5e7f\u5dde\u5e02-\u5929\u6cb3\u533a\u201d\uff0c\u5bf9\u5e94\u7684\u90ae\u7f16\u662f\u662f510630\u3002\u8be6\u60c5\u53c2\u8003\u94fe\u63a5\uff1ahttp:\/\/www.stats.gov.cn\/tjsj\/tjbz\/xzqhdm\/201401\/t20140116_501070.html<\/p>\n<p>&nbsp;<\/p>\n<h3>\u4e8c. OAuth2.0\u6388\u6743<\/h3>\n<p>\u83b7\u53d6\u6536\u8d27\u5730\u5740\u4e4b\u524d\u524d\u9700\u8981\u8c03\u7528 \u767b\u5f55\u6388\u6743\u63a5\u53e3\u83b7\u53d6\u5230\u4e00\u6b21OAuth2.0\u7684Access Token \u3002\u6240\u4ee5\u9700\u8981\u505a\u4e00\u6b21\u6388\u6743\uff0c\u8fd9\u6b21\u6388\u6743\u662f\u4e0d\u5f39\u51fa\u786e\u8ba4\u6846\u7684\u3002<br \/>\u5176\u5b9e\u8d28\u5c31\u662f\u5728\u7528\u6237\u8bbf\u95ee<\/p>\n<\/p>\n<pre>http:\/\/www.fangbei.org\/wxpay\/js_api_call.php<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p><span style=\"line-height: 1.5\">\u65f6\u8df3\u8f6c\u5230<\/span><\/p>\n<\/p>\n<pre>https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=wx8888888888888888&amp;redirect_uri=http:\/\/www.php.cn\/<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u4ee5\u6b64\u6765\u83b7\u5f97code\u53c2\u6570\uff0c\u5e76\u6839\u636ecode\u6765\u83b7\u5f97\u6388\u6743access_token\u53caopenid\uff0c\u8fd9\u4e2aaccess token\u5c06\u7528\u4e8e\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/4f4402e614cf9106d84ffce797b5bd5a-0.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe\" \/><\/p>\n<p>\u5176\u5b9e\u73b0\u7684\u8be6\u7ec6\u6d41\u7a0b\u53ef\u53c2\u8003&nbsp;\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u5f00\u53d1OAuth2.0\u7f51\u9875\u6388\u6743<\/p>\n<p>&nbsp;<\/p>\n<h2>\u4e8c\u3001\u83b7\u53d6\u968f\u673a\u5b57\u7b26\u4e32<\/h2>\n<p>\u751f\u6210\u968f\u673a\u5b57\u7b26\u4e32\u7684\u65b9\u6cd5\u5982\u4e0b<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/4f4402e614cf9106d84ffce797b5bd5a-1.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe1\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe1\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>\u4e09\u3001\u751f\u6210\u7b7e\u540d<\/h2>\n<p>\u53c2\u4e0eaddrSign \u7b7e\u540d\u7684\u5b57\u6bb5\u5305\u62ec\uff1aappId\u3001url\uff08\u8c03\u7528JavaScript API\u7684\u7f51\u9875url\uff09\u3001timestamp\u3001noncestr\u3001accessToken<br \/>\u5bf9\u6240\u6709\u5f85\u7b7e\u540d\u53c2\u6570\u6309\u7167\u5b57\u6bb5\u540d\u7684ASCII \u7801\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\uff08\u5b57\u5178\u5e8f\uff09\u540e\uff0c\u4f7f\u7528URL \u952e\u503c\u5bf9\u7684\u683c\u5f0f\uff08\u5373key1=value1&amp;key2=value2\u2026\uff09\u62fc\u63a5\u6210\u5b57\u7b26\u4e32string1\u3002<br \/>\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\u7684\u662f\u7b7e\u540d\u8fc7\u7a0b\u4e2d\u6240\u6709\u53c2\u6570\u540d\u5747\u4e3a\u5c0f\u5199\u5b57\u7b26\uff0c\u4f8b\u5982appId \u5728\u6392\u5e8f\u540e\u5b57\u7b26\u4e32\u5219\u4e3aappid\uff1b<br \/>\u5bf9string1\u4f5c\u7b7e\u540d\u7b97\u6cd5\uff0c\u5b57\u6bb5\u540d\u548c\u5b57\u6bb5\u503c\u90fd\u91c7\u7528\u539f\u59cb\u503c\uff0c\u4e0d\u8fdb\u884cURL \u8f6c\u4e49\u3002\u5177\u4f53\u7b7e\u540d\u7b97\u6cd5\u4e3aaddrSign = SHA1(string1)\u3002\u8fd9\u91cc\u7ed9\u51fa\u751f\u6210addrSign \u7684\u5177\u4f53\u793a\u4f8b\u5982\u4e0b\uff1a<\/p>\n<\/p>\n<pre>appId=wx17ef1eaef46752cb\r\nurl=http:\/\/open.weixin.qq.com\/\r\ntimeStamp=1384841012\r\nnonceStr=123456\r\naccessToken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p><span style=\"line-height: 1.5\">i\uff1a\u7ecf\u8fc7a\u8fc7\u7a0b\u952e\u503c\u5bf9\u6392\u5e8f\u540e\u5f97\u5230string1 \u4e3a\uff1a<\/span><\/p>\n<pre>accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA&amp;amp;appid=wx17ef1eaef46752cb&amp;amp;noncestr=123456&amp;amp;timestamp=1384841012&amp;amp;url=http:\/\/open.weixin.qq.com\/?code=CODE&amp;amp;state=STATE<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p><span style=\"line-height: 1.5\">ii\uff1a\u7ecf\u8fc7b\u8fc7\u7a0b\u7b7e\u540d\u540e\u53ef\u5f97\u5230\uff1a<\/span><\/p>\n<\/p>\n<pre>addrSign=SHA1(accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmg\r\nh5FRA&amp;appid=wx17ef1eaef46752cb&amp;noncestr=123456&amp;timestamp=1384841012&amp;url=http:\/\/open.weixin.qq.com\/?code=CODE&amp;state=STATE)=ca604c740945587544a9cc25e58dd090f200e6fb<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>\u5b9e\u73b0\u4ee3\u7801\u5982\u4e0b<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/4f4402e614cf9106d84ffce797b5bd5a-2.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe2\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe2\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>\u56db\u3001\u83b7\u5f97\u6536\u8d27\u5730\u5740<\/h2>\n<p>\u7f16\u8f91\u5e76\u83b7\u53d6\u7528\u6237\u6536\u8d27\u5730\u5740editAddress\u63a5\u53e3\uff0c\u5728\u7f51\u9875\u524d\u7aef\u8c03\u7528\u3002<br \/>\u53c2\u6570\u5217\u8868\uff1a<\/p>\n<\/p>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570<\/th>\n<th>\u5fc5\u586b<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>appId<\/td>\n<td>\u662f<\/td>\n<td>\u516c\u4f17\u53f7appID<\/td>\n<\/tr>\n<tr>\n<td>scope<\/td>\n<td>\u662f<\/td>\n<td>\u586b\u5199\u201cjsapi_address\u201d\uff0c\u83b7\u5f97\u7f16\u8f91\u5730\u5740\u6743\u9650<\/td>\n<\/tr>\n<tr>\n<td>signType<\/td>\n<td>\u662f<\/td>\n<td>\u7b7e\u540d\u65b9\u5f0f\uff0c\u76ee\u524d\u4ec5\u652f\u6301SHA1<\/td>\n<\/tr>\n<tr>\n<td>addrSign<\/td>\n<td>\u662f<\/td>\n<td>\u7b7e\u540d\uff0c\u7531\u5404\u53c2\u6570\u4e00\u8d77\u53c2\u4e0e\u7b7e\u540d\u751f\u6210<\/td>\n<\/tr>\n<tr>\n<td>timeStamp<\/td>\n<td>\u662f<\/td>\n<td>\u65f6\u95f4\u6233<\/td>\n<\/tr>\n<tr>\n<td>nonceStr<\/td>\n<td>\u662f<\/td>\n<td>\u968f\u673a\u5b57\u7b26\u4e32<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8c03\u7528\u65b9\u6cd5\u5982\u4e0b<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/86de2b971978fc2807b09f8c77e167ec-3.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe3\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe3\" \/><\/p>\n<p>\u53c2\u6570\u8fd4\u56de\uff1a<\/p>\n<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8fd4\u56de\u503c<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td rowspan=\"2\">err_msg<\/td>\n<td>edit_address\uff1aok\u83b7\u53d6\u7f16\u8f91\u6536\u8d27\u5730\u5740\u6210\u529f<\/td>\n<\/tr>\n<tr>\n<td>edit_address\uff1afail\u83b7\u53d6\u7f16\u8f91\u6536\u8d27\u5730\u5740\u5931\u8d25<\/td>\n<\/tr>\n<tr>\n<td>username<\/td>\n<td>\u6536\u8d27\u4eba\u59d3\u540d<\/td>\n<\/tr>\n<tr>\n<td>telNumber<\/td>\n<td>\u6536\u8d27\u4eba\u7535\u8bdd<\/td>\n<\/tr>\n<tr>\n<td>addressPostalCode<\/td>\n<td>\u90ae\u7f16<\/td>\n<\/tr>\n<tr>\n<td>proviceFirstStageName<\/td>\n<td>\u56fd\u6807\u6536\u8d27\u5730\u5740\u7b2c\u4e00\u7ea7\u5730\u5740<\/td>\n<\/tr>\n<tr>\n<td>addressCitySecondStageName<\/td>\n<td>\u56fd\u6807\u6536\u8d27\u5730\u5740\u7b2c\u4e8c\u7ea7\u5730\u5740<\/td>\n<\/tr>\n<tr>\n<td>addressCountiesThirdStageName<\/td>\n<td>\u56fd\u6807\u6536\u8d27\u5730\u5740\u7b2c\u4e09\u7ea7\u5730\u5740<\/td>\n<\/tr>\n<tr>\n<td>addressDetailInfo<\/td>\n<td>\u8be6\u7ec6\u6536\u8d27\u5730\u5740\u4fe1\u606f<\/td>\n<\/tr>\n<tr>\n<td>nationalCode<\/td>\n<td>\u6536\u8d27\u5730\u5740\u56fd\u5bb6\u7801<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>\u4e94\u3001\u793a\u4f8b<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/86de2b971978fc2807b09f8c77e167ec-4.png\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe4\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe4\" \/>&nbsp;<img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/86de2b971978fc2807b09f8c77e167ec-5.png\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe5\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe5\" \/>&nbsp;<img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/dbe7a71565f321ceff5826925864fee3-6.png\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe6\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe6\" \/>&nbsp;<img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/dbe7a71565f321ceff5826925864fee3-7.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe7\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe7\" \/>&nbsp;<img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/000\/000\/013\/dbe7a71565f321ceff5826925864fee3-8.jpg\" style=\"max-width:90%\" class=\"aligncenter\" title=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe8\" alt=\"\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u63d2\u56fe8\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>\u516d\u3001\u5b8c\u6574\u4ee3\u7801<\/h2>\n<\/p>\n<pre>&lt;?php\r\n\r\n\/*\r\n    \u65b9\u500d\u5de5\u4f5c\u5ba4 http:\/\/www.fangbei.org\/\r\n    CopyRight 2014 All Rights Reserved\r\n*\/\r\n\r\n\r\ndefine('APPID',         \"wx\u2014b7559b828e3c13e\");\r\ndefine('APPSECRET',     \"2b21b42d0c497de9a691a6bb5048a601\");\r\n\r\n\r\nclass class_weixin\r\n{\r\n    var $appid = APPID;\r\n    var $appsecret = APPSECRET;\r\n\r\n    \/\/\u6784\u9020\u51fd\u6570\uff0c\u83b7\u53d6Access Token\r\n    public function __construct($appid = NULL, $appsecret = NULL)\r\n    {\r\n        if($appid &amp;&amp; $appsecret){\r\n            $this-&gt;appid = $appid;\r\n            $this-&gt;appsecret = $appsecret;\r\n        }\r\n    }\r\n\r\n    \/\/\u751f\u6210OAuth2\u7684URL\r\n    public function oauth2_authorize($redirect_url, $scope, $state = NULL)\r\n    {\r\n        $url = \"https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=\".$this-&gt;appid.\"&amp;redirect_uri=\".$redirect_url.\"&amp;response_type=code&amp;scope=\".$scope.\"&amp;state=\".$state.\"#wechat_redirect\";\r\n        return $url;\r\n    }\r\n\r\n    \/\/\u751f\u6210OAuth2\u7684Access Token\r\n    public function oauth2_access_token($code)\r\n    {\r\n        $url = \"https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid=\".$this-&gt;appid.\"&amp;secret=\".$this-&gt;appsecret.\"&amp;code=\".$code.\"&amp;grant_type=authorization_code\";\r\n        $res = $this-&gt;http_request($url);\r\n        return json_decode($res, true);\r\n    }\r\n\r\n    \/\/\u751f\u6210\u968f\u673a\u5b57\u7b26\u4e32\r\n    function create_noncestr($length = 16) \r\n    {\r\n        $chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n        $str = \"\";\r\n        for ($i = 0; $i &lt; $length; $i++ ){\r\n            $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);\r\n        }\r\n        return $str;\r\n    }\r\n\r\n    \/\/\u751f\u6210\u7b7e\u540d\r\n    function get_biz_sign($bizObj)\r\n    {\r\n        \/\/\u53c2\u6570\u5c0f\u5199\r\n        foreach ($bizObj as $k =&gt; $v){\r\n            $bizParameters[strtolower($k)] = $v;\r\n        }\r\n        \/\/\u5b57\u5178\u5e8f\u6392\u5e8f\r\n        ksort($bizParameters);\r\n        \/\/URL\u952e\u503c\u5bf9\u62fc\u6210\u5b57\u7b26\u4e32\r\n        $buff = \"\";\r\n        foreach ($bizParameters as $k =&gt; $v){\r\n            $buff .= $k.\"=\".$v.\"&amp;\";\r\n        }\r\n        \/\/\u53bb\u6389\u6700\u540e\u4e00\u4e2a\u591a\u4f59\u7684&amp;\r\n        $buff2 = substr($buff, 0, strlen($buff) - 1);\r\n        \/\/sha1\u7b7e\u540d\r\n        return sha1($buff2);\r\n    }\r\n\r\n    \/\/HTTP\u8bf7\u6c42\uff08\u652f\u6301HTTP\/HTTPS\uff0c\u652f\u6301GET\/POST\uff09\r\n    protected function http_request($url, $data = null)\r\n    {\r\n        $curl = curl_init();\r\n        curl_setopt($curl, CURLOPT_URL, $url);\r\n        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);\r\n        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);\r\n        if (!empty($data)){\r\n            curl_setopt($curl, CURLOPT_POST, 1);\r\n            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);\r\n        }\r\n        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);\r\n        $output = curl_exec($curl);\r\n        curl_close($curl);\r\n        return $output;\r\n    }\r\n\r\n}<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<pre>&lt;?php\r\n\r\nrequire_once('wxaddr.class.php');\r\n$weixin = new class_weixin();\r\n$url = 'http:\/\/'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];\r\n\r\nif (!isset($_GET[\"code\"])){\r\n    $jumpurl = $weixin-&gt;oauth2_authorize($url, \"snsapi_base\", \"fangbei\");\r\n    Header(\"Location: $jumpurl\");\r\n}else{\r\n    $oauth2_access_token = $weixin-&gt;oauth2_access_token($_GET[\"code\"]);\r\n    $access_token = $oauth2_access_token['access_token'];\r\n}\r\n\r\n\r\n$timestamp = strval(time());\r\n$noncestr = $weixin-&gt;create_noncestr();\r\n\r\n$obj['appId']               = $weixin-&gt;appid;\r\n$obj['url']                 = $url;\r\n$obj['timeStamp']           = $timestamp;\r\n$obj['noncestr']            = $noncestr;\r\n$obj['accesstoken']         = $access_token;\r\n\r\n$signature  = $weixin-&gt;get_biz_sign($obj);\r\n\r\n?&gt;\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\"&gt;\r\n        &lt;title&gt;\u83b7\u53d6\u5171\u4eab\u6536\u8d27\u5730\u5740&lt;\/title&gt;\r\n        &lt;meta name=\"viewport\" content=\"width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;\"&gt;\r\n        &lt;script language=\"javascript\"&gt;\r\n            function callpay()\r\n            {\r\n                WeixinJSBridge.invoke('editAddress',{\r\n                    \"appId\" : \"&lt;?php echo $obj['appId'];?&gt;\",\r\n                    \"scope\" : \"jsapi_address\",\r\n                    \"signType\" : \"sha1\",\r\n                    \"addrSign\" : \"&lt;?php echo $signature;?&gt;\",\r\n                    \"timeStamp\" : \"&lt;?php echo $timestamp;?&gt;\",\r\n                    \"nonceStr\" : \"&lt;?php echo $noncestr;?&gt;\",\r\n                },function(res){ \r\n                    alert(JSON.stringify(res));  \r\n                    document.form1.address1.value         = res.proviceFirstStageName;\r\n                    document.form1.address2.value         = res.addressCitySecondStageName;\r\n                    document.form1.address3.value         = res.addressCountiesThirdStageName;\r\n                    document.form1.detail.value           = res.addressDetailInfo;\r\n                    document.form1.national.value         = res.nationalCode;\r\n                    document.form1.user.value            = res.userName;\r\n                    document.form1.phone.value            = res.telNumber;\r\n                    document.form1.postcode.value         = res.addressPostalCode;\r\n                    document.form1.errmsg.value         = res.err_msg;\r\n                });\r\n            }\r\n        &lt;\/script&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\n        &lt;form name=\"form1\" target=\"_blank\"&gt;\r\n            &lt;table border=\"1\"&gt;\r\n                &lt;colgroup&gt;&lt;col width=\"20%\"&gt;&lt;col width=\"80%\"&gt;&lt;\/colgroup&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u7ed3\u679c&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"errmsg\" id=\"9\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u56fd\u5bb6\u7801&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"national\" id=\"6\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u56fd\u5bb6&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"address3\" id=\"3\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u7701&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"address1\" id=\"1\"&gt;&lt;\/th&gt;\r\n                &lt;tr&gt;&lt;th&gt;\u5e02&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"address2\" id=\"2\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u8be6\u7ec6&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"detail\"   id=\"4\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u6536\u8d27\u4eba&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"user\" id=\"7\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u7535\u8bdd&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"phone\"    id=\"5\"&gt;&lt;\/th&gt;\r\n                &lt;TR&gt;&lt;th&gt;\u90ae\u7f16&lt;\/th&gt;&lt;th&gt;&lt;INPUT value=\"\" name=\"postcode\" id=\"8\"&gt;&lt;\/th&gt;\r\n            &lt;\/table&gt;\r\n        &lt;\/form&gt;\r\n        &lt;div&gt;\r\n            &lt;button type=\"button\" onclick=\"callpay()\"&gt;\u83b7\u53d6\u6536\u8d27\u5730\u5740&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>  \u767b\u5f55\u540e\u590d\u5236   <\/p>\n<p>&nbsp;\u66f4\u591a\u5fae\u4fe1\u652f\u4ed8\u5f00\u53d1\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3&nbsp;\u76f8\u5173\u6587\u7ae0\u8bf7\u5173\u6ce8PHP\u4e2d\u6587\u7f51\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4ecb\u7ecd\u5fae\u4fe1\u652f\u4ed8\u4e0b\u7684\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u7684\u5f00\u53d1\u8fc7\u7a0b\u3002 \u4e00. \u7b80\u4ecb \u5fae\u4fe1\u6536\u8d27\u5730\u5740\u5171\u4eab\uff0c\u662f\u6307\u7528\u6237\u5728\u5fae\u4fe1\u6d4f\u89c8\u5668\u5185\u6253\u5f00\u7f51\u9875\uff0c\u586b\u5199\u8fc7\u5730\u5740\u540e\uff0c\u540e\u7eed\u53ef\u4ee5\u514d\u586b\u5199\u652f\u6301\u5feb\u901f\u9009\u62e9\uff0c\u4e5f\u53ef\u589e\u52a0\u548c\u7f16\u8f91\u3002\u6b64\u5730\u5740\u4e3a\u7528\u6237\u5c5e\u6027\uff0c\u53ef\u5728\u5404\u5546\u6237\u7684\u7f51\u9875\u4e2d\u5171\u4eab\u4f7f\u7528\u3002\u652f\u6301\u539f\u751f\u63a7\u4ef6\u586b\u5199\u5730\u5740\uff0c\u5730\u5740\u6570\u636e\u4f1a\u4f20\u9012\u5230\u5546\u6237\u3002 \u5730\u5740\u5171\u4eab\u662f\u57fa\u4e8e\u5fae\u4fe1JavaScript API \u5b9e\u73b0\uff0c\u53ea\u80fd\u5728\u5fae\u4fe1\u5185\u7f6e\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528\uff0c\u5176\u4ed6\u6d4f\u89c8\u5668\u8c03\u7528\u65e0\u6548\u3002\u540c\u65f6\uff0c\u9700\u8981\u5fae\u4fe15.0 \u7248\u672c\u624d\u80fd\u652f\u6301\uff0c\u5efa\u8bae\u901a\u8fc7user agent \u6765\u786e\u5b9a\u7528\u6237\u5f53\u524d\u7684\u7248\u672c\u53f7\u540e\u518d\u8c03\u7528\u5730\u5740\u63a5\u53e3\u3002\u4ee5iPhone \u7248\u672c\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u901a\u8fc7useragent\u53ef\u83b7\u53d6\u5982\u4e0b\u5fae\u4fe1\u7248\u672c\u793a\u4f8b\u4fe1\u606f\uff1a&#8221;Mozilla\/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X)AppleWebKit\/534.46(KHTML,like Geocko) Mobile\/9B206MicroMessenger\/5.0&#8243;\u5176\u4e2d5.0 \u4e3a\u7528\u6237\u5b89\u88c5\u7684\u5fae\u4fe1\u7248\u672c\u53f7\uff0c\u5546\u6237\u53ef\u4ee5\u5224\u5b9a\u7248\u672c\u53f7\u662f\u5426\u9ad8\u4e8e\u6216\u8005\u7b49\u4e8e5.0\u3002 \u5730\u5740\u683c\u5f0f\u5fae\u4fe1\u5730\u5740\u5171\u4eab\u4f7f\u7528\u7684\u6570\u636e\u5b57\u6bb5\u5305\u62ec\uff1a \u6536\u8d27\u4eba\u59d3\u540d \u5730\u533a\uff0c\u7701\u5e02\u533a\u4e09\u7ea7 \u8be6\u7ec6\u5730\u5740 \u90ae\u7f16 \u8054\u7cfb\u7535\u8bdd \u5176\u4e2d\uff0c\u5730\u533a\u5bf9\u5e94\u662f\u56fd\u6807\u4e09\u7ea7\u5730\u533a\u7801\uff0c\u5982\u201c\u5e7f\u4e1c\u7701-\u5e7f\u5dde\u5e02-\u5929\u6cb3\u533a\u201d\uff0c\u5bf9\u5e94\u7684\u90ae\u7f16\u662f\u662f510630\u3002\u8be6\u60c5\u53c2\u8003\u94fe\u63a5\uff1ahttp:\/\/www.stats.gov.cn\/tjsj\/tjbz\/xzqhdm\/201401\/t20140116_501070.html &nbsp; \u4e8c. OAuth2.0\u6388\u6743 \u83b7\u53d6\u6536\u8d27\u5730\u5740\u4e4b\u524d\u524d\u9700\u8981\u8c03\u7528 \u767b\u5f55\u6388\u6743\u63a5\u53e3\u83b7\u53d6\u5230\u4e00\u6b21OAuth2.0\u7684Access Token \u3002\u6240\u4ee5\u9700\u8981\u505a\u4e00\u6b21\u6388\u6743\uff0c\u8fd9\u6b21\u6388\u6743\u662f\u4e0d\u5f39\u51fa\u786e\u8ba4\u6846\u7684\u3002\u5176\u5b9e\u8d28\u5c31\u662f\u5728\u7528\u6237\u8bbf\u95ee http:\/\/www.fangbei.org\/wxpay\/js_api_call.php \u767b\u5f55\u540e\u590d\u5236 \u65f6\u8df3\u8f6c\u5230 https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=wx8888888888888888&amp;redirect_uri=http:\/\/www.php.cn\/ \u767b\u5f55\u540e\u590d\u5236 \u4ee5\u6b64\u6765\u83b7\u5f97code\u53c2\u6570\uff0c\u5e76\u6839\u636ecode\u6765\u83b7\u5f97\u6388\u6743access_token\u53caopenid\uff0c\u8fd9\u4e2aaccess token\u5c06\u7528\u4e8e\u6536\u8d27\u5730\u5740\u5171\u4eab\u63a5\u53e3\u3002 \u5176\u5b9e\u73b0\u7684\u8be6\u7ec6\u6d41\u7a0b\u53ef\u53c2\u8003&nbsp;\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u5f00\u53d1OAuth2.0\u7f51\u9875\u6388\u6743 &nbsp; \u4e8c\u3001\u83b7\u53d6\u968f\u673a\u5b57\u7b26\u4e32 \u751f\u6210\u968f\u673a\u5b57\u7b26\u4e32\u7684\u65b9\u6cd5\u5982\u4e0b &nbsp; \u4e09\u3001\u751f\u6210\u7b7e\u540d \u53c2\u4e0eaddrSign \u7b7e\u540d\u7684\u5b57\u6bb5\u5305\u62ec\uff1aappId\u3001url\uff08\u8c03\u7528JavaScript API\u7684\u7f51\u9875url\uff09\u3001timestamp\u3001noncestr\u3001accessToken\u5bf9\u6240\u6709\u5f85\u7b7e\u540d\u53c2\u6570\u6309\u7167\u5b57\u6bb5\u540d\u7684ASCII \u7801\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\uff08\u5b57\u5178\u5e8f\uff09\u540e\uff0c\u4f7f\u7528URL \u952e\u503c\u5bf9\u7684\u683c\u5f0f\uff08\u5373key1=value1&amp;key2=value2\u2026\uff09\u62fc\u63a5\u6210\u5b57\u7b26\u4e32string1\u3002\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\u7684\u662f\u7b7e\u540d\u8fc7\u7a0b\u4e2d\u6240\u6709\u53c2\u6570\u540d\u5747\u4e3a\u5c0f\u5199\u5b57\u7b26\uff0c\u4f8b\u5982appId \u5728\u6392\u5e8f\u540e\u5b57\u7b26\u4e32\u5219\u4e3aappid\uff1b\u5bf9string1\u4f5c\u7b7e\u540d\u7b97\u6cd5\uff0c\u5b57\u6bb5\u540d\u548c\u5b57\u6bb5\u503c\u90fd\u91c7\u7528\u539f\u59cb\u503c\uff0c\u4e0d\u8fdb\u884cURL \u8f6c\u4e49\u3002\u5177\u4f53\u7b7e\u540d\u7b97\u6cd5\u4e3aaddrSign [&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-28682","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28682","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=28682"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/28682\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=28682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=28682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=28682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}