+
95
-

回答

微信分账是微信支付提供的一项功能,允许商户将支付款项按比例分给多个接收方。以下是微信分账的 PHP 示例代码,展示如何调用微信分账接口。

前提条件注册微信商户号:确保你已经注册了微信商户号,并且开通了分账功能。获取 API 密钥:确保你有微信支付的 API 密钥。安装必要的 PHP 扩展:确保你的 PHP 环境安装了 cURL 和 OpenSSL 扩展。安装微信支付 SDK

为了简化与微信支付 API 的交互,可以使用微信支付的 PHP SDK。这里推荐使用 overtrue/wechat SDK。

使用 Composer 安装 SDK:

composer require overtrue/wechat
示例代码

以下是一个调用微信分账接口的示例代码:

<?php
require 'vendor/autoload.php';

use EasyWeChat\Factory;

// 配置
$config = [
    'app_id'    => 'your-app-id',         // 公众号 APPID
    'mch_id'    => 'your-mch-id',         // 商户号
    'key'       => 'your-api-key',        // API 密钥
    'cert_path' => 'path/to/your/apiclient_cert.pem', // 证书路径
    'key_path'  => 'path/to/your/apiclient_key.pem',  // 密钥路径
];

$app = Factory::payment($config);

try {
    // 分账请求参数
    $params = [
        'transaction_id' => '4200000404201909250000000000', // 微信支付订单号
        'out_order_no'   => 'P201909250001',                // 商户分账单号
        'receivers'      => json_encode([
            [
                'type'        => 'MERCHANT_ID',            // 分账接收方类型
                'account'     => '1900000109',             // 分账接收方账号
                'amount'      => 100,                      // 分账金额,单位为分
                'description' => '分给商户1900000109',    // 分账描述
            ],
            [
                'type'        => 'PERSONAL_OPENID',        // 分账接收方类型
                'account'     => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', // 分账接收方账号
                'amount'      => 100,                      // 分账金额,单位为分
                'description' => '分给个人',              // 分账描述
            ],
        ]),
    ];

    // 调用分账接口
    $result = $app->profit_sharing->create($params);

    // 处理结果
    if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
        echo "分账成功,分账单号:" . $result['order_id'];
    } else {
        echo "分账失败:" . $result['err_code_des'];
    }
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}
?>
说明

配置项

app_id:公众号或小程序的 APPID。mch_id:微信支付商户号。key:微信支付 API 密钥。cert_path 和 key_path:微信支付 API 证书和密钥路径。

分账请求参数

transaction_id:微信支付订单号。out_order_no:商户分账单号。receivers:分账接收方列表,必须是 JSON 格式的字符串。

处理结果

检查 return_code 和 result_code 是否为 SUCCESS 来判断分账请求是否成功。如果分账请求失败,可以通过 err_code_des 获取具体的错误信息。总结

通过使用 overtrue/wechat SDK,可以方便地调用微信分账接口。确保你已经开通了分账功能,并且配置了正确的 API 密钥和证书路径。根据实际需求,调整分账请求参数即可实现分账功能。

网友回复

我知道答案,我要回答