payscore.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /**
  2. * 微信支付分相关 API
  3. */
  4. import { get, post } from '../utils/request';
  5. import { API_PATHS } from '../utils/config';
  6. /**
  7. * 预创建支付分服务订单(需确认模式,开门前调用)
  8. */
  9. export interface PreCreatePayscoreOrderRequest {
  10. deviceId: string;
  11. }
  12. export interface PreCreatePayscoreOrderResponse {
  13. success: boolean;
  14. outOrderNo: string;
  15. package: string;
  16. mchId?: string;
  17. errorMsg?: string;
  18. }
  19. export const preCreatePayscoreOrder = (params: PreCreatePayscoreOrderRequest): Promise<PreCreatePayscoreOrderResponse> => {
  20. return post<PreCreatePayscoreOrderResponse>(API_PATHS.preCreatePayscoreOrder, params);
  21. };
  22. /**
  23. * 创建支付分服务订单
  24. */
  25. export interface CreatePayscoreOrderRequest {
  26. orderId: number;
  27. openId: string;
  28. riskFundAmount?: string;
  29. riskFundName?: string;
  30. }
  31. export interface CreatePayscoreOrderResponse {
  32. outOrderNo: string;
  33. state: string;
  34. package: string;
  35. }
  36. export const createPayscoreOrder = (params: CreatePayscoreOrderRequest): Promise<CreatePayscoreOrderResponse> => {
  37. return post<CreatePayscoreOrderResponse>(API_PATHS.createPayscoreOrder, params);
  38. };
  39. /**
  40. * 修改支付分订单金额
  41. */
  42. export interface ModifyPayscoreOrderRequest {
  43. orderId: number;
  44. totalAmount: number;
  45. payments?: Array<{ name: string; amount: number; description?: string; count?: number }>;
  46. reason?: string;
  47. }
  48. export const modifyPayscoreOrder = (params: ModifyPayscoreOrderRequest): Promise<{ outOrderNo: string; state: string }> => {
  49. return post<{ outOrderNo: string; state: string }>(API_PATHS.modifyPayscoreOrder, params);
  50. };
  51. /**
  52. * 同步订单支付信息(用户已通过其他方式支付)
  53. */
  54. export const syncPayscoreOrderInfo = (orderId: number, detail?: string): Promise<{ outOrderNo: string; state: string }> => {
  55. return post<{ outOrderNo: string; state: string }>(API_PATHS.syncPayscoreOrderInfo(orderId), { detail });
  56. };
  57. /**
  58. * 支付分退款
  59. */
  60. export interface RefundPayscoreOrderRequest {
  61. refundAmount?: number;
  62. reason?: string;
  63. }
  64. export const refundPayscoreOrder = (orderId: number, params: RefundPayscoreOrderRequest): Promise<{ outOrderNo: string; refundId: string }> => {
  65. return post<{ outOrderNo: string; refundId: string }>(API_PATHS.refundPayscoreOrder(orderId), params);
  66. };
  67. /**
  68. * 查询支付分退款状态
  69. */
  70. export const queryPayscoreRefund = (orderId: number, outRefundNo: string): Promise<{ outOrderNo: string; status: string; amount: number }> => {
  71. return get<{ outOrderNo: string; status: string; amount: number }>(API_PATHS.queryPayscoreRefund(orderId, outRefundNo));
  72. };
  73. /**
  74. * 按 outOrderNo 查询支付分订单状态(授权返回后判断用户确认还是取消)
  75. */
  76. export const queryPayscoreByOutNo = (outOrderNo: string): Promise<{ outOrderNo: string; state: string }> => {
  77. return get<{ outOrderNo: string; state: string }>(API_PATHS.queryPayscoreByOutNo(outOrderNo), undefined, { silent: true });
  78. };
  79. /**
  80. * 获取微信支付分订单详情签名参数(用于 wx.openBusinessView)
  81. */
  82. export interface PayscoreDetailSignRequest {
  83. outOrderNo: string;
  84. }
  85. export interface PayscoreDetailSignResponse {
  86. mchId: string;
  87. serviceId: string;
  88. outOrderNo: string;
  89. timestamp: string;
  90. nonceStr: string;
  91. signType: string;
  92. sign: string;
  93. }
  94. export const getPayscoreDetailSign = (params: PayscoreDetailSignRequest): Promise<PayscoreDetailSignResponse> => {
  95. return post<PayscoreDetailSignResponse>(API_PATHS.getPayscoreDetailSign, params);
  96. };