PHP code example of wyw1994 / tonglian-pay-sdk

1. Go to this page and download the library: Download wyw1994/tonglian-pay-sdk 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/ */

    

wyw1994 / tonglian-pay-sdk example snippets


$config = [
    'api_base_url' => 'https://tp.allinpay.com/pay/api', // 必填,API基础地址,用于构建完整的API请求URL
    'merchant_id' => 'E2******073',                      // 必填,商户号,用于标识商户身份
    'app_id' => '68******036',                          // 必填,应用ID,用于标识应用
    'merchant_key' => '2t******hk2jh9x5suw9lf1xfdnzwxixx', // 必填,商户密钥,用于签名和验签
    'sign_type' => 'MD5',                                // 必填,签名类型,支持:MD5/RSA/SM2
    'log_path' => '/path/to/logs/tonglianpay.log',       // 选填,日志路径,默认输出到标准输出
    'log_level' => \Monolog\Logger::DEBUG,               // 选填,日志级别,默认INFO
    'channelExtra' => [                                  // 选填,渠道公共参数,用于设置所有接口的默认渠道参数
        'cusid' => '66******M0C',                        // 收银宝子商户号,用于收银宝渠道接口
        'orgid' => '66******M3J',                        // 集团商户号,用于收银宝渠道接口
    ]
];

use TonglianPay\Utils\PayWayCode;

$params = [
    'mchOrderNo' => 'ORDER_202403210001',    // 必填,商户订单号,商户系统唯一标识
    'wayCode' => PayWayCode::WX_JSAPI,       // 必填,支付方式,使用PayWayCode常量
    'amount' => '100',                       // 必填,支付金额,单位分
    'currency' => 'CNY',                     // 选填,货币代码,默认CNY
    'clientIp' => '127.0.0.1',              // 选填,客户端IP,最大长度32个字符
    'notifyUrl' => 'https://example.com/notify', // 选填,支付结果通知地址,最大长度256个字符
    'body' => '商品描述',                    // 选填,商品描述,最大长度128个字符
    'channelExtra' => [                      // 选填,渠道参数,会覆盖公共配置
        'openid' => 'wx_openid',             // 微信支付必填,用户openid
        'subAppid' => 'wx_sub_appid'         // 微信支付选填,子商户appid
    ]
];

$result = $pay->unifiedOrder($params);

$params = [
    'mchOrderNo' => 'ORDER_202403210001',    // 必填,商户订单号,商户系统唯一标识
    'amount' => '100',                       // 必填,支付金额,单位分
    'notifyUrl' => 'https://example.com/notify', // 选填,支付结果通知地址,最大长度256个字符
    'body' => '商品描述'                     // 选填,商品描述,最大长度128个字符
];

$result = $pay->appletUrl($params);

$params = [
    'mchOrderNo' => 'ORDER_202403210001',    // 与payOrderId二选一,商户订单号
    'payOrderId' => 'PAY_202403210001',      // 与mchOrderNo二选一,支付订单号
    'busiType' => '1'                        // 选填,业务类型,默认1:1-支付订单查询
];

$result = $pay->queryOrder($params);

$params = [
    'mchRefundNo' => 'REFUND_202403210001',  // 必填,商户退款单号,商户系统唯一标识
    'mchOrderNo' => 'ORDER_202403210001',    // 与payOrderId二选一,商户订单号
    'payOrderId' => 'PAY_202403210001',      // 与mchOrderNo二选一,支付订单号
    'refundAmount' => 100,                   // 必填,退款金额,单位分
    'refundReason' => '退款原因',            // 必填,退款原因,最大长度64个字符
    'clientIp' => '127.0.0.1',              // 选填,客户端IP,最大长度32个字符
    'notifyUrl' => 'https://example.com/notify', // 选填,退款结果通知地址,最大长度128个字符
    'channelExtra' => [                      // 选填,渠道参数,会覆盖公共配置
        'divisionRefundInfo' => [            // 分账退款参数
            'refundAmount' => 100,           // 必填,退款金额
            'divisionBizMemNo' => '11',      // 必填,分账商户号
            'refundInfoList' => [            // 必填,分账退款列表
                [
                    'refundAmount' => 100,   // 必填,退款金额
                    'divisionBizMemNo' => '12' // 必填,分账商户号
                ]
            ]
        ]
    ]
];

$result = $pay->refund($params);

$params = [
    'refundOrderId' => 'REFUND_202403210001', // 与mchRefundNo二选一,退款订单号
    'mchRefundNo' => 'REFUND_202403210001'    // 与refundOrderId二选一,商户退款单号
];

$result = $pay->queryRefund($params);

$params = [
    'chanNo' => 'allinpay',                  // 必填,渠道类型:allinpay/yunst2isv
    'channelExtra' => [                      // 必填,渠道参数
        'orgid' => '66045xxxxxxx',          // 收银宝渠道必填,集团商户号
        'cusid' => '66046xxxxxxxxx'         // 收银宝渠道必填,子商户号
    ]
];

$result = $pay->queryBalance($params);

$params = [
    'day' => '2024-03-20'                    // 必填,交易日期,格式:yyyy-MM-dd,D+1日11点后可下载
];

$result = $pay->downloadBill($params);

// 处理支付回调
$pay->handlePayNotify(function($data) {
    // 处理业务逻辑
    // $data 包含支付订单信息和回调数据
});

// 处理退款回调
$pay->handleRefundNotify(function($data) {
    // 处理业务逻辑
    // $data 包含退款订单信息和回调数据
});

try {
    $result = $pay->unifiedOrder($params);
} catch (\Exception $e) {
    echo "操作失败:" . $e->getMessage() . "\n";
    if ($e->getCode()) {
        echo "错误代码:" . $e->getCode() . "\n";
    }
    if ($e->getData()) {
        echo "错误数据:\n";
        print_r($e->getData());
    }
}

$config = [
    'log_path' => '/path/to/logs/tonglianpay.log', // 选填,日志路径,默认输出到标准输出
    'log_level' => \Monolog\Logger::DEBUG          // 选填,日志级别,默认INFO
];