PHP code example of feihu / allinpay-tppay

1. Go to this page and download the library: Download feihu/allinpay-tppay library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

feihu / allinpay-tppay example snippets



AllinPay\Sdk\TqPay;

$config = [
    'signType' => 'MD5',                    // 签名类型: MD5/RSA/SM2
    'mchNo' => 'YOUR_MCH_NO',               // 商户号
    'appId' => 'YOUR_APP_ID',               // 应用ID
    'md5Key' => 'your_md5_key_here',        // MD5密钥
    'priRsaKey' => 'your_private_key_here', // RSA私钥
    'pubRsaKey' => 'your_public_key_here',  // RSA公钥
    'notifyUrl' => 'https://your-domain.com/notify.php', // 回调地址
];

$tqPay = new TqPay($config);

// 微信主扫下单
$result = $tqPay->wxNative('1', '会员充值'); // 这里的金额单位是分

if ($result['code'] == '0') {
    $payData = $result['payData']; // 支付链接,用于生成二维码
}


AllinPay\Sdk\TqPay;

$tqPay = new TqPay($config);

$params = $_POST;

if ($tqPay->verifyNotify($params)) {
    $payOrderId = $params['payOrderId'];
    $mchOrderNo = $params['mchOrderNo'];
    $amount = $params['amount'];
    $state = $params['state'];
    
    if ($state == '2') {
        // 支付成功,处理业务逻辑
    }
    
    echo 'success';
} else {
    echo 'ERROR';
}



// 在你的项目中创建,不要放在 vendor 目录下
// 示例:app/Extension/MyCustomExtension.php

namespace App\Extension;

use AllinPay\Sdk\Extension\BaseExtension;

class MyCustomExtension extends BaseExtension
{
    /**
     * 获取扩展名称(唯一标识)
     */
    public function getName(): string
    {
        return 'my_custom';
    }

    /**
     * 自定义方法:查询账单
     */
    public function queryBill(string $date): array
    {
        $params = [
            'date' => $date,
        ];

        return $this->request('/bill/queryBill', $params);
    }

    /**
     * 自定义方法:转账
     */
    public function transfer(array $params): array
    {
        return $this->request('/transfer/transferApply', $params);
    }
}



use AllinPay\Sdk\TqPay;
use App\Extension\MyCustomExtension;

// 方式1:初始化时注册
$tqPay = new TqPay($config, [
    new MyCustomExtension(),
]);

// 方式2:动态添加
$tqPay = new TqPay($config);
$tqPay->addExtension(new MyCustomExtension());

// 方式3:通过类名添加(自动实例化)
$tqPay->addExtension(MyCustomExtension::class);

// 直接通过 TqPay 实例调用扩展方法
$result = $tqPay->queryBill('20260618');

// 或者先获取扩展,再调用方法
$extension = $tqPay->getExtension('my_custom');
$result = $extension->transfer($params);

use AllinPay\Sdk\Extension\OrderExtension;

$tqPay->addExtension(new OrderExtension());

// 查询支付订单
$result = $tqPay->queryPayOrder('P2067422381146746881');

// 关闭支付订单
$result = $tqPay->closePayOrder('P2067422381146746881');

// 统一退款
$result = $tqPay->refundOrder(
    'P2067422381146746881',
    '1.00',
    'REF' . date('YmdHis')
);

// 查询退款订单
$result = $tqPay->queryRefundOrder('REF20260618094120');

use AllinPay\Sdk\Extension\AccountExtension;

$tqPay->addExtension(new AccountExtension());

// 查询余额
$result = $tqPay->queryBalance();

// 提现申请
$result = $tqPay->withdrawApply(
    '100.00',
    'WITHDRAW' . date('YmdHis'),
    '6222021234567890123',
    '张三',
    '0102',
    '工商银行',
    '北京市',
    '北京市',
    '北京分行'
);

use AllinPay\Sdk\Extension\SettlementExtension;

$tqPay->addExtension(new SettlementExtension());

// 批量分账
$result = $tqPay->settlementApply(
    'P2067422381146746881',
    [
        [
            'receiptNo' => 'RECEIVER001',
            'amount' => '5000',
            'remark' => '分账给商户A',
        ],
    ]
);

// 查询分账订单
$result = $tqPay->querySettlementOrder('SETTLE20260618094120');

// 分账撤销
$result = $tqPay->settlementCancel('SETTLE20260618094120');

// 检查扩展是否已注册
$tqPay->hasExtension('order'); // bool

// 获取所有已注册的扩展名称
$tqPay->getExtensionNames(); // array

// 获取扩展实例
$extension = $tqPay->getExtension('order'); // ExtensionInterface|null