由于笔者之前专业只是学习电子电路相关知识,参加工作后接手了一个对接建行的聚合支付二维码项目。之前我更改过设备中支付宝二维码的bug,而不是完整的开发工作。所以这是我第一次真正的对接一个API的项目,让我很兴奋,所以我把这一次珍贵的经验记录下来。
本次的二维码付款主要分为三个部分:
一、根据API接口向相关url发送参数,请求生成二维码。有些可能会发送两次请求,才能获取到包含二维码信息的url,其中还涉及到url的decode过程,参考代码如下。
void urldecode(char p)
{
register i=0;
while(
(p+i))
{
if ((p=(p+i)) == ‘%’)
{
p=(p+i+1) >= ‘A’ ? (((p+i+1) & 0XDF) - ‘A’) + 10 : ((p+i+1) - ‘0’);
p=(p) * 16;
p+=(p+i+2) >= ‘A’ ? (((p+i+2) & 0XDF) - ‘A’) + 10 : ((p+i+2) - ‘0’);
i+=2;
}
else if (*(p+i)==’+’)
{
*p=’ ‘;
}
p++;
}
*p=’\0’;
}
引用于https://www.linuxidc.com/Linux/2011-07/38556.htm
二、根据API返回的字符串生成二维码并显示出来。这部分会在另一个博客里面讲。
三、订单轮询查询功能。和生成二维码相似,通过不断的发出http请求来查询当前订单的状态,条件是通过下单时候的订单号来查询。当返回结果为支付成功是,设备不在进行轮询操作,而是进行对应金额的充值功能。
知识点:
C语言发送和接收http请求其实是一件很麻烦的事情。使用libcurl函数发送,接收和发送参数全部以文本形式记录。所以经参使用write和read函数进行文本读取并添加到字符串中。

建行聚合支付及支付宝二维码开发经验(C语言)相关推荐

  1. 建行聚合支付及支付宝二维码开发经验(C语言2)

    这篇文章本来是存在有道云中的,修改了部分代码在这里也发表一次吧. 本文章共分为两个部分:第一部分为linux的libcurl库的介绍和使用.第二部分为decode后链接生成二维码的方式. 1.linu ...

  2. 聚合支付之一个二维码同时支持微信和支付宝

    首先这个二维码并不是直接将微信和支付宝的二维码合并,而是一个假的二维码,下面说一下思路. 1.页面加载时服务器生成一个供用户扫描的二维码.内容类似 https://pay.wps.cn/api/pay ...

  3. 在线支付——微信支付宝二维码合一

    微信支付与支付宝支付二维码合一的原理是:用户扫描二维码,打开我们自己做的页面,在这个页面里面判断用户打开该页面的客户端是微信还是支付宝,如果是微信,则调用微信支付,如果是支付宝,则调用支付宝支付. 具 ...

  4. 微信二维码支付支付宝二维码支付(主扫模式)开发指南

    微信二维码支付 熟悉微信支付全家桶的童鞋应该都清楚,微信支付是没有提供PC网关支付的,那么传统的网站需要怎么接入微信支付产品呢? 我们可以选择微信支付中的Native支付产品,官方介绍: Native ...

  5. 梦行扫码付(收银台条码支付 微信钱包条码支付 支付宝二维码支付 手机APP钱包支付 PHP扫码支付 )

    适用于:各行各业(如,超市 餐厅 收费站 等各类收费处) 平台管理员篇 扫码付管理 (收银台条码支付) 全站收款账号 (微信钱包条码支付) 全站收款记录 (支付宝二维码支付) 商家篇 我的扫码付 (支 ...

  6. 通过支付宝二维码链接直接调起支付宝支付

    项目里面遇到要通过支付宝二维码调起支付宝应用支付的功能,做完之后在此记录一下: Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = nu ...

  7. java实现支付宝二维码支付(Spring Boot)

    本文章主要介绍H5使用的支付宝二维码是如果通过java生成的,方便大家更好的对接.首先集成alipay的sdk,然后要到支付宝商户平台创建应用,生成私钥 公钥,话不多说直接上代码块 @ApiOpera ...

  8. VB6 简单实现 支付宝二维码扫马支付

    VB6 简单实现 支付宝二维码扫马支付 完整源码如下 Private Declare Function 初始化 Lib "alipay.dll" (ByVal 服务器 As Str ...

  9. Java支付宝二维码支付和退款,微信二维码支付

    在蚂蚁金服开发平台下载demo 打开 TradePayDemo 项目,里面的main可以直接运行,在配置文件zfbinfo.properties中改为自己支付宝的信息 # 支付宝网关名.partner ...

最新文章

  1. java中 如何用if_不在Java中使用if语句
  2. 初识vue 2.0(2):路由与组件
  3. Java DecimalFormat 用法 小数位的处理 公司内部处理小数位
  4. ip通信基础第九周(下)
  5. KindEditor富文本编辑器, 从客户端中检测到有潜在危险的 Request.Form 值
  6. linux系统中安装和使用rz/sz命令详解
  7. C#图解教程 第六章 深入理解类
  8. ADF:弹出窗口,对话框和输入组件
  9. linux内核设计与实现---从内核出发
  10. mysql能否在手机端运行_在手机上安装linux并部署mysql,jupyter用于数据探索
  11. mysql_用户_操作
  12. win8中文_免费文字转语音软件,支持男女中文英文混读,且用且珍惜!!
  13. 快速从入门到精通!mysql删除语句姓李的语句
  14. Ora-00600 错误的代码含义及常用查询
  15. JavaWeb — 解决请求前与请求后中文乱码的问题
  16. 【DSP开发】解读TI的KeyStone II云技术应用
  17. Android小程序白屏,微信小程序web-view跳转h5 安卓白屏
  18. Capture Allegro走线Option详细介绍图文教程
  19. 信息可视化中的重要准则——以扇贝单词app中的可视化为例
  20. photoshop制作gif动画

热门文章

  1. 虚拟卡 | 玩转Drop shipping速卖通采购用什么虚拟卡?
  2. 诺基亚手机运行linux,诺基亚专业相机安装包泄露:非诺基亚手机也可运行
  3. flex布局占四分之一_云现在占IT支出的四分之一,并且还在快速增长
  4. 正好杠杆炒股大盘缩量开门红后
  5. 提取股票名称代码对照表
  6. PageAdmin环境配置要求
  7. SwiftUI ScrollView 高级技巧之 01 单击按钮手动滚动到某个位置
  8. CodeCanyon上的20种有用的PHP联系人表格
  9. 一键飞行模式 android,android开发之快速设置,一键wifi开闭,移动网络开闭,电池设置,飞行模式,...
  10. android flv格式的视频文件,android-如何运行mkv,flv,avi格式的视频文件?