简介
PAY插件是基于yansongda/pay -V3版本扩展包开发的微信、支付宝扫描支付、手机端H5支付、小程序支付集成功能的整合插件,安装后可快速帮您实现订单的支付处理!
支付类型
1、扫描支付
2、App应用支付
3、小程序支付
4、电脑端支付(跳转)
5、wap手机端支付
6、余额支付
并支持多租户、转账等操作;
如何使用
1、首先请安装PAY支付插件
2、然后申请支付宝/微信的支付接口权限(注:支付宝使用V3版本密钥。微信需要申请公众号认证)
3、调用前端支付接口Pay.php 实现数据的回传以及回调接口的业务处理
发起支付
1、默认我们调用plugin/pay/library/Service.php下的Order函数
/**
*
* @param string $orderId 订单编号
* @param string $title 订单标题
* @param string $price 订单金额
* @param string $payType 支付类型
* @param string $method 支付方式
* @param string $notify 异步通知地址
* @param string $return 同步通知地址
* @param string $auth_openid 微信公众号支付时需要传入/支付宝pos方式传入
* @return mixed
* @throws ContainerException
* @throws DataNotFoundException
* @throws DbException
* @throws InvalidArgumentException
* @throws ModelNotFoundException
* @throws ServiceNotFoundException
* @throws \Exception
*/
public static function create(string $orderId,
string $title,
string $price,
string $payType,
string $method = 'scan',
string $notify = '',
string $return = '',
string $auth_openid = '')
{
分别在此传入订单号,商品标题、价格、支付类型以及支付方式($method 的详解请参考底部扩展包支付文档)
默认我们的回调函数是使用saenv函数来调用系统配置,也就是在网站后台:系统管理->基础设置->接口配置->云支付接口里面的回调函数
可能这个地址是不存在的,你改为自己的回调地址即可,如果你想用app/index/controller/Pay.php里面的回调接口,请填写为
https://www.swiftadmin.net/index/pay/wechat
https://www.swiftadmin.net/index/pay/alipay
// alipay通知
https://www.swiftadmin.net/index/pay/returns
如果你需要在自己开发的插件上对接支付插件,那么请自行编写回调函数,在调用的时候,传入$notify、$return即可(v3版本)
2、使用回调函数、最后统一交付于$this->callback函数去处理业务逻辑即可,请注意本框架不支持?后面传递type参数
/**
* 微信支付回调
*/
public function wechat(): Response
{
$pay = Service::notifyCallback('wechat');
$data = $pay->callback(request()->post());
return $this->callback($data);
}
/**
* 支付宝支付回调
*/
public function alipay(): Response
{
$pay = Service::notifyCallback('alipay');
$data = $pay->callback(request()->post());
return $this->callback($data);
}
3、详细的相关调用可以参考CMS付费内容支付插件,方便您的理解,如有好的建议欢迎加群讨论!