ucard.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. import { $api } from '@/composables/fetch'
  2. // 基础响应接口
  3. export interface BaseResponse<T = any> {
  4. code: number;
  5. data: T;
  6. msg: string;
  7. }
  8. // 分页请求参数接口
  9. export interface PageParams {
  10. page: {
  11. current: number;
  12. row: number;
  13. }
  14. [key: string]: any;
  15. }
  16. // 分页响应接口
  17. export interface PageResponse<T> {
  18. data: T[];
  19. code: number;
  20. msg: string;
  21. page: {
  22. current: number;
  23. pageTotal: number;
  24. row: number;
  25. rowTotal: number;
  26. }
  27. }
  28. // 卡片类型相关接口
  29. export interface CardType {
  30. id: string;
  31. name: string;
  32. [key: string]: any;
  33. }
  34. export interface CardTypeParams extends PageParams {
  35. name?: string;
  36. status?: number;
  37. }
  38. // 商户相关接口
  39. export interface MerchantUser {
  40. id: string;
  41. username: string;
  42. [key: string]: any;
  43. }
  44. export interface MerchantAccount {
  45. balance: number;
  46. [key: string]: any;
  47. }
  48. export interface MerchantParams extends PageParams {
  49. username?: string;
  50. status?: number;
  51. }
  52. // KYC相关接口
  53. export interface KycInfo {
  54. id: string;
  55. status: number;
  56. [key: string]: any;
  57. }
  58. export interface KycParams {
  59. merchantId: string;
  60. [key: string]: any;
  61. }
  62. // 卡片相关接口
  63. export interface CardInfo {
  64. id: string;
  65. cardNo: string;
  66. [key: string]: any;
  67. }
  68. export interface CardApplyParams {
  69. cardTypeId: string;
  70. [key: string]: any;
  71. }
  72. // 交易相关接口
  73. export interface TransactionInfo {
  74. id: string;
  75. amount: number;
  76. [key: string]: any;
  77. }
  78. export interface TransactionParams extends PageParams {
  79. cardId?: string;
  80. type?: number;
  81. }
  82. // 转账相关接口
  83. export interface TransferInfo {
  84. id: string;
  85. amount: number;
  86. [key: string]: any;
  87. }
  88. export interface TransferParams {
  89. cardId: string;
  90. uniqueId: string;
  91. [key: string]: any;
  92. }
  93. // 汇率相关接口
  94. export interface RateInfo {
  95. fromCurrency: string;
  96. toCurrency: string;
  97. rate: number;
  98. }
  99. // 国家城市相关接口
  100. export interface CountryCityInfo {
  101. code: string;
  102. cnName: string;
  103. enName: string;
  104. }
  105. // 代付校验参数
  106. export interface ucardValidateParams{
  107. bankId: number;
  108. uniqueId: string;
  109. originOrderNo: string;
  110. amount: number;
  111. postscript: string;
  112. relationship: string;
  113. sourceFunds: string;
  114. payPurpose: string;
  115. payerType: string;
  116. payerLastName: string;
  117. payerFirstName: string;
  118. payerIdNo: string;
  119. payerIdNoType: string;
  120. payerIdCountry: string;
  121. payerBirthday: string;
  122. payerNationalityCountry: string;
  123. payerMobile: string;
  124. payerCountryCode: string;
  125. payerCityCode: string;
  126. payerAddress: string;
  127. payerPostCode: string;
  128. payerOccupation: string;
  129. benAccountNum: string;
  130. benAccountName: string;
  131. benCountryCode: string;
  132. benCityCode: string;
  133. benAddress: string;
  134. benPostCode: string;
  135. benTransBankSwift: string;
  136. benLastName: string;
  137. benFirstName: string;
  138. benNationalityCountry: string;
  139. benIdNoType: string;
  140. benIdNo: string;
  141. benIdExpirationDate: string;
  142. benBirthday: string;
  143. benMobileCode: string;
  144. benMobile: string;
  145. benBankAccountType: string;
  146. benBankCode: string;
  147. payer: ucardValidateParams;
  148. payee: ucardValidateParams;
  149. }
  150. export const ucardApi = {
  151. //获取卡片类型列表
  152. cardTypesList(params: CardTypeParams = { page: { current: 1, row: 10 } }): Promise<BaseResponse<PageResponse<CardType>>> {
  153. return $api.post("/ucard/api/card/types/page", { ...params});
  154. },
  155. // 更新卡片类型列表
  156. updateCardTypes(params: Partial<CardType> = {}): Promise<BaseResponse> {
  157. return $api.post("/ucard/api/card/types", { ...params });
  158. },
  159. // 商户用户分页列表
  160. merchantList(params: MerchantParams = { page: { current: 1, row: 10 } }): Promise<BaseResponse<PageResponse<MerchantUser>>> {
  161. return $api.post("/ucard/api/merchant/user/page", { ...params });
  162. },
  163. // 查询商户账户信息
  164. merchantAccount(params: { merchantId: string }): Promise<BaseResponse<MerchantAccount>> {
  165. return $api.post("/ucard/api/merchant/account", { ...params });
  166. },
  167. // 商户注册选择用户列表
  168. merchantSearch(params: { keyword: string }): Promise<BaseResponse<MerchantUser[]>> {
  169. return $api.post("/custom/search/ucard", { ...params });
  170. },
  171. // 商户用户注册
  172. merchantRegister(params: Partial<MerchantUser>): Promise<BaseResponse> {
  173. return $api.post("/ucard/api/merchant/user/register", { ...params });
  174. },
  175. // 更新商户用户信息
  176. merchantUpdate(params: Partial<MerchantUser>): Promise<BaseResponse> {
  177. return $api.post("/ucard/api/merchant/user/update", { ...params });
  178. },
  179. // 上传KYC附件
  180. kycUpload(params: FormData): Promise<BaseResponse<{ url: string }>> {
  181. return $api.post("/ucard/api/merchant/kyc/upload", { ...params });
  182. },
  183. // 提交KYC认证
  184. kycSubmit(params: KycParams): Promise<BaseResponse> {
  185. return $api.post("/ucard/api/merchant/kyc/submit", { ...params });
  186. },
  187. // 查询KYC认证状态
  188. kycStatus(params: { merchantId: string }): Promise<BaseResponse<KycInfo>> {
  189. return $api.post("/ucard/api/merchant/kyc/status", { ...params });
  190. },
  191. // 获取卡片申请列表
  192. applyList(params: PageParams): Promise<BaseResponse<PageResponse<PageParams>>> {
  193. return $api.post("/ucard/api/card/apply/page", { ...params });
  194. },
  195. // 获取卡片列表
  196. cardList(params: PageParams): Promise<BaseResponse<PageResponse<PageParams>>> {
  197. return $api.post("/ucard/api/card/list", { ...params });
  198. },
  199. // 充值记录分页查询
  200. rechargeList(params: TransactionParams): Promise<BaseResponse<PageResponse<TransactionInfo>>> {
  201. return $api.post("/ucard/api/card/recharge/page", { ...params });
  202. },
  203. // 查询交易记录分页列表
  204. transactionsList(params: TransactionParams): Promise<BaseResponse<PageResponse<TransactionInfo>>> {
  205. return $api.post("/ucard/api/card/transac/page", { ...params });
  206. },
  207. // 用户订单分页查询
  208. transferList(params: TransactionParams): Promise<BaseResponse<PageResponse<TransferInfo>>> {
  209. return $api.post("/ucard/api/transfer/page", { ...params });
  210. },
  211. // 文件上传
  212. ucardUpload(params: FormData): Promise<BaseResponse<{ url: string }>> {
  213. return $api.post("/ucard/api/upload/file", { ...params });
  214. },
  215. // 申请开卡
  216. ucardApply(params: CardApplyParams): Promise<BaseResponse> {
  217. return $api.post("/ucard/api/card/apply", { ...params });
  218. },
  219. // kyc列表
  220. kycList(params: PageParams): Promise<BaseResponse<PageResponse<KycInfo>>> {
  221. return $api.post("/ucard/api/merchant/kyc/page", { ...params });
  222. },
  223. // 获取kyc卡片类型列表
  224. cardKycTypesList(params: PageParams): Promise<BaseResponse<PageResponse<CardType>>> {
  225. return $api.post("/ucard/api/card/types/list", { ...params });
  226. },
  227. // 查询开卡进度
  228. ucardApplyProgress(params: { applyId: string }): Promise<BaseResponse<{ status: number; message: string }>> {
  229. return $api.post("/ucard/api/card/apply/progress", { ...params });
  230. },
  231. // 银行卡激活
  232. ucardActivate(params: { cardNo: string; uniqueId: string, password:string }): Promise<BaseResponse> {
  233. return $api.post("/ucard/api/card/activate", { ...params });
  234. },
  235. // 查询充值预估到账金额
  236. ucardRechargeEstimate(params: { amount: number; currency: string }): Promise<BaseResponse<{ estimatedAmount: number }>> {
  237. return $api.post("/ucard/api/card/recharge/estimate", { ...params });
  238. },
  239. // 银行卡充值
  240. ucardRecharge(params: { cardNo: string; amount: number; currency: string,uniqueId:string }): Promise<BaseResponse> {
  241. return $api.post("/ucard/api/card/recharge", { ...params });
  242. },
  243. // 查询充值订单
  244. ucardRechargeOrder(params: { orderNo: string }): Promise<BaseResponse<TransactionInfo>> {
  245. return $api.post("/ucard/api/card/recharge/order", { ...params });
  246. },
  247. // 查询卡片余额
  248. ucardBalance(params: { cardNo: string; uniqueId: string }): Promise<BaseResponse<{ balance: number; currency: string }>> {
  249. return $api.post("/ucard/api/card/balance", { ...params });
  250. },
  251. // 找回密码
  252. ucardResetPassword(params: { cardNo: string; newPassword: string }): Promise<BaseResponse> {
  253. return $api.post("/ucard/api/card/password/reset", { ...params });
  254. },
  255. // 冻结卡片
  256. ucardFreeze(params: { cardNo: string; uniqueId: string }): Promise<BaseResponse> {
  257. return $api.post("/ucard/api/card/freeze", { ...params });
  258. },
  259. // 解冻卡片
  260. ucardUnfreeze(params: { cardNo: string; uniqueId: string }): Promise<BaseResponse> {
  261. return $api.post("/ucard/api/card/unfreeze", { ...params });
  262. },
  263. // 查询速汇银行及相关配置
  264. ucardBanks(params: {}): Promise<BaseResponse<Array<{ bankCode: string; bankName: string }>>> {
  265. return $api.post("/ucard/api/transfer/banks", { ...params });
  266. },
  267. // 查询法币汇率
  268. ucardRate(params: { targetCurrency: string; currency: string; targetCountry:string }): Promise<BaseResponse<RateInfo>> {
  269. return $api.post("/ucard/api/transfer/rate", { ...params });
  270. },
  271. // 代付校验
  272. ucardValidate(params: ucardValidateParams): Promise<BaseResponse<{ valid: boolean; message: string }>> {
  273. return $api.post("/ucard/api/transfer/validate", { ...params });
  274. },
  275. // 代付付款人校验
  276. ucardValidatePayer(params: ucardValidateParams): Promise<BaseResponse<{ valid: boolean; message: string }>> {
  277. return $api.post("/ucard/api/transfer/validate/payer", { ...params });
  278. },
  279. // 代付收款人校验
  280. ucardValidatePayee(params: ucardValidateParams): Promise<BaseResponse<{ valid: boolean; message: string }>> {
  281. return $api.post("/ucard/api/transfer/validate/payee", { ...params });
  282. },
  283. // 代付
  284. ucardTransfer(params: ucardValidateParams): Promise<BaseResponse<{ orderId: string }>> {
  285. return $api.post("/ucard/api/transfer", { ...params });
  286. },
  287. // 提交调单信息或文件
  288. ucardDispute(params: { orderId: string; reason: string; files?: FormData }): Promise<BaseResponse> {
  289. return $api.post("/ucard/api/transfer/dispute", { ...params });
  290. },
  291. // 查询订单结果
  292. ucardResult(params: { orderId: string }): Promise<BaseResponse<{ status: number; message: string }>> {
  293. return $api.post("/ucard/api/transfer/order/result", { ...params });
  294. },
  295. // 国家城市
  296. ucardCountryCity(params: { code?: string }): Promise<BaseResponse<CountryCityInfo[]>> {
  297. return $api.post("/ucard/api/card/country", { ...params });
  298. },
  299. // 手机区号获取
  300. countryGet(): Promise<BaseResponse<Array<{ code: string; name: string,enName:string,callingCode:string }>>> {
  301. return $api.post("/country/get",{});
  302. },
  303. // 获取卡片详情
  304. cardSingle(params: { id: string }): Promise<BaseResponse<CardInfo>> {
  305. return $api.post("/ucard/api/card/single", { ...params });
  306. },
  307. // 获取卡片交易详情
  308. cardTransacSingle(params: { id: string }): Promise<BaseResponse<TransactionInfo>> {
  309. return $api.post("/ucard/api/card/transac/single", { ...params });
  310. },
  311. ucardOrderDetail: (params: { orderNo: string }) => {
  312. return $api.get('/api/ucard/order/detail', { params })
  313. },
  314. // 速汇转账详情
  315. ucardTransferSingle(params: { id: string }): Promise<BaseResponse<TransferInfo>> {
  316. return $api.post('/ucard/api/transfer/single', params)
  317. },
  318. }