Victory 2017-11-29 12:20:40 3748次浏览 1条回复 1 0 0
支付业务

首先需要了解微信支付的流程(点击查看

配置

公众号平台配置:登录授权域名、业务授权域名、白名单 商户支付平台:支付授权目录(域名)、支付回调域名

需求
  • 两个公众号A、B(以下简称A、B),网站主业务基于A,包括授权登录、默认支付配置
  • 基于请求来源判断是否启用B公众号的支付配置
正文

发起微信支付依赖配置信息和OpenId,基础配置信息可以通过判断选择相应的配置文件,获取OpenId的过程比较繁琐,调起B的支付,A已授权的OpenId对B是无效的,因为每个公众号对同一用户都有唯一的OpenId(点我查看),简单来讲,如果调起B的支付,必须获取当前用户在B公众号内对应OpenId,获取OpenId首先要获取Code,通过Code再请求微信服务器换区OpenId,看代码: $scope = 'snsapi_base'; $auth = new WechatAuth($appid, $appsecret); $state = $_SERVER['HTTP_HOST'].",sub_openid"; $redirect_uri = "http://".$_SERVER['HTTP_HOST']."/mobile.php/?s=/Game/open_game&".http_build_query($_GET); $rurl = $auth->getRequestCodeURL($redirect_uri,$state,$scope); redirect($rurl); 微信服务器获取这个请求后,会根据回调地址,附上Code后进行重定向,A公众号对应服务器的的回调地址,接收Code后,使用Code换取OpenId: $auth = new WechatAuth($appid, $appsecret); $token = $auth->getAccessToken("code",$_GET['code']); 至此获取OpenId,在支付时,使用B公众号配置和对应的OpenId。

您需要登录后才可以回复。登录 | 立即注册