alipay_rom.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*******************************************************************************
  2. * @file alipay_rom.h
  3. * @author ZS308A Team
  4. * @version V1.0
  5. * @date 2022-12-13
  6. * @brief alipay rom api
  7. *******************************************************************************/
  8. #ifndef _ALIPAY_ROM_H
  9. #define _ALIPAY_ROM_H
  10. /******************************************************************************/
  11. //includes
  12. /******************************************************************************/
  13. #include <stdint.h>
  14. #include <stdarg.h>
  15. #include "alipay_third.h"
  16. /******************************************************************************/
  17. //constants
  18. /******************************************************************************/
  19. /******************************************************************************/
  20. //typedef
  21. /******************************************************************************/
  22. #ifdef __CC_ARM /* ARM Compiler */
  23. #pragma anon_unions
  24. #endif
  25. /* alipay os api */
  26. typedef struct {
  27. void (*alipay_slave_write)(uint8_t buf[],uint8_t len);
  28. void (*alipay_ble_timer_start)(void);
  29. void (*wxpay_slave_write)(uint8_t buf[],uint8_t len);
  30. void (*wxpay_ble_timer_start)(void);
  31. void (*get_mac_addr)(uint8_t mac_addr[]);
  32. uint32_t (*get_unix_second)(void);
  33. void (*rand_get_value)(uint8_t rand_buf[],uint8_t *len);
  34. uint32_t (*flash_get_start)(void);
  35. void (*flash_read_data)(uint32_t addr,uint8_t read_data[],unsigned short len);
  36. void (*flash_write_data)(uint32_t addr,uint8_t write_data[],unsigned short len);
  37. void (*flash_erase_page)(uint32_t addr);
  38. void (*printf)(const char *format, int32_t value);
  39. } alipay_os_api_t;
  40. /* alipay api */
  41. typedef struct {
  42. /* Init env and os api */
  43. void (*init)(const alipay_os_api_t *api);
  44. /* pay lib api */
  45. uint8_t (*pay_lib_init)(uint8_t type);
  46. void (*alipay_send_ble_data_proc)(void);
  47. void (*alipay_master_write_data)(uint8_t buf[],uint8_t len);
  48. alipay_status_e (*alipay_get_bind_status)(uint32_t unix_second,uint8_t is_connected,uint8_t type);
  49. void (*alipay_get_bind_code)(uint8_t buf[],uint8_t *buf_size);
  50. void (*alipay_get_pay_code)(uint8_t buf[],uint16_t *buf_size);
  51. void (*alipay_get_userinfo)(uint8_t nick_name[],uint16_t *name_len,uint8_t login_id[],uint16_t *id_len);
  52. void (*alipay_detect_bind)(void);
  53. void (*wxpay_send_ble_data_proc)(void);
  54. void (*wxpay_master_write_data)(uint8_t buf[],uint8_t len);
  55. wxpay_status_e (*wxpay_get_bind_status)(uint32_t unix_second,uint8_t is_connected,uint8_t type);
  56. void (*wxpay_get_bind_code)(uint8_t buf[],uint8_t *buf_size);
  57. void (*wxpay_get_pay_code)(uint8_t buf[],uint16_t *buf_size);
  58. void (*wxpay_get_userinfo)(uint8_t nick_name[],uint16_t *name_len,uint8_t login_id[],uint16_t *id_len);
  59. void (*wxpay_detect_bind)(void);
  60. } alipay_api_t;
  61. /******************************************************************************/
  62. //function
  63. /******************************************************************************/
  64. extern void alipay_rom_init(const alipay_os_api_t *api);
  65. /******************************************************************************/
  66. //api
  67. /******************************************************************************/
  68. #define p_alipay_api ((const alipay_api_t*)CONFIG_ALIPAY_WXPAY_ROM_BASE)
  69. #endif /* _ALIPAY_ROM_H */