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

由于笔者之前专业只是学习电子电路相关知识,参加工作后接手了一个对接建行的聚合支付二维码项目。之前我更改过设备中支付宝二维码的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语言)