Shop.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace common\components\delivery\platform\huolala;
  3. use common\components\delivery\helpers\HttpClient;
  4. /**
  5. * 货拉拉商户钱包相关接口
  6. *
  7. * 用于查询商户账户余额、子账户信息等钱包相关的操作
  8. */
  9. class Shop extends Huolala
  10. {
  11. /**
  12. * 查询钱包余额
  13. *
  14. * 通过此接口可以获取商户账户总余额、账户状态、子账户信息等详细的钱包信息
  15. *
  16. * 文档参考:u-wallet-account API
  17. *
  18. * @param string|null $ip 客户端IP地址(可选参数)
  19. * @return array 包含以下字段的响应数据:
  20. * - user_id: 账户编号
  21. * - account_status: 账户状态 (5-审批中, 10-正常, 20-锁定, 25-资金不可出, 30-不可入)
  22. * - total_amount: 账户总余额
  23. * - sub_account_list: 子账户信息列表
  24. * - total_amount: 总余额
  25. * - avl_amount: 可用余额
  26. * - freeze_amount: 冻结金额
  27. * - sub_account_type: 子账户类型 (1-本金, 2-不可提现, 3-赠金, 4-红包)
  28. * - sub_account_status: 账户状态
  29. */
  30. public function queryWalletBalance($ip = null)
  31. {
  32. // 构建请求数据
  33. $apiData = [];
  34. if (!empty($ip)) {
  35. $apiData['ip'] = $ip;
  36. }
  37. // 构建请求参数(包含access_token进行用户授权)
  38. $payload = $this->buildRequestPayload('u-wallet-account', $apiData, $this->accessToken);
  39. // 发送请求
  40. $resp = HttpClient::post($this->baseUrl, $payload);
  41. // 检查API响应状态
  42. if (isset($resp['ret']) && $resp['ret'] == 0) {
  43. return [
  44. 'success' => true,
  45. 'balance' => $resp['data']['total_amount'],
  46. 'message' => '查询余额成功',
  47. ];
  48. }
  49. return [
  50. 'success' => false,
  51. 'balance' => 0,
  52. 'message' => '查询余额失败',
  53. ];
  54. }
  55. }