#ifndef _ALIPAY_THIRD_H #define _ALIPAY_THIRD_H #include "alipay_common.h" #include "wxpay_common.h" typedef enum{ ALIPAY_BIND_START=0,//绑定提示页面 ALIPAY_BIND_ING,//绑定进行中 ALIPAY_BIND_FINISH,//绑定完成 ALIPAY_BIND_FAIL,//绑定失败 ALIPAY_BIND_OK, ALIPAY_PAY_ERROR,//支付码获取出错,重新绑定 }alipay_status_e; typedef enum{ WXPAY_BIND_START=0,//绑定提示页面 WXPAY_BIND_ING,//绑定进行中 WXPAY_BIND_FINISH,//绑定完成 WXPAY_BIND_FAIL,//绑定失败 WXPAY_BIND_OK, WXPAY_PAY_ERROR,//支付码获取出错,重新绑定 WXPAY_PAY_AGAIN_ERROR,//支付码时间错误,提示页面 }wxpay_status_e; void alipay_slave_send_noti_data(unsigned char buf[],unsigned char len); //定时器超时触发的回调 void alipay_send_ble_timeout(void); //实现定时器 此定时器使用单次模式 void alipay_send_ble_timer_start(void); //蓝牙从机向主机发送数据,内部已实现队列,用户直接实现ble发送即可 void wxpay_slave_send_noti_data(unsigned char buf[],unsigned char len); //定时器超时触发的回调 void wxpay_send_ble_timeout(void); //实现定时器 此定时器使用单次模式 void wxpay_send_ble_timer_start(void); //实现获取mac地址 研究下mac地址显示方向 void third_paylib_get_mac_addr(unsigned char mac_addr[]); //实现获取unix时间搓 unsigned int third_paylib_get_unix_second(void); //实现随机数 void third_rand_get_value(unsigned char rand_buf[],unsigned char *len); //lib库会对flash进行连续的读写擦除操作,用户需注意!!!!!!! void third_paylib_flash_read_data(unsigned int addr,unsigned char read_data[],unsigned short len); void third_paylib_flash_write_data(unsigned int addr,unsigned char write_data[],unsigned short len); //由于绑定成功后 会处理较长时间,需要在擦除flash时增加清除看门狗的动作!!!!!! void third_paylib_flash_erase_page(unsigned int addr); /**************** 支付宝打印调试 ***********************/ void third_alipay_printf(const char *format, int32_t value); /**************** 微信打印调试 ***********************/ void third_wxpay_printf(const char *format, int32_t value); /**************** 动态申请内存 *****************/ unsigned char * third_wxcodepay_malloc(size_t size); /**************** * @brief 动态内存重分配接口 * @note 注意需要和标准库实现一致,即realloc不影响原部分内存 *****************/ unsigned char * third_wxcodepay_realloc(void* buf, size_t new_size); /**************** 动态内存释放接口 *****************/ void third_wxcodepay_free(void* buf); /********************** 手机向手表支付宝profile 写入蓝牙数据 用户自行在profile的write中调用此接口 **********************/ void alipay_master_write_data(unsigned char buf[],unsigned char len); /********************** 手机向手表支付宝profile 写入蓝牙数据 用户自行在profile的write中调用此接口 此接口用户接收app授权数据 和alipay_master_write_data放在一起调用 **********************/ void alipay_master_write_data_auth(unsigned char buf[],unsigned char len); /********************** 手机向手表微信profile 写入蓝牙数据 用户自行在profile的write中调用此接口 **********************/ void wxpay_master_write_data(unsigned char buf[],unsigned char len); /******************************************************** 每次进入支付页面时调用,会校验license是否生效 0为成功 1为有校验数据但校验失效 2为无校验数据 type:0 进入支付宝页面 type:1 进入微信界面 *********************************************/ unsigned char pay_lib_init(unsigned char type); /********************************** 获取绑定状态 unix_second:传入当前unix时间 is_connected:传入当前连接状态 type:0为预留 1为强制刷新支付码(外部点击刷新支付码时使用) 建议首次获取支付码时也设置为1 2为更新时间(app同步时间后,调用一次触发lib更新时间戳) 返回:绑定状态 当返回 ALIPAY_BIND_FAIL时,用户需要重新调用pay_lib_init对lib库进行初始化 当返回 ALIPAY_PAY_ERROR时, 用户需要先进行解绑再调用pay_lib_init初始化 ****************************/ alipay_status_e alipay_get_bind_status(unsigned int unix_second,unsigned char is_connected,unsigned char type); /****************************** 获取绑定码ui显示数据 buf:传入屏幕宽度大小的数组 line:传入当前屏幕刷到第几行 *******************************/ void alipay_get_bond_code_ui(unsigned char buf[],unsigned short line); /****************************** 获取绑定码数据,由用户自行绘制ui 建议采用code128C编码格式 buf:长度为128大小的数组 buf_size:返回当前条形码数据长度 *******************************/ void alipay_get_bind_code(unsigned char buf[],unsigned char *buf_size); /****************************** 获取付款码ui显示数据 buf:传入屏幕宽度大小的数组 line:传入当前屏幕刷到第几行 *******************************/ void alipay_get_pay_code_ui(unsigned char buf[],unsigned short line); /****************************** 获取条形码字节数据,由用户自行绘制ui 建议采用code128C编码格式 buf:长度为128大小的数组 buf_size:返回当前条形码数据长度 *******************************/ void alipay_get_pay_code128(unsigned char buf[],unsigned short *buf_size); /****************************** 获取用户信息数据,由用户自行绘制ui 建议采用code128C编码格式 nick_name:长度为32大小的数组 name_len:返回当前用户名大小 login_id:长度为32大小的数组 id_len:返回当前用户id大小 数据内容为UTF-8 *******************************/ void alipay_get_userinfo(unsigned char nick_name[],unsigned short *name_len,unsigned char login_id[],unsigned short *id_len); /********************************* //解除支付宝绑定接口 调用解除绑定后,需要重新调用pay_lib_init对lib库进行初始化 *************************/ void alipay_detect_bind(void); /********************************** 获取绑定状态 unix_second:传入当前unix时间 is_connected:传入当前连接状态 type:type:0为预留 1为强制刷新支付码(外部点击刷新支付码时使用) 建议首次获取支付码时也设置为1 2为更新时间(app同步时间后,调用一次触发lib更新时间戳) 返回:绑定状态 当返回 WXPAY_BIND_FAIL时,用户需要重新调用pay_lib_init对lib库进行初始化 当返回 WXPAY_PAY_ERROR时, 用户需要先进行解绑再调用pay_lib_init初始化 ****************************/ wxpay_status_e wxpay_get_bind_status(unsigned int unix_second,unsigned char is_connected,unsigned char type); /****************************** 获取绑定码ui显示数据 buf:传入屏幕宽度大小的数组 line:传入当前屏幕刷到第几行 *******************************/ void wxpay_get_bond_code_ui(unsigned char buf[],unsigned short line); /****************************** 获取绑定码数据,由用户自行绘制ui 建议采用code128C编码格式 buf:长度为128大小的数组 buf_size:返回当前条形码数据长度 *******************************/ void wxpay_get_bind_code(unsigned char buf[],unsigned char *buf_size); /****************************** 获取付款码ui显示数据 buf:传入屏幕宽度大小的数组 line:传入当前屏幕刷到第几行 *******************************/ void wxpay_get_pay_code_ui(unsigned char buf[],unsigned short line); /****************************** 获取条形码字节数据,由用户自行绘制ui 建议采用code128C编码格式 buf:长度为128大小的数组 buf_size:返回当前条形码数据长度 *******************************/ void wxpay_get_pay_code128(unsigned char buf[],unsigned short *buf_size); /****************************** 获取用户信息数据,由用户自行绘制ui 建议采用code128C编码格式 nick_name:长度为32大小的数组 name_len:返回当前用户名大小 login_id:长度为32大小的数组 id_len:返回当前用户id大小 数据内容为UTF-8 *******************************/ void wxpay_get_userinfo(unsigned char nick_name[],unsigned short *name_len,unsigned char login_id[],unsigned short *id_len); /********************************* //解除微信绑定接口 调用解除绑定后,需要重新调用pay_lib_init对lib库进行初始化 *************************/ void wxpay_detect_bind(void); #endif