侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

一个简单整合微信、支付宝、百度、字节跳动支付方式的包推荐

php  /  管理员 发布于 1年前   257

该包整合了(微信、支付宝、百度、字节跳动)支付相关开发,

在开发了多次支付,每次都要翻文档、找之前的项目复制过来,费时费事,为了便于支付的开发,

干脆自己去造了一个简单轮子,



特点优势

丰富的扩展,支持微信(商户直连和服务商)、支付宝、百度、字节跳动
符合 PSR 标准,方便的与你的框架集成
单文件结构清晰、简单,每个类单独封装扩展,便于单独使用



使用文档

https://docs.fengkui.net/pay/


支持的支付

1、微信(Wechat)
method描述
jsJSAPI 下单
appAPP 支付
h5H5 支付
scanNavicat 支付
xcx小程序支付
query查询订单
close关闭订单
notify支付结果通知
refund申请退款
queryRefund查询退款
transfer转账到零钱 (v2)
queryTransfer查询转账到零钱 (v2)
profitSharing请求分账
profitsharingUnfreeze解冻剩余资金
queryProfitsharing查询分账结果 / 查询分账剩余金额
profitsharingReturn请求分账回退
receiversAdd添加分账接收方
receiversDelete删除分账接收方

2、支付宝(Alipay)
method描述
web电脑网页支付
wap手机网站支付
xcx小程序支付
face发起当面付
appapp 支付(JSAPI)
query查询订单
close关闭订单
notify支付宝异步通知
refund订单退款
refundQuery查询订单退款
transfer转账到支付宝账户
transQuery查询转账到支付宝
relationBind分账关系绑定与解绑
relationQuery查询分账关系
settle统一收单交易结算接口
settleQuery交易分账查询接口
onsettleQuery分账比例查询 && 分账剩余金额查询
getToken获取 access_token 和 user_id
doGetUserInfo获取会员信息

3、百度(Baidu)
method描述
xcx小程序支付
refund申请退款
notify支付结果通知

4、字节跳动(Bytedance)
method描述
createOrder下单支付
queryOrder订单查询
notifyOrder订单回调验证
createRefund订单退款
queryRefund退款查询
settle分账请求
querySettle分账查询



安装

composer require fengkui/pay



相关配置完善


# 微信支付配置
$wechatConfig = [
    'xcxid'         => '', // 小程序 appid
    'appid'         => '', // 微信支付 appid
    'mchid'         => '', // 微信支付 mch_id 商户收款账号
    'key'           => '', // 微信支付 apiV3key(尽量包含大小写字母,否则验签不通过,服务商模式使用服务商key)
    'appsecret'     => '', // 公众帐号 secert (公众号支付获取 code 和 openid 使用)
    'sp_appid'      => '', // 服务商应用 ID
    'sp_mchid'      => '', // 服务商户号
    'notify_url'    => '', // 接收支付状态的连接  改成自己的回调地址
    'redirect_url'  => '', // 公众号支付,调起支付页面
    // 服务商模式下,使用服务商证书
    'serial_no'     => '', // 证书序列号(可不传,默认根据证书直接获取)
    'cert_client'   => './cert/apiclient_cert.pem', // 证书(退款,红包时使用)
    'cert_key'      => './cert/apiclient_key.pem', // 商户私钥(Api安全中下载)
    'public_key'    => './cert/public_key.pem', // 平台公钥(调动证书列表,自动生成,注意目录权限)
];
# 支付宝支付配置
$alipayConfig = [
    'app_id'        => '', // 开发者的应用ID
    'public_key'    => '', // 支付宝公钥,一行字符串
    'private_key'   => '', // 开发者私钥去头去尾去回车,一行字符串
    'notify_url'    => '', // 异步接收支付状态
    'return_url'    => '', // 同步接收支付状态
    'sign_type'     => 'RSA2', // 生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,默认使用RSA2
    'is_sandbox'    => false, // 是否使用沙箱调试,true使用沙箱,false不使用,默认false不使用
];
# 百度支付配置
$baiduConfig = [
    'deal_id'       => '', // 百度收银台的财务结算凭证
    'app_key'       => '', // 表示应用身份的唯一ID
    'private_key'   => '', // 私钥原始字符串
    'public_key'    => '', // 平台公钥
    'notify_url'    => '', // 支付回调地址
];
# 字节跳动支付配置
$bytedanceConfig = [
    'app_id'        => '', // App ID
    'salt'          => '', // 支付密钥值
    'token'         => '', // 回调验签的Token
    'notify_url'    => '', // 支付回调地址
    'thirdparty_id' => '', // 第三方平台服务商 id,非服务商模式留空
];



使用方式

单独使用

$pay = new \fengkui\Pay\Wechat($wechatConfig); // 微信
$pay = new \fengkui\Pay\Alipay($alipayConfig); // 支付宝
$pay = new \fengkui\Pay\Baidu($baiduConfig); // 百度
$pay = new \fengkui\Pay\Bytedance($bytedanceConfig); // 字节跳动


公共使用

<?php
require_once('./vendor/autoload.php');
// 通用支付
class Payment
{
    // 支付类实例化
    protected static $pay = '';
    // 支付类型
    protected static $type = '';
    // 支付相关配置
    protected static $config = [];
    /**
     * [_initialize 构造函数(获取支付类型与初始化配置)]
     * @return [type] [description]
     */
    public function _initialize()
    {
        self::$type = $_GET['type'] ?? 'alipay';
        self::config();
    }
        /**
     * [config 获取配置]
     * @param  string $type [description]
     * @return [type]       [description]
     */
    protected static function config($type='')
    {
        $type = $type ?: self::$type;
        // 相关配置
        $alipayConfig = [];
        if (in_array($type, ['wechat', 'baidu', 'bytedance', 'alipay'])) {
            $config = $type . "Config";
            self::$config = $config;
        } else {
            die('当前类型配置不存在');
        }
        $type && self::$pay =(new \fengkui\Pay())::$type(self::$config);
    }
    // 支付方法
    public function pay()
    {
        $order = [
            'body'      => 'subject-测试', // 商品描述
            'order_sn'  => time(), // 商户订单号
            'total_amount' => 0.01, // 订单金额
        ];
        $result = self::$pay->web($order); // 直接跳转链接
        echo $result;
    }
}

有兴趣及需求的可以一试。


  • 上一条:
    在Linux系统中使用Iptables实现流量转发功能流程步骤
    下一条:
    在go语言中使用 go get 命令更新所有软件包
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客