shantao/taoxiangpay

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

面向淘象支付接口

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

This package is not auto-updated.

Last update: 2024-05-14 18:40:40 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);
  }

}