此处的微信支付是指微信支付V3版
如何确认自己申请的微信版本是V3版 1.基本9月20以后申请的微信支付均为V3版本 2.查看微信发送的邮件 若其中包含以下信息 商户ID、申请编号、登录帐号、登录密码、商户API密码 商户API证书、证书密钥、CA证书 即为V3版本的微信支付
由于微信支付V2 跟 V3版的参数不同 支付的流程不同 导致微信支付V2版本跟V3版不兼容...
微信支付V3的 支付流程如下: (JSAPI支付为例)
- 根据文档中所写 采用JSAPI进行支付 则用户的openid 为必须参数 所以官方给的Demo第一步采用了Oauth 认证获取用户的Openid,此处需要注意 在传递Oauth认证的回调URL中 应该使用
urlencode()
函数 对URL进行编码 否则如&a=1&b=2
类似的URL可能出现找不到的现象.
当然如果你在支付的页面直接把openid 带过去了...可以直接去掉支付中的oauth认证这步
2.支付成功后的 notify_url ,无法接受到数据问题. 首先 notify_url 同样不能使用入如 &a=1&b=2
格式 应使用如下 /a/1/b/2
Pathinfo模式 如果是Linux环境还需要对文件夹有 相应的权限 才能写入信息.开发者可以在 notify_url 中根据 支付返回的状态进行一些相应的操作 例如修改订单状态...发送模板消息 提醒用户交易成功等等..
关于支付测试:
1. 登陆微信的公众平台后台(微信公众平台)---> 微信支付-->开发者配置 填写上传 测试的授权目录 和 微信测试白名单 注意: 如果需要用到支付中的oauth 还应该去配置下 oauth认证的授权目录(是不是很麻烦....)
2.如果出现 access_token:not_allow 之类信息 一般都是 支付的授权目录 不正确.
3.如果下载的是微信支付V3版本的官方Demo,那么请首先修改其中的代码 curl_setopt($ch, CURLOP_TIMEOUT, $this->curl_timeout);
修改为 curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout);
分别位于 WxPayPubHelper.php 的 155 821行 ,注释掉 171行.
4.支付参数解析 配置文件中的 appid 和 appsecret 是开发者模式中的 appid 和 appsecret, mchid 和 key 分别在 微信发送的邮件中可以找到.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。