shantao/taoxiangpay

There is no license information available for the latest version (v0.2.3) of this package.

面向淘象支付接口

This package's canonical repository appears to be gone and the package has been frozen as a result.

v0.2.3 2020-12-15 02:33 UTC

This package is not auto-updated.

Last update: 2025-04-01 22:32:58 UTC


README

v0.2.0

名词说明

  • 商户token: 每个使用此支付的项目都需要申请一个唯一 token
  • 本地单号: 调用方需要生成的唯一支付单号,长度不能少于6位
  • 支付渠道单号: 正在使用的支付渠道,例如淘象,生成的唯一单号
  • 支付方式单号: 使用的支付方式,例如支付宝或微信官方, 生成的唯一单号,目前只支持支付宝

异常说明

  • TaoxiangpayException : 本包中的所有别的异常都继承于此
  • UpstreamResponseException : 因上游而触发的异常
  • ValidateConfigureException : 用户入参信息校验不通过触发的异常

异常码说明

1: 支付金额应为正整数
2: 本地单号长度必须大于6位
// 因上游http status 非 200 ,抛出的异常
3: 上游不可用
// 上游http status正常,但是上游响应的状态码非0, 一般来说会将上游异常信息附加到本信息之后,形如:[上游响应异常:商户token不合法]
4: 上游响应异常
5: 必传参数缺失
6: 请求参数格式不合法

可用方法

  • 获取支付二维码:\Taoxiangpay\Taoxiangpay::generateQRcode(array $config)

    • 调用示例
<?php
    
class Demo {
  public function first(){
      // 传入的参数
      $config = [
                  // 请求付款的金额,单位是分!!! [必传]
                  'amount' => 1,
                  // 商户token [必传]
                  'token' => 'xxx',
                  // 上游接口地址 [必传]
                  'url' => 'http://pay.gatheraccount.com/api/merchant/alipay_transfer_apply',
                  // 本地单号,最少6位长度 [必传]
                  'order_sn' => '111111',
                  // 请求上游超时时间 [非必传,默认是15秒]
                  'timeout' => 5
              ];
      
      // 返回的响应信息是一个数组:
      /**
          [
              // 可根据此值生成一个支付二维码
              'qr_code' => 'xxx',
              // 支付渠道单号,即淘象单号
              'channel_paid_sn' => 'xxx',
              // 一个地址,可根据这个地址去生成一个二维码,然后可以使用手机支付
              'url' => 'xxxx'
          ]
       */
      $res = \Taoxiangpay\Taoxiangpay::generateQRcode($config);
  }

}
  • 获取支付订单信息: \Taoxiangpay\Taoxiangpay::queryPayInfo(array $config)
    • 调用示例
<?php

class Demo {
  public function first(){
      // 传入的参数
      $config = [
                  // 商户token [必传]
                  'token' => 'xxx',
                  // 上游接口地址 [必传]
                  'url' => 'http://pay.gatheraccount.com/api/terminal/bill_state',
                  // 本地订单号,最少6位长度 [必传]
                  'order_sn' => '111111',
                  // 支付渠道单号 [必传]
                  'channel_paid_sn' => 'xxxx',
                  // 请求上游超时时间 [非必传,默认是15秒]
                  'timeout' => 5
              ];
      
      // 返回的响应信息是一个数组:
      /**
          [
              // 请求付款的金额,单位是元!!!
              'amount' => '20.00',
              // 支付渠道单号
              'channel_paid_sn' => 'xxx',
              // 支付方式单号
              'type_paid_sn' => 'xxx',
              // 本地单号
              'order_sn' => 'xxx',
              // 支付时间,示例:2020-09-25 22:00:15
              'time' => 'Y-m-d H:i:s',
              // 付款人名称
              'payer' => 'xxx',
              // 实际支付的金额, 单位是元!!!!!
              'reality_amount' => '10.00',
              // 支付状态,可选值 p/d/e p(待支付) d(已支付) e(支付超时)
              'pay_status' => 'p',
          ]
       */
      $res = \Taoxiangpay\Taoxiangpay::queryPayInfo($config);
  }

}
  • 批量获取订单信息: \Taoxiangpay\Taoxiangpay::batchQueryPayInfo(array $config)
    • 调用示例
<?php

class Demo {
  public function first(){
      // 传入的参数
      $config = [
                  // 商户token [必传]
                  'token' => 'xxx',
                  // 上游接口地址 [必传]
                  'url' => 'http://pay.gatheraccount.com/api/terminal/bill_state',
                  // 一个二维数组,每个元素是:本地单号和支付渠道单号组成的数组
                  'data' => [
                        [
                          // 本地订单号,最少6位长度 [必传]
                        'order_sn' => '111111',
                        // 支付渠道单号 [必传]
                        'channel_paid_sn' => 'xxxx',
                        ],
                    ],
                  // 请求上游超时时间 [非必传,默认是15秒]
                  'timeout' => 5
              ];
      
      // 返回的是以本地单号为键,订单信息为值的二维数组:  
      // 如果请求参数中 data是一个空数组,那么返回的也是一个空数组
      /**
          [
            // 本地单号作为键
            'xxx' => [
                // 0 表示成功
                'code' => 0,
                // 提示信息
                'msg' => 'ok',
                // 支付订单数据
                'data' => [
                    // 请求付款的金额,单位是元!!!
                    'amount' => '20.00',
                    // 支付渠道单号
                    'channel_paid_sn' => 'xxx',
                    // 支付方式单号
                    'type_paid_sn' => 'xxx',
                    // 本地单号
                    'order_sn' => 'xxx',
                    // 支付时间,示例:2020-09-25 22:00:15
                    'time' => 'Y-m-d H:i:s',
                    // 付款人名称
                    'payer' => 'xxx',
                    // 实际支付的金额, 单位是元!!!!!
                    'reality_amount' => '10.00',
                    // 支付状态,可选值 p/d/e p(待支付) d(已支付) e(支付超时)
                    'pay_status' => 'p',
                ]
            ],
          ]
       */
      $res = \Taoxiangpay\Taoxiangpay::batchQueryPayInfo($config);
  }

}