• 企业付款
    • 企业付款到用户零钱
    • 查询付款到零钱的订单
    • 企业付款到银行卡
    • 查询付款到银行卡的订单

    企业付款

    EasyWeChat 4.0.7+

    该模块需要用到双向证书,请参考:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=4_3

    企业付款到用户零钱

    1. $app->transfer->toBalance([
    2. 'partner_trade_no' => '1233455', // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
    3. 'openid' => 'oxTWIuGaIt6gTKsQRLau2M0yL16E',
    4. 'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
    5. 're_user_name' => '王小帅', // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
    6. 'amount' => 10000, // 企业付款金额,单位为分
    7. 'desc' => '理赔', // 企业付款操作说明信息。必填
    8. ]);

    查询付款到零钱的订单

    1. $partnerTradeNo = 1233455;
    2. $app->transfer->queryBalanceOrder($partnerTradeNo);

    企业付款到银行卡

    企业付款到银行卡需要对银行卡号与姓名进行 RSA 加密,所以这里需要先下载 RSA 公钥到本地(服务器),我们提供了一个命令行工具:EasyWeChat/console,请使用 composer 安装完成。

    1. $ composer require easywechat/console -vvv

    然后,在项目根目录执行以下命令下载公钥:

    1. $ ./vendor/bin/easywechat payment:rsa_public_key \
    2. > --mch_id=14339221228 \
    3. > --api_key=36YTbDmLgyQ52noqdxgwGiYy \
    4. > --cert_path=/Users/overtrue/www/demo/apiclient_cert.pem \
    5. > --key_path=/Users/overtrue/www/demo/apiclient_key.pem

    将会在当前目录生成一个 ./public-14339221228.pem 文件,你可以将它移动到敏感目录,然后在支付配置文件中加如以下选项:

    1. use EasyWeChat\Factory;
    2. $config = [
    3. // 必要配置
    4. 'app_id' => 'xxxx',
    5. 'mch_id' => 'your-mch-id',
    6. 'key' => 'key-for-signature', // API 密钥
    7. // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
    8. 'cert_path' => '/path/to/your/cert.pem', // XXX: 绝对路径!!!!
    9. 'key_path' => '/path/to/your/key', // XXX: 绝对路径!!!!
    10. // 将上面得到的公钥存放路径填写在这里
    11. 'rsa_public_key_path' => '/path/to/your/rsa/publick/key/public-14339221228.pem', // <<<------------------------
    12. 'notify_url' => '默认的订单回调地址', // 你也可以在下单时单独设置来想覆盖它
    13. ];
    14. $app = Factory::payment($config);
    1. $result = $app->transfer->toBankCard([
    2. 'partner_trade_no' => '1229222022',
    3. 'enc_bank_no' => '6214830901234564', // 银行卡号
    4. 'enc_true_name' => '安正超', // 银行卡对应的用户真实姓名
    5. 'bank_code' => '1001', // 银行编号
    6. 'amount' => 100, // 单位:分
    7. 'desc' => '测试',
    8. ]);

    查询付款到银行卡的订单

    1. $partnerTradeNo = 1233455;
    2. $app->transfer->queryBankCardOrder($partnerTradeNo);