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
];