Download the PHP package xing.chen/payment without Composer
On this page you can find all versions of the php package xing.chen/payment. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download xing.chen/payment
More information about xing.chen/payment
Files in xing.chen/payment
Package payment
Short Description 支持支付宝支付、微信支付、小程序支付、IOS苹果内购、payPal支付、银联、首信易,payssion支付,可生成支付宝、微信app、小程序签名
License MIT
Informations about the package payment
更新说明
app签名的键名改变了三个,之前是全小写,现改为驼峰(nonceStr,timeStamp,appId)
概要
支持支付宝支付、微信支付、IOS苹果内购、payPal支付、银联、首信易,payssion支付,头条/字节跳动
可生成支付宝、微信app、小程序签名(小程序签名使用另外的方法)
可生成微信/头条/字节跳动所需的orderInfo,字节跳动可传入支付宝、微信配置生成alipay_url || wx_url,使用方法和生成签名参数一样
本库使用interface规范,工厂模式编写,代码质量高,统一规范。
简单说好处就是,在控制器里,你只需要写几行代码,你就可以对接多个支付。想要做到这一点,需要前端向传递服务端使用哪个支付驱动代码,服务端再根据支付驱动代码去调用相应的支付程序。
美中不足的是,部分代码是用php7的新特性写的,不兼容老版本的,我们做开发的特别是新项目自然是要走在技术的前端才对。
功能说明
1、支持:支付宝、微信、银联、payPal、payssion,首信易支付
2、主要功能:全部支持支付和验证异步通知
3、支付宝、微信、微信JSAPI支付:可生成app签名,可原路退款
4、通过工厂服务可以一次调用出所有支持的支付平台的app参数
支付宝、微信APP支付流程
(其他第三方支付流程也类似,有的会不同,详细有什么不同可以到github上面给我留言,我收到后有空时会补充说明)
1、生成签名,设置回调地址(回调地址在配置中设置)
2、app收到签名后向用户发起支付
3、支付成功后支付宝/微信会向你配置的回调地址发起付款成功的通知
4、后端服务器收到成功付款的通知后,运行支付成功后的业务代码
目录
- 安装
- 业务代码示例
- 签名/参数获取示例代码
- 异步通知示例代码
- 支付驱动代码列表
- 支付宝支付
- 微信支付
- 小程序支付
- 首信易支付
- 银联
- PaySsion
- PayPal
- 苹果支付
- 字节跳动代码
- 统一方法
- 初始化
- 生成app签名/参数
- 异步通知
- 退款(原路全款退回)
- 退款(原路部分多次退回)
- 设置自定义参数
- 苹果内购
- 苹果流程说明
- 苹果配置
- 苹果获取订单参数
- 苹果漏单处理
- 支付宝
- 支付宝配置
- 支付宝获取异步通知参数
- 微信/小程序
- 微信配置
- 微信获取异步通知参数
- 微信分转换为元
- 字节跳动
- 配置
- 获取支付宝或微信url
- paypal
- payPal配置
- payPal获取异步通知参数
- payssion
- payssion配置
- 银联
- 银联说明
- 银联配置
- 获取银联流水号
- 首信易
- 首信易异步通知
安装
composer require xing.chen/payment dev-master
业务代码示例
签名/参数获取示例代码
异步通知示例代码
本例为支付宝异步通知,其他支付驱动请查看详细文档自行码
支付驱动代码列表
说明:在此方法传递参数时传入此代码即调用相应的支付驱动 \xing\payment\drive\PayFactory::getInstance('支付驱动代码')
支付宝支付
AliPay
微信支付
WeChatPay
小程序支付
WeChatPay
首信易支付
BeijinPay
银联
UnionPay
PaySsion
PaySsion
PayPal
PayPal
苹果支付
ApplePay
字节跳动
TuoTiaoPay
统一方法
初始化
生成app签名
异步通知
退款(原路全款退回)
退款(原路部分多次退回)
设置自定义参数
苹果内购
苹果流程说明
。
整个支付流程建议为:
1、如果需要跟踪客户订单或是保持和支付宝微信的支付流程一致,可以先在服务端生成订单信息,并返回orderinfo参数,客户端保存好订单号。否则这一步可以跳过。
2、客户端发起购买
3、用户确认并支付
4、支付成功后,客户端保存成功的数据,向服务端发送receipt数据以及订单号
5、服务端根据服务端数据库的订单状态或保存的receipt原始订单id来判断是否使用过,避免刷单,如未使用,则发起验证,验证通过保存receipt为已使用。
苹果配置
苹果获取订单参数
说明:和支付宝,微信的生成app签名的方法一样,不同的是,第4个参数为产品id,这样可以使后端一套代码应付多个支付平台,并且使苹果内购支付前的流程和支付宝微信相似。
苹果漏单处理
有三个步骤有可能造成漏单:
1、服务端并不能保证100%在线。
2、用户网络也无法保证100%连通。
3、苹果服务器不稳定。
解决方案建议:
客户端保存支付成功数据,在未得到服务成功的信号前,一直存在,并有不断重启请求任务的机制,并且app重启也能重启此任务。
支付宝
支付宝配置
支付宝获取异步通知参数
微信/小程序
微信和小程序的配置和流程是可以共用的,只需要在生成支付sign的时候使用getMiniProgramParam方法即可(需要要在配置加上用户openId,详细见生成签名
微信配置
微信获取异步通知参数
微信分转换为元
字节跳动
配置
支付宝和微信的返回参加获取
paypal
payPal配置
payPal获取异步通知参数
payssion
payssion配置
银联
银联说明
手机控件支付:银联需要先获取流水号再返回给前端app,app支付成功后才能成功接收银联的异步通知结果。