wxpay-php

php项目基于微信支付JS SDK和JS API的接入开发

因为php框架繁多,而且项目开发进度比较赶,线上代码迁移出来的时间也有限,此处的代码没有经过备案域名和线上服务器测试,肯定会有很多问题,所以样例代码仅供参考


前言

因为抢红包风波,微信封杀了支付宝链接,不得不紧急加入微信支付。

微信支付的开发文档太坑,不才已被虐哭,趁现在还在坑里,记录一下留个纪念。

开发相关资料(排名不分先后)

微信商户服务中心

商户平台开发者文档1

商户平台开发者文档2

商户平台开发者文档3

微信JS-SDK说明文档

支付开发教程(微信商户平台版)

代公众号使用JS SDK说明

JSSDK demo页面

JSSDK demo示例代码下载

注意点

微信5.0后的版本才支持微信支付

微信支付的jssdk接口只能在微信客户端里面才有效果,普通浏览器无法测试

微信支付的相关代码必须部署在线上,域名必须备案,而且域名必须跟 <微信公众平台> 里相关设置里的域名一致

微信大小写非常敏感,timestamp和timeStamp以及appId和appid不要弄错,要在对的接口使用对的大小写,里面是混着用的

商户号和微信商户号要区分出来,也就是MCHID,开通微信支付后有一封邮件,里面会有相关的信息,登陆商户后台也能找到

只有服务号才能接入微信支付,不同的服务号之前可以跨号支付,订阅号里面不能调用微信支付,会报“不允许跨号支付”的错误

关于签名

我开发的时候遇到三次签名生成:

wx.config 里面有一次 signature 的签名生成,调用的是官方sdk的方法,它用的是 SHA1 加密,生成之后的签名没有转大写

获取prepay_id的时候,中间会生成一次签名,调用的是官方sdk的方法,它用的是 MD5 加密,生成之后的签名统一转成大写

wx.chooseWXPay 里面有最后一次 paySign 的签名生成,我调用了步骤2里面的那个接口,最后测试成功了

分享代码

因为目前用的项目的框架是比较奇葩的,我之前已经把官方的代码临时整合并修改成适合项目的代码,不能直接用了,后面的日子将逐步等工作闲暇的时候,整理出直接能用的来分享给还没入坑有需要的童鞋们。


代码相关

开发环境

本地相关开发环境如下:

编辑器: MacVim

php: 5.5.13,接入微信支付的相关扩展都装了,主要应该是curl扩展

nginx: 1.4.2

操作系统: Yosemite 10.0.2

创建相关文件

WxPay.pub.config.sample.php => WxPay.pub.config.php // 配置文件 access_token.sample.json => access_token.json // 临时存储access_token jsapi_ticket.sample.json => jsapi_ticket.json // 临时存储jsapi_ticket

代码文件结构

. ├── LICENSE ├── README.md -------------------------说明文档 ├── callback --------------------------回调 │   └── notifyUrl.php -----------------回调接口文件 ├── conf ------------------------------配置 │   ├── WxPay.pub.config.php ----------配置文件 │   └── WxPay.pub.config.sample.php ---配置文件样本 ├── index.php -------------------------主入口文件 ├── lib -------------------------------类库 │   ├── CommonUtilPub.php -------------所有接口的基类 │   ├── JsSdk.php ---------------------微信支付新推出的js sdk │   ├── Log.php -----------------------日志类库 │   ├── SDKRuntimeException.php -------异常类库 │   ├── UnifiedOrderPub.php -----------统一支付接口类 │   ├── WxpayClientPub.php ------------请求型接口的基类 │   └── WxpayServerPub.php ------------响应型接口的基类 ├── log -------------------------------日志 │   ├── access_token.json -------------access_token临时存储文件 │   ├── access_token.sample.json ------access_token临时存储文件样本 │   ├── jsapi_ticket.json -------------jsapi_ticket临时存储文件 │   ├── jsapi_ticket.sample.json ------jsapi_ticket临时存储文件样本 │   └── notify_url.log ----------------回调接口日志文件 └── master.sh -------------------------git提交shell懒人脚本 4 directories, 19 files

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。