@gt6/sdk 1.0.15 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1748,6 +1748,146 @@ class UsersAPI {
1748
1748
  }
1749
1749
  }
1750
1750
 
1751
+ /**
1752
+ * 交易管理API模块
1753
+ * 提供资金扣款、订单创建等功能
1754
+ */
1755
+ class TransactionsAPI {
1756
+ constructor(client) {
1757
+ this.client = client;
1758
+ }
1759
+ /**
1760
+ * 资金扣款
1761
+ * @param deductData 扣款数据
1762
+ * @returns 扣款响应
1763
+ */
1764
+ async deductFunds(deductData) {
1765
+ try {
1766
+ // 获取用户token
1767
+ const token = this.getToken();
1768
+ if (!token) {
1769
+ return {
1770
+ success: false,
1771
+ message: '用户未登录'
1772
+ };
1773
+ }
1774
+ const response = await this.client.request('/web/user/fund/deduct', {
1775
+ method: 'POST',
1776
+ headers: {
1777
+ 'Authorization': `Bearer ${token}`,
1778
+ 'Content-Type': 'application/json'
1779
+ },
1780
+ body: JSON.stringify(deductData)
1781
+ });
1782
+ return response;
1783
+ }
1784
+ catch (error) {
1785
+ // 如果是HTTP错误,尝试解析响应体
1786
+ if (error.statusCode && error.message) {
1787
+ // 对于401错误,返回认证失败信息
1788
+ if (error.statusCode === 401) {
1789
+ return {
1790
+ success: false,
1791
+ message: '认证失败,请重新登录'
1792
+ };
1793
+ }
1794
+ // 对于400错误,可能是余额不足等业务错误
1795
+ if (error.statusCode === 400) {
1796
+ return {
1797
+ success: false,
1798
+ message: error.message || '扣款失败,请检查余额'
1799
+ };
1800
+ }
1801
+ // 对于其他HTTP错误,返回状态码信息
1802
+ return {
1803
+ success: false,
1804
+ message: error.message || `HTTP ${error.statusCode} 错误`
1805
+ };
1806
+ }
1807
+ // 对于网络错误或其他错误
1808
+ return {
1809
+ success: false,
1810
+ message: error instanceof Error ? error.message : '资金扣款失败'
1811
+ };
1812
+ }
1813
+ }
1814
+ /**
1815
+ * 创建零售订单
1816
+ * @param orderData 订单数据
1817
+ * @returns 创建订单响应
1818
+ */
1819
+ async createRetailOrder(orderData) {
1820
+ try {
1821
+ // 获取用户token
1822
+ const token = this.getToken();
1823
+ if (!token) {
1824
+ return {
1825
+ success: false,
1826
+ message: '用户未登录'
1827
+ };
1828
+ }
1829
+ const response = await this.client.request('/web/orders', {
1830
+ method: 'POST',
1831
+ headers: {
1832
+ 'Authorization': `Bearer ${token}`,
1833
+ 'Content-Type': 'application/json'
1834
+ },
1835
+ body: JSON.stringify(orderData)
1836
+ });
1837
+ return response;
1838
+ }
1839
+ catch (error) {
1840
+ // 如果是HTTP错误,尝试解析响应体
1841
+ if (error.statusCode && error.message) {
1842
+ // 对于401错误,返回认证失败信息
1843
+ if (error.statusCode === 401) {
1844
+ return {
1845
+ success: false,
1846
+ message: '认证失败,请重新登录'
1847
+ };
1848
+ }
1849
+ // 对于400错误,可能是订单数据有误
1850
+ if (error.statusCode === 400) {
1851
+ return {
1852
+ success: false,
1853
+ message: error.message || '订单数据有误,请检查输入'
1854
+ };
1855
+ }
1856
+ // 对于其他HTTP错误,返回状态码信息
1857
+ return {
1858
+ success: false,
1859
+ message: error.message || `HTTP ${error.statusCode} 错误`
1860
+ };
1861
+ }
1862
+ // 对于网络错误或其他错误
1863
+ return {
1864
+ success: false,
1865
+ message: error instanceof Error ? error.message : '创建订单失败'
1866
+ };
1867
+ }
1868
+ }
1869
+ /**
1870
+ * 获取用户token(从本地存储)
1871
+ * @returns token或null
1872
+ */
1873
+ getToken() {
1874
+ if (typeof window !== 'undefined' && window.localStorage) {
1875
+ const userDataStr = localStorage.getItem('userData');
1876
+ if (userDataStr) {
1877
+ try {
1878
+ const userData = JSON.parse(userDataStr);
1879
+ return userData.token || null;
1880
+ }
1881
+ catch (error) {
1882
+ console.warn('解析用户数据失败:', error);
1883
+ return null;
1884
+ }
1885
+ }
1886
+ }
1887
+ return null;
1888
+ }
1889
+ }
1890
+
1751
1891
  /**
1752
1892
  * GT6 SDK 主类
1753
1893
  * 提供文章、产品、设置、表单和用户管理相关的所有功能
@@ -1760,6 +1900,7 @@ class GT6SDK {
1760
1900
  this.settings = new SettingsAPI(client);
1761
1901
  this.forms = new FormsAPI(client);
1762
1902
  this.users = new UsersAPI(client);
1903
+ this.transactions = new TransactionsAPI(client);
1763
1904
  }
1764
1905
  /**
1765
1906
  * 获取客户端实例(用于高级用法)
@@ -2121,7 +2262,19 @@ class GT6SDK {
2121
2262
  async uploadFile(file) {
2122
2263
  return this.users.uploadFile(file);
2123
2264
  }
2265
+ /**
2266
+ * 便捷方法:资金扣款
2267
+ */
2268
+ async deductFunds(deductData) {
2269
+ return this.transactions.deductFunds(deductData);
2270
+ }
2271
+ /**
2272
+ * 便捷方法:创建零售订单
2273
+ */
2274
+ async createRetailOrder(orderData) {
2275
+ return this.transactions.createRetailOrder(orderData);
2276
+ }
2124
2277
  }
2125
2278
 
2126
- export { ArticlesAPI, FormsAPI, GT6Client, GT6Error, GT6SDK, ProductsAPI, SettingsAPI, UsersAPI, GT6SDK as default };
2279
+ export { ArticlesAPI, FormsAPI, GT6Client, GT6Error, GT6SDK, ProductsAPI, SettingsAPI, TransactionsAPI, UsersAPI, GT6SDK as default };
2127
2280
  //# sourceMappingURL=gt6-sdk.esm.js.map