微信支付的问题:
1、微信公众号帐号支付
2、微信支付授权目录
3、微信Code获取
用的是PHP开发,之前下载的是php微信sdk,下载集成到产品里一切正常。只要按官网步骤来做,应该不会出问题。
后台应用环境变更,PHP只做中间层,后端是C#做接口开发,支付用的Ping++
接口那边集成Ping++后,一直得不到微信Code,可能接口那边不太清楚Ping如何获取Code,做了几个测试都没有成功获取Code,导致不能在微信里支付。
实在没有办法,我只能想到折中的解决方法,在PHP这层先获取Code,把Code传递给接口,帮助获取OpenId,这样才可以支付。经测试,这方法可行~
只能在PHP这边先获取Code,再把Code传递给接口。在这里同时也要注意一下,获取Code的时候不能异步提交到获取,经测试获取不到,直接把地址把到微信里可以正常获取。
这里给到方法:
//是否微信浏览器中打开 $isweixin = checkWeixin(); if ($isweixin){ if (!isset($_GET['code'])){ $baseUrl = urlencode("http://{$_SERVER['HTTP_HOST']}/wallet/paytype?amount=$amount&id=$paymentRuleId"); $redirect="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".G('wxappid')."&redirect_uri={$baseUrl}&response_type=code&scope=snsapi_base&state=survey"; header('Location:'.$redirect); exit(); } else { //获取code码,帮助获取openid $code = $_GET['code']; $this->smarty->assign('wxcode', $code); } }