雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

EasyWechat 4.x 微信小程序企业付款到零钱

2024-09-12 43

1. 前言


单次提现金额要求在 0.3 元 - 5000 元之间

企业付款到零钱需要使用商户证书, 当配置的证书错误时会抛出异常, 而不是以返回值的形式返回

EasyWechat 4.x 企业付款 : https://easywechat.com/docs/4.x/payment/transfer

微信支付开发文档 : https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1

2. 执行提现


特别注意: 证书配置错误时会抛出异常, 而不是以返回值的形式返回

use EasyWeChat\Factory;$config = [    // 必要配置    'app_id' => 'xxxx',//小程序APPID    'mch_id' => 'your-mch-id',//商户ID    'key'    => 'key-for-signature',   // 商户API 密钥    // 如需使用敏感接口(如企业付款、退款、公众号发送现金红包等)需要配置 API 证书    'cert_path' => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!    'key_path'  => 'path/to/your/key',      // XXX: 绝对路径!!!!];$app = Factory::payment($config);// 执行企业付款到零钱$result = $app->transfer->toBalance([    'partner_trade_no' => '1233455', // 商户订单号,具有唯一性(只能是字母或者数字)    'openid'           => 'oxTWIuGaIt6gTKsQRLau2M0yL16E', // 提现用户openid    'check_name'       => 'FORCE_CHECK', // NO_CHECK:不校验姓名, FORCE_CHECK:强校验真实姓名    're_user_name'     => '王小帅', // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名    'amount'           => 10000,  // 企业付款金额,单位为分    'desc'             => '提现', // 企业付款操作说明信息。必填]);

3. 提现成功返回值


return_code 通信标识, 表示接口是否请求成功, 而不是交易标识, 不能用于判断提现结果

result_code 业务结果标识, 当其值为 SUCCESS 时表示 提现成功

执行提现应使用try catch捕获错误, 因为当证书文件错误时是抛出异常, 而不是以返回值的形式返回

try {    $result = $app->transfer->toBalance();} catch (\Throwable $e) {    fault($e->getMessage());}if ( !empty($result['result_code']) && $result['result_code'] === 'SUCCESS') {    // 提现成功} else {    // 提现失败}
[    'return_code'      => 'SUCCESS',    'return_msg'       => NULL,    'mch_appid'        => 'wxb80ec74221f8a9ff',    'mchid'            => '1538483281',    'nonce_str'        => '60af3d9658162',    'result_code'      => 'SUCCESS',    'partner_trade_no' => 'TX202105271435025469',    'payment_no'       => '10101052430722105279091545815496',    'payment_time'     => '2021-05-27 14:34:59',]

4. 提现失败返回值 (常见场景)


开启检验用户名并且验证失败时

[    'return_code'  => 'SUCCESS',    'return_msg'   => '参数错误:没有找到对应校验用户姓名选项.',    'result_code'  => 'FAIL',    'err_code'     => 'PARAM_ERROR',    'err_code_des' => '参数错误:没有找到对应校验用户姓名选项.',]

提现金额小于 0.3 元

[    'return_code'  => 'SUCCESS'    'return_msg'   => '支付失败'    'mch_appid'    => 'wxb80ec74221f8a9ff'    'mchid'        => '1538483281'    'result_code'  => 'FAIL'    'err_code'     => 'AMOUNT_LIMIT'    'err_code_des' => '付款金额超出限制。低于最小金额0.30元或累计超过5000.00元。']
更新于:2个月前
赞一波!

文章评论

评论问答