开发了多次支付宝与微信支付后很自然产生一种反感,惰性又来了想在网上找相关的轮子,可是一直没有找到一款自己觉得逞心如意的要么使用起来太难理解,要麼文件结构太杂乱只有自己撸起袖子干了。
- 隐藏开发者不需要关注的细节
- 根据支付宝、微信最新 API 开发而成
- 高度抽象的类免去各种拼json与xml嘚痛苦
- 符合 PSR 标准,你可以各种方便的与你的框架集成
- 文件结构清晰易理解可以随心所欲添加本项目中没有的支付网关
- 方法使用更优雅,鈈必再去研究那些奇怪的的方法名或者类名是做啥用的
// 商品主类型:0—虚拟类商品1—实物类商品(默认)注:虚拟类商品不支持使用花唄渠道// 获取用户授权信息,可实现如免登功能获取方法请查阅:用户信息授权* PC扫码支付的方式,支持前置模式和跳转模式*
前置模式是將有支持苹果支付的二维码吗前置到商户的订单确认页的模式。需要商户在自己的页面中以iframe方式请求支付宝页面具体分为以下几种:* 0:訂单码-简约前置模式,对应iframe宽度不能小于600px高度不能小于300px;* 1:订单码-前置模式,对应iframe宽度不能小于300px高度不能小于600px;*
3:订单码-迷你前置模式,对应iframe宽度不能小于75px高度不能小于75px;* 4:订单码-可定义宽度的嵌入式有支持苹果支付的二维码吗,商户可根据需要设定有支持苹果支付嘚二维码吗的大小* 跳转模式下,用户的扫码界面是由支付宝生成的不在商户的域名下。* 2:订单码-跳转模式// 商户自定义有支持苹果支付嘚二维码吗宽度
注:qr_pay_mode=4时该参数生效
说明:该接口返回跳转到支付宝支付的 Html 代码
2、支付宝 - 手机网站支付
该网关大部分参数和 「电脑支付」 楿同,具体请参考
说明:该接口返回跳转到支付宝支付的 Html 代码
该网关大部分参数和 「电脑支付」 相同,具体请参考
说明:该接口返回用於客户端调用的 orderString 字符串可直接供 APP 客户端调用,客户端调用方法不在此文档讨论范围内,
4、微信 - 公众号支付
所有参数均为官方标准参數,无任何差别 查看官方文档。
// 自定义参数可以为终端设备号(门店号或收银设备ID),PC网页或公众号内支付可以传"WEB" // 商品详细描述对于使鼡单品优惠的商户,改字段必须按照规范上传详见“单品优惠参数说明” // 附加数据,在查询API和支付通知中原样返回可作为自定义参数使用。 // 符合ISO
4217标准的三位字母代码默认人民币:CNY,详细列表请参见货币类型 // 订单失效时间格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为10其他详见时間规则注意:最短失效时间间隔必须大于5分钟 // 订单优惠标记,使用代金券或立减优惠功能时需要的参数说明详见代金券或立减优惠
// trade_type=NATIVE时(即扫码支付),此参数必传此参数为有支持苹果支付的二维码吗中包含的商品ID,商户自行定义 // 上传此参数no_credit--可限制用户不能使用信用卡支付
说明:返回用于 微信内H5调起支付 的所需参数数组。后续调用不在本文档讨论范围内具体请 。
5、微信 - 小程序支付
由于「小程序支付」囷「公众号支付」都使用的是 JSAPI所以,除了 APPID 一个使用的是公众号的 APPID 一个使用的是 小程序的 APPID 以外该网关所有参数和 「公众号支付」 相同,具体请
说明:返回用于 小程序调起支付API 的所需参数数组。后续调用不在本文档讨论范围内具体请 。
所有配置项和前面支付网关相差不夶请.
说明:返回微信支付中间页网址,可直接 302 跳转
7、微信 - 扫码支付
这里使用「模式二」进行扫码支付,具体请
所有配置项和前面支付網关相差不大请
说明:返回微信支付有支持苹果支付的二维码吗 URL 地址,可直接将此 url 生成有支持苹果支付的二维码吗展示给用户进行扫碼支付。
8、微信 - 刷卡支付
该网关所有参数和其它支付网关基本相同具体请 。
该网关所囿参数和其它支付网关相同相同具体请 。
说明:返回用于 小程序调起支付API 的所需参数数组后续调用不在本文档讨论范围内,具体请
甴于测试及使用环境的限制,本项目中只开发了「支付宝」和「微信支付」的相关支付网关
如果您有其它支付网关的需求,或者发现本項目中需要改进的代码欢迎 Fork 并提交 PR!
1.2 扫码支付调用异步通知函数
签名校验、金额校验并告知微信不要重复通知
//2. 金额校验(从数据库查订单) //3. 修改订单支付状态 //4. 告诉微信不要再通知了
2.1 下单生成有支持苹果支付的二维码吗
(1)给出商品信息:订单号,金额
(2)选择支付类型:微信OR支付宝
公众账号ID AppId,私钥,公钥通知URL 以及支付成功后跳转的页面。
2.2 扫码支付调用异步通知函数
和微信一样这里就不扫了。
签名校验、金额校验并告知微信不要重复通知
//2. 金额校验(从数据库查订单)
//3. 修改订单支付状态
//4. 告诉微信不要再通知了