qfz9527/saobei-sdk

SDK for saobei API

2.1.4 2022-12-09 03:29 UTC

This package is auto-updated.

Last update: 2024-05-30 00:42:24 UTC


README

简介

利楚商务 接口对接 的PHP版SDK,集成几乎所有现版本开放接口,让开发者专注功能开发,从枯燥而没有规律的参数中解放出来,极简化对接。

安装

最好的安装方法是通过 Composer 包管理器 :

composer require qfz9527/saobei-sdk

依赖

  • PHP 5.3 or later
  • libcurl 7.10.5 or later

快速开始

样例解析

  • 支付接口 用于支付场景,以下将以付款码支付(barcodepay)为例:
    
    //实例化调度器
    $sdk = new \Saobei\sdk\Dispatcher();
    
    //配置商户号、终端号、终端token
    $sdk->initTerminal('yourMerchantNo', 'yourTerminalId', 'yourAccessToken');
    
    //传入必传参数
    $param = array(
        'pay_type' => '010', //支付方式:微信、支付宝等
        'terminal_trace' => '12345678901234567890123456789012', //客户端唯一流水号,生成须有识别性
        'total_fee' => '1', //支付金额(分)
        'auth_no' => '12345678901' //付款码
    );
    
    //调用方法,方法名大小写不敏感
    //$result = $client->barcodepay($param);
    $result = $sdk->barcodePay($param);
  • 异步回调内置验签,开发者传入闭包进行业务处理,下以交易通知为例:
    
    //实例化调度器
    $sdk = new \Saobei\sdk\Dispatcher();
    
    //配置商户号、终端号、终端token
    $sdk->initTerminal('yourMerchantNo', 'yourTerminalId', 'yourAccessToken');
    
    //请求转化为数组
    $data = json_decode(file_get_contents('php://input'), true);//php-fpm模式接参
    //$data = JsonParser::ToArray($request->post());//Request类接参
    
    //传入闭包,处理业务逻辑
    $response = $sdk->notify($data, function() use ($data) {
        //TODO 业务逻辑
        var_dump($data);
        //if($data['total_fee'] == '1')echo "Amount checked \n";
        
        /**
         *  闭包返回
         * @example
         *  []
         *  ["status" => true]
         *  ["status" => true, "errmsg" => "成功"]
         *  ["status" => false, "errmsg" => "签名失败"]
         * */
         return array();
    });
    
    //额外参数
    $response['trace_no'] = $data['trace_no'];
    
    //响应
    echo json_encode($response, 256);
  • 商户接口的配置参数与方法与支付有所不同:
    
    //实例化调度器
    $sdk = new \Saobei\sdk\Dispatcher();
    
    //配置机构号、KEY
    $sdk->initMerchant('yourInstNo', 'yourKey');

接口方法列表

方法名大小写不敏感

  • barCodePay 付款码支付
  • prePay 扫码支付
  • jsPay 公众号预支付
  • miniPay 小程序支付
  • facePay 刷脸支付
  • wapPay WAP SDK
  • qrPay 聚合码支付
  • query 支付订单查询
  • refund 支付订单退款
  • cancel 支付订单取消
  • close 支付订单关闭
  • faceInfo 刷脸信息
  • authCodeToOpenId 授权码查询OPENID
  • authAccessToken 微信获取access_token
  • authOpenId 微信公众号JSAPI支付授权
  • scanOrderSync 扫码点餐数据上传
  • notify 交易通知
  • orderSync 交易实时同步
  • fenQiRateQuery 分期费率查询
  • fenQiBarCodePay 分期刷卡支付
  • fenQiPrePay 分期扫码支付
  • fenQiJsPay 分期公众号预支付
  • fenQiMiniPay 分期小程序支付
  • fenQiQuery 分期查询订单
  • fenQiRefund 分期退款
  • fenQiCancel 分期取消订单
  • fenQiClose 分期关闭订单
  • fenQiNotify 分期交易通知
  • preAuthBarCodePay 条码预授权
  • preAuthQR 获取预授权聚合码
  • preAuthQRH5Pay 预授权聚合码
  • preAuthJsPay 公众号预授权
  • preAuthMiniPay 小程序预授权
  • preAuthFacePay 刷脸预授权
  • preAuthQuery 预授权查询
  • preAuthStatusQuery 预授权查询状态
  • preAuthFinish 预授权完成
  • preAuthCancel 预授权取消
  • partnerPay 交通代扣申请扣款
  • partnerQuery 交通代扣查询订单
  • partnerRefund 交通代扣退款
  • partnerUser 交通代扣查询用户
  • merchantAdd 商户新增
  • merchantCheckName 商户名查重
  • merchantUpdate 商户更新
  • merchantAddStore 创建门店
  • merchantUpdateStore 修改门店
  • merchantquerystore 门店查询
  • merchantaddterminal 创建终端
  • merchantqueryterminal 查询终端
  • billDownLoad 账单下载
  • weChatConfigSet 微信配置设置
  • weChatConfigGet 微信配置查询
  • updatePayRate 修改支付费率
  • queryChannelMerchant 查询子商户
  • updateBankCardInfo 修改结算卡
  • queryBankCardInfo 查询结算卡
  • updateSettleType 修改结算周期
  • querySettleType 查询结算周期
  • opend0 即时到账申请
  • queryd0 即时到账查询
  • merchantInfoNotify 商户异步通知
  • merchantUpdateNotify 商户修改异步通知
  • queryCash 查询余额
  • queryFee 查询手续费
  • applycash 发起提现
  • settlementRecords 查询清算
  • generateContract 生成电子协议
  • signContract 签署电子协议
  • queryContract 查询电子协议
  • queryAllocate 查询分账
  • doAllocate 发起分账
  • cancelAllocate 取消分账
  • queryAllocateRecord 查询分账记录
  • openTransfer 开启转账
  • doTransfer 发起转账
  • queryTransfer 查询转账

目录结构

├── demos/  ----- 参考样例
├── src/
│   ├── Config/            ----- 配置门面
│   ├── Exception/         ----- 定义异常类目录
│   ├── Model/             ----- 实体
│   ├── Util/              ----- 工具类
│   └── Dispatcher.php/    ----- 集中调度器
├── composer.json
└── README.md
  • src/Dispatcher.php中集成所有方法,若有疑问可查看相关实体类。

  • src/Util/HttpClient.php 为 curl 版简单封装的请求类,可以替换为其他客户端。

    HttpClient方法调用封装在Dispatcher.php调度器中,如需替换须按需修改

  • 为区别发送请求和接回调,组件分别使用 request 类发送请求, response 类接收回调。/src/model 目录下实体都以此标准区分。

    request 类的返回体将直接转换为数组交予开发者,不做其他逻辑处理。

    response 类的请求体将经过状态码判断与验签后交予开发者,开发者使用闭包处理业务逻辑。

Email : dongmaike@lcsw.cn