分账

官方文档 https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=27_1&index=1

  1. use EasyWeChat\Factory;
  2. $config = [
  3. 'app_id' => '***',
  4. "secret" => "***",
  5. 'mch_id' => '***',
  6. 'key' => '***',
  7. 'cert_path' => 'cert.pem',
  8. 'key_path' => 'key.pem',
  9. 'notify_url' => 'http://***.com/notify.php',
  10. ];
  11. $payment = Factory::payment($config);

添加接收方

商户发起添加分账接收方请求,后续可通过发起分账请求将结算后的钱分到该分账接收方。

  1. $receiver = [
  2. "type" => "PERSONAL_OPENID",
  3. "account" => "…………",//PERSONAL_OPENID:个人openid
  4. "name" => "张三",//接收方真实姓名
  5. "relation_type" => "PARTNER"
  6. ];
  7. $payment->profit_sharing->addReceiver($receiver);
  8. $receiver = [
  9. "type" => "MERCHANT_ID",
  10. "account" => "132456798",//MERCHANT_ID:商户ID
  11. "name" => "商户全称",//商户全称
  12. "relation_type" => "PARTNER"
  13. ];
  14. $payment->profit_sharing->addReceiver($receiver);

删除接收方

  1. $payment->profit_sharing->deleteReceiver($receiver);

单次分账

  1. $transaction_id = "***";
  2. $out_trade_no = "***";
  3. $receivers = [
  4. [
  5. "type" => "PERSONAL_OPENID",
  6. "account" => "***",
  7. "amount" => 2,
  8. "description" => "分到个人"
  9. ],
  10. [
  11. "type" => "MERCHANT_ID",
  12. "account" => "***",
  13. "amount" => 1,
  14. "description" => "分到商户"
  15. ]
  16. ];
  17. $sharing = $payment->profit_sharing->share($transaction_id,$out_trade_no,$receivers);

多次分账

  1. $payment->profit_sharing->multiShare($transaction_id,$out_trade_no,$receivers);

多次分账完结

  1. $params = [
  2. "transaction_id" => "",
  3. "out_order_no" => "",
  4. "description" => ""
  5. ];
  6. $payment->profit_sharing->markOrderAsFinished($params);

分账查询

  1. $res = $payment->profit_sharing->query($transaction_id,$out_trade_no);

查询结果

  1. Array
  2. (
  3. [return_code] => SUCCESS
  4. [result_code] => SUCCESS
  5. [mch_id] => ***
  6. [nonce_str] => 38e92cbe2790642f
  7. [sign] => 8904B6440C58785540950F2911500F55C9A94CAC75790B0721B9AA470E6BF9A8
  8. [transaction_id] => 4200000589202007249764665257
  9. [out_order_no] => 202007241544057945
  10. [order_id] => 30000103702020072402011591464
  11. [status] => FINISHED
  12. [receivers] => [{"type":"MERCHANT_ID","account":"***","amount":7,"description":"解冻给分账方","result":"SUCCESS","finish_time":"20200724172033"},{"type":"PERSONAL_OPENID","account":"***","amount":2,"description":"分到个人1","result":"SUCCESS","finish_time":"20200724172033"},{"type":"PERSONAL_OPENID","account":"***-g4","amount":1,"description":"分到郭","result":"SUCCESS","finish_time":"20200724172034"}]
  13. )

分账退回

  1. $out_trade_no = "***";//退款订单号
  2. $out_return_no = "***";//系统内部退款单号
  3. $return_amount = 1;
  4. $return_account = "***-g4";
  5. $description = "订单取消";
  6. $payment->profit_sharing->returnShare($out_trade_no,$out_return_no,$return_amount,$return_account,$description);