h5支付回调返回值是什么 php_微信HTML5网页支付PHP + JS API总结

微信公众号开发给我设置了很多坑,每一个开发过微信的开发者,在面对微信的API文档时,都是崩溃的。微信支付的开发就更加崩溃,因为微信支付涉及到签名,其两次签名的设计,让人饱受折麽,为APP开发的同学们感叹。而这篇文章,主要来谈一下微信支付在HTML5页面(微信浏览器内部)内进行支付的开发过程。

微信服务号用户授权接口

首先要解决的是微信服务号用户授权的问题,授权过程主要是为了拿到用户的openid,或者拿到用户的昵称等更多信息。那么怎么来授权呢?

进入微信公众平台,在“开发-接口权限”中找到“网页授权-网页授权获取用户基本信息”,点击后面的“修改”,在弹出来的界面中,输入你允许在那个域名下进行授权。这个域名,必须与下面提到的redirect_uri中的域名对应,否则授权不了。

完成之后,我们就开始进入授权开发了。首先是获取授权要用的基本信息,包括:

AppID : 在“开发-基本配置”中获取AppSecret : 同上,但需要该公众号的管理员微信扫码后才能显示

第一步,获取code。

接下来,我们(用微信)访问这样一个网址:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

上面的蓝色字表示需要被替换。

APPID 替换为你上面拿到的AppIDREDIRECT_URI 替换为一个你上面填写的那个域名下的人和网页都可以,不过最好是可以访问的,因为这个地址将会在后面作为获取用户openid的页面。SCOPE 有两个值可以挑选snsapi_base和snsapi_userinfo,如果使用前一个,你不会看到授权按钮,但是,你也拿不到用户的昵称等信息,而后一个则一定要让用户点击授权按钮之后才能进行下一步,不过可以拿到用户的更多信息,同时,还可以拿到access token和refresh token。(用户的更多信息需要这里的access token去进一步操作。)

完成之后,你就可以安心等待结果,页面停止跳转后,我们看页面的URL地址。你可以发现,在页面的URL中,有一个code参数,它是拿到接下来的信息的关键。

第二步,凭code获取openid。

code是一个票据,可以用来获取用户openid和access token,我们先获取openid。

访问下面这个地址:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

上面的地址中蓝色部分同样需要替换。其中APPID你已经知道了,SECRET就是AppSecret,是在最开始的时候就让你拿到到那个。CODE则是上一步中拿到的那个。

注意:SECRET是绝密信息,你不可以把它给任何人看到,最好也不要像我刚才说的,直接用它来访问URL,最好的情况下,我们是写一个服务端脚本,通过curl来请求上面这个URL。

我们用PHP写一个函数来实现吧:

define('APPID','xxxxxx');

define('SECRET','xxxxxx');

$Code = $_GET['code'];

getCurl($url) { //初始化curl

$ch = curl_init(); //设置超时

curl_setopt($ch, CURLOP_TIMEOUT, Conf::CURL_TIMEOUT);

curl_setopt($ch,CURLOPT_URL, $url);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); //设置header

curl_setopt($ch, CURLOPT_HEADER, FALSE); //要求结果为字符串且输出到屏幕上

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //运行curl

$data = curl_exec($ch);

curl_close($ch); //返回结果

if($data) {

curl_close($ch);

return $data;

}

else {

$error = curl_errno($ch);

echo "curl出错,错误码:$error"."
";

echo "错误原因查询";

curl_close($ch);

return false;

}

}

$result =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值