alipay_third.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. #ifndef _ALIPAY_THIRD_H
  2. #define _ALIPAY_THIRD_H
  3. #include "alipay_common.h"
  4. #include "wxpay_common.h"
  5. typedef enum{
  6. ALIPAY_BIND_START=0,//绑定提示页面
  7. ALIPAY_BIND_ING,//绑定进行中
  8. ALIPAY_BIND_FINISH,//绑定完成
  9. ALIPAY_BIND_FAIL,//绑定失败
  10. ALIPAY_BIND_OK,
  11. ALIPAY_PAY_ERROR,//支付码获取出错,重新绑定
  12. }alipay_status_e;
  13. typedef enum{
  14. WXPAY_BIND_START=0,//绑定提示页面
  15. WXPAY_BIND_ING,//绑定进行中
  16. WXPAY_BIND_FINISH,//绑定完成
  17. WXPAY_BIND_FAIL,//绑定失败
  18. WXPAY_BIND_OK,
  19. WXPAY_PAY_ERROR,//支付码获取出错,重新绑定
  20. WXPAY_PAY_AGAIN_ERROR,//支付码时间错误,提示页面
  21. }wxpay_status_e;
  22. void alipay_slave_send_noti_data(unsigned char buf[],unsigned char len);
  23. //定时器超时触发的回调
  24. void alipay_send_ble_timeout(void);
  25. //实现定时器 此定时器使用单次模式
  26. void alipay_send_ble_timer_start(void);
  27. //蓝牙从机向主机发送数据,内部已实现队列,用户直接实现ble发送即可
  28. void wxpay_slave_send_noti_data(unsigned char buf[],unsigned char len);
  29. //定时器超时触发的回调
  30. void wxpay_send_ble_timeout(void);
  31. //实现定时器 此定时器使用单次模式
  32. void wxpay_send_ble_timer_start(void);
  33. //实现获取mac地址 研究下mac地址显示方向
  34. void third_paylib_get_mac_addr(unsigned char mac_addr[]);
  35. //实现获取unix时间搓
  36. unsigned int third_paylib_get_unix_second(void);
  37. //实现随机数
  38. void third_rand_get_value(unsigned char rand_buf[],unsigned char *len);
  39. //lib库会对flash进行连续的读写擦除操作,用户需注意!!!!!!!
  40. void third_paylib_flash_read_data(unsigned int addr,unsigned char read_data[],unsigned short len);
  41. void third_paylib_flash_write_data(unsigned int addr,unsigned char write_data[],unsigned short len);
  42. //由于绑定成功后 会处理较长时间,需要在擦除flash时增加清除看门狗的动作!!!!!!
  43. void third_paylib_flash_erase_page(unsigned int addr);
  44. /****************
  45. 支付宝打印调试
  46. ***********************/
  47. void third_alipay_printf(const char *format, int32_t value);
  48. /****************
  49. 微信打印调试
  50. ***********************/
  51. void third_wxpay_printf(const char *format, int32_t value);
  52. /****************
  53. 动态申请内存
  54. *****************/
  55. unsigned char * third_wxcodepay_malloc(size_t size);
  56. /****************
  57. * @brief 动态内存重分配接口
  58. * @note 注意需要和标准库实现一致,即realloc不影响原部分内存
  59. *****************/
  60. unsigned char * third_wxcodepay_realloc(void* buf, size_t new_size);
  61. /****************
  62. 动态内存释放接口
  63. *****************/
  64. void third_wxcodepay_free(void* buf);
  65. /**********************
  66. 手机向手表支付宝profile 写入蓝牙数据
  67. 用户自行在profile的write中调用此接口
  68. **********************/
  69. void alipay_master_write_data(unsigned char buf[],unsigned char len);
  70. /**********************
  71. 手机向手表支付宝profile 写入蓝牙数据
  72. 用户自行在profile的write中调用此接口
  73. 此接口用户接收app授权数据 和alipay_master_write_data放在一起调用
  74. **********************/
  75. void alipay_master_write_data_auth(unsigned char buf[],unsigned char len);
  76. /**********************
  77. 手机向手表微信profile 写入蓝牙数据
  78. 用户自行在profile的write中调用此接口
  79. **********************/
  80. void wxpay_master_write_data(unsigned char buf[],unsigned char len);
  81. /********************************************************
  82. 每次进入支付页面时调用,会校验license是否生效
  83. 0为成功 1为有校验数据但校验失效 2为无校验数据
  84. type:0 进入支付宝页面
  85. type:1 进入微信界面
  86. *********************************************/
  87. unsigned char pay_lib_init(unsigned char type);
  88. /**********************************
  89. 获取绑定状态
  90. unix_second:传入当前unix时间
  91. is_connected:传入当前连接状态
  92. type:0为预留
  93. 1为强制刷新支付码(外部点击刷新支付码时使用) 建议首次获取支付码时也设置为1
  94. 2为更新时间(app同步时间后,调用一次触发lib更新时间戳)
  95. 返回:绑定状态
  96. 当返回 ALIPAY_BIND_FAIL时,用户需要重新调用pay_lib_init对lib库进行初始化
  97. 当返回 ALIPAY_PAY_ERROR时, 用户需要先进行解绑再调用pay_lib_init初始化
  98. ****************************/
  99. alipay_status_e alipay_get_bind_status(unsigned int unix_second,unsigned char is_connected,unsigned char type);
  100. /******************************
  101. 获取绑定码ui显示数据
  102. buf:传入屏幕宽度大小的数组
  103. line:传入当前屏幕刷到第几行
  104. *******************************/
  105. void alipay_get_bond_code_ui(unsigned char buf[],unsigned short line);
  106. /******************************
  107. 获取绑定码数据,由用户自行绘制ui 建议采用code128C编码格式
  108. buf:长度为128大小的数组
  109. buf_size:返回当前条形码数据长度
  110. *******************************/
  111. void alipay_get_bind_code(unsigned char buf[],unsigned char *buf_size);
  112. /******************************
  113. 获取付款码ui显示数据
  114. buf:传入屏幕宽度大小的数组
  115. line:传入当前屏幕刷到第几行
  116. *******************************/
  117. void alipay_get_pay_code_ui(unsigned char buf[],unsigned short line);
  118. /******************************
  119. 获取条形码字节数据,由用户自行绘制ui 建议采用code128C编码格式
  120. buf:长度为128大小的数组
  121. buf_size:返回当前条形码数据长度
  122. *******************************/
  123. void alipay_get_pay_code128(unsigned char buf[],unsigned short *buf_size);
  124. /******************************
  125. 获取用户信息数据,由用户自行绘制ui 建议采用code128C编码格式
  126. nick_name:长度为32大小的数组
  127. name_len:返回当前用户名大小
  128. login_id:长度为32大小的数组
  129. id_len:返回当前用户id大小
  130. 数据内容为UTF-8
  131. *******************************/
  132. void alipay_get_userinfo(unsigned char nick_name[],unsigned short *name_len,unsigned char login_id[],unsigned short *id_len);
  133. /*********************************
  134. //解除支付宝绑定接口
  135. 调用解除绑定后,需要重新调用pay_lib_init对lib库进行初始化
  136. *************************/
  137. void alipay_detect_bind(void);
  138. /**********************************
  139. 获取绑定状态
  140. unix_second:传入当前unix时间
  141. is_connected:传入当前连接状态
  142. type:type:0为预留
  143. 1为强制刷新支付码(外部点击刷新支付码时使用) 建议首次获取支付码时也设置为1
  144. 2为更新时间(app同步时间后,调用一次触发lib更新时间戳)
  145. 返回:绑定状态
  146. 当返回 WXPAY_BIND_FAIL时,用户需要重新调用pay_lib_init对lib库进行初始化
  147. 当返回 WXPAY_PAY_ERROR时, 用户需要先进行解绑再调用pay_lib_init初始化
  148. ****************************/
  149. wxpay_status_e wxpay_get_bind_status(unsigned int unix_second,unsigned char is_connected,unsigned char type);
  150. /******************************
  151. 获取绑定码ui显示数据
  152. buf:传入屏幕宽度大小的数组
  153. line:传入当前屏幕刷到第几行
  154. *******************************/
  155. void wxpay_get_bond_code_ui(unsigned char buf[],unsigned short line);
  156. /******************************
  157. 获取绑定码数据,由用户自行绘制ui 建议采用code128C编码格式
  158. buf:长度为128大小的数组
  159. buf_size:返回当前条形码数据长度
  160. *******************************/
  161. void wxpay_get_bind_code(unsigned char buf[],unsigned char *buf_size);
  162. /******************************
  163. 获取付款码ui显示数据
  164. buf:传入屏幕宽度大小的数组
  165. line:传入当前屏幕刷到第几行
  166. *******************************/
  167. void wxpay_get_pay_code_ui(unsigned char buf[],unsigned short line);
  168. /******************************
  169. 获取条形码字节数据,由用户自行绘制ui 建议采用code128C编码格式
  170. buf:长度为128大小的数组
  171. buf_size:返回当前条形码数据长度
  172. *******************************/
  173. void wxpay_get_pay_code128(unsigned char buf[],unsigned short *buf_size);
  174. /******************************
  175. 获取用户信息数据,由用户自行绘制ui 建议采用code128C编码格式
  176. nick_name:长度为32大小的数组
  177. name_len:返回当前用户名大小
  178. login_id:长度为32大小的数组
  179. id_len:返回当前用户id大小
  180. 数据内容为UTF-8
  181. *******************************/
  182. void wxpay_get_userinfo(unsigned char nick_name[],unsigned short *name_len,unsigned char login_id[],unsigned short *id_len);
  183. /*********************************
  184. //解除微信绑定接口
  185. 调用解除绑定后,需要重新调用pay_lib_init对lib库进行初始化
  186. *************************/
  187. void wxpay_detect_bind(void);
  188. #endif