微信商城中使用微信支付接口获取用户地址,商城_PHP教程

php中文网
发布: 2016-07-12 09:07:41
原创
1306人浏览过

微信商城中使用微信支付接口获取用户地址,商城

授人以鱼不如授人以渔

微信支付获取用户地址

使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能。

微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验。

但是可能是因为牵扯到用户隐私,所以在使用过程中,需要用户自己主动选择使用该功能,并且是通过点击的操作,我们才可以获取到用户的收货地址,这一点是要注意的。

立即学习PHP免费学习笔记(深入)”;

操作流程如下:

1.用户打开购物车页面,点击结算,跳转到一个微信的oauth2的页面,地址为:https://open.weixin.qq.com/connect/oauth2/authorize

2.oauth2页面将链接redirect到结算页面,使用PHP获取到链接中的code参数,经过处理获取到accessToken值。生成签名,组装成数组参数传递到页面。

3.结算页面使用用户点击事件,结合2中生成的数组参数完成获取地址的功能。这里可以有一个将获取到的地址使用ajax记录到数据库的功能,那么客户下次购物的时候,就不用麻烦了。


详细的讲下需要注意的几点:

科技狗一元云购(Cms夺宝程序)
科技狗一元云购(Cms夺宝程序)

科技狗一元云购(Cms夺宝程序)系统是一套创新的PHP开源云购源码,精仿网易夺宝、网易夺宝前台模板及后台功能,同时还兼顾了各大浏览器的兼容性,拥有多项首创功能,是目前国内唯一一家专业的云购系统授权服务提供商;内置财付通、支付宝、网银在线、易宝支付、云支付微信支付、及手机支付等支付接口,所有网银用户均可无障碍支付,微信商城完美对接微信公众平台用户,苹果安卓双app,让你全网更好的布局!

科技狗一元云购(Cms夺宝程序) 138
查看详情 科技狗一元云购(Cms夺宝程序)

1.跳转到微信oauth2的这个步骤,在用户看来是没有多少差别的,但是在程序这里就有很多的事情要做。首先是oauth2页面的参数,其中appid为微信appid,redirect_uri为urlencode后的订单结算页面的地址,response_type为固定的code,scope为固定的snsapi_base,state在这个地方可随意填写,还有一个#wechat_redirect,那么该链接的最终样子为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID<span>&redirect_uri</span>=订单结算地址<span>&response_type</span>=code<span>&scope</span>=snsapi_base<span>&state</span>=随意填写#wechat_redirect
登录后复制

2.用户访问到该地址,被重新定位到追加了code参数订单结算地址,在此页面需要由程序获取到accessToken,注意该accessToken为获取用户信息的accessToken跟另外一个和微信交互的access token不是同一个。

使用GET请求就可以获取该accessToken,可以使用curl或者是file_get_contents。请求地址为:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID<span>&secret</span>=APP_SECRET<span>&code</span>=CODE<span>&grant_type</span>=authorization_code;
登录后复制

这里有一点需要注意,有时候微信会抽风,会连续多次请求订单结算页面,造成accessToken失效,需特殊处理。

这里的签名生成和微信支付里面的签名不一样,这里的要简单很多,只是加密一个字符串,格式为:accesstoken=ACCESSTOKEN&appid=APPID&noncestr=32位随机字符串×tamp=时间戳&url=当前页面的URL,然后对该字符串进行sha1加密。

在前端页面中需要使用一连串的参数来实现获取地址的功能,分别是appID,scope(默认为jsapi_address),signType(默认为sha1),addrSign(上面sha1加密后的字符串),timeStamp(同上文的时间戳),nonceStr(同上文的随机字符串)。

3.在前端页面,使用下面的js函数来完成获取用户地址的操作:

<span>function get_addr()
{
    WeixinJSBridge.invoke('editAddress',{
    "appId" : "</span><span><?</span><span>php echo $sign['appId']</span><span>?></span><span>",
    "scope" : "jsapi_address",
    "signType" : "sha1",
    "addrSign" : "</span><span><?</span><span>php echo $sign['addrSign']</span><span>?></span><span>",
    "timeStamp" : "</span><span><?</span><span>php echo $sign['timeStamp']</span><span>?></span><span>",
    "nonceStr" : "</span><span><?</span><span>php echo $sign['nonceStr']</span><span>?></span><span>",
    },function(res){
    if(res.err_msg == 'edit_address:ok')
    {
           </span><span>
            <br />            //将地址信息存入数据库
            //将地址信息显示在当前页面
          </span>
登录后复制
<span>            document.getElementById("address_info").innerHTML="<b>收件人:"+res.userName+"</b>   <b>"+res.telNumber+"</b><br /><span> 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo;
           </span></span>
登录后复制
<span> } else{ alert("获取地址失败,请重新点击"); } }); }</span>
登录后复制

至此,使用微信获取用户共享地址的开发就完毕了。

有任何疑问,请联系QQ:97695870

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1059476.htmlTechArticle微信商城中使用微信支付接口获取用户地址,商城 授人以鱼不如授人以渔 微信支付获取用户地址 使用微信获取地址信息是和微信支付一道...
相关标签:
微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号