开发支付宝支付用DELPHI实现 RSA签名
近来根据业务需求 在ERP中集成了微信支付,支付宝支付,开发支付宝支付时最大的障碍就是RSA签名,找了很多资料,最终用 下了个libeay32.pas 根据网上资料最终解决了问题
- function LoadPrivateKey(filename:string ): PEVP_PKEY;
- var
- bp : PBIO ;
- A,pkey :PEVP_PKEY ;
- begin
- a:=nil;
- bp := BIO_new(BIO_s_file()) ;
- BIO_read_filename(bp, PChar(filename));
- pkey := PEM_read_bio_PrivateKey(bp, a, nil,NIL);
- BIO_free(bp);
- Result:= pkey;
- end;
- function Sign(filename,msg : String):string;
- var
- ctx : EVP_MD_CTX ;
- buf_in:Pchar;
- m_len,outl :cardinal;
- pKey : PEVP_PKEY;
- m,buf_out:array [0..1024] of char;
- p:array [0..255] of char;
- i:Integer;
- begin
- buf_out:='';
- if filename='' then
- begin
- Result:='';
- Exit;
- end;
- pKey := LoadPrivateKey(filename);
- buf_in := PChar(msg);
- EVP_MD_CTX_init(@ctx); //初始化
- EVP_SignInit(@ctx,EVP_sha1()); //将需要使用的摘要算法存入ctxl中
- EVP_SignUpdate(@ctx,buf_in,Length(buf_in));//存入编码值
- EVP_DigestFinal(@ctx,m,m_len); //求取编码的长度为m_len摘要值存入m中
- rSA_sign(EVP_sha1()._type,m,m_len,buf_out,@outl,pkey.pkey.rsa); //64为SHA1的NID
- EVP_MD_CTX_cleanup(@ctx);
- Result:=EncodeString(StrPas(buf_out)) ;
- end;
QQ:24177885
http://blog.csdn.net/star1010/article/details/47809449
http://bbs.2ccc.com/topic.asp?topicid=514109
http://blog.csdn.net/wingleo/article/details/52067838
开发支付宝支付用DELPHI实现 RSA签名的更多相关文章
- Laravel 开发支付宝支付与提现转账问题小结
由于项目需要,所以需要开发支付宝支付与微信支付,支付部分采用了 yansongda/pay https://packagist.org/packages/yansongda/pay https ...
- Delphi支付宝支付【支持SHA1WithRSA(RSA)和SHA256WithRSA(RSA2)签名与验签】
作者QQ:(648437169) 点击下载➨Delphi支付宝支付 支付宝支付api文档 [Delphi支付宝支付]支持条码支付.扫码支付.交易查询.交易退款.退款查询.交易撤 ...
- IOS开发--支付宝支付
前言:继上次<IOS开发--微信支付>以来,一直没有太多时间,更新总结详细支付这样的长篇大论,很抱歉.今天,推出支付宝支付的详细流程. 1.开始下载和查看支付宝支付的Demo. 我们直接进 ...
- java开发支付宝支付详细流程_demo的运行
首先我要吐槽一下支付宝的开放平台简直就是一个迷宫,赞同的顶一下,下面我把要下载的地址给贴出来要不真不好找: 一.准备工作 1.签名工具下载 https://docs.open.alipay.com/2 ...
- iOS开发支付宝支付
iOS支付宝支付(Alipay)详细接入流程以及项目中遇到的问题分析 浏览: 149 发布日期: 2016-10-19 分类: ios 最近在项目中接入了微信支付和支付宝支付,总的来说没有那么 ...
- iOS - AliPay 支付宝支付
1.支付宝支付申请 支付宝支付官方签约集成指引 支付宝APP支付官方集成指引 蚂蚁金服开放平台 1.1 支付宝 APP 支付申请步骤 APP 支付:APP 支付是商户通过在移动端应用 APP 中集成开 ...
- 支付宝RSA签名之Delphi实现
Delphi有个很大的问题就是,厂商的不作为(没有封装标准的Cipher类库),让大家自己造轮子. 今天的轮子就是RSA签名,由于Delphi没有封装Cipher类库,所以只的自己写了. 因为要在Fi ...
- DELPHI支付宝支付代码
真实业务场景的考虑 按照支付宝或者微信支付的开发手册的说法,一个标准的客户端接入支付业务模型应该是这样的,我忽略时序图,只用文字描述: 用户登录客户端,选择商品,然后点击客户端支付. 客户端收集商品信 ...
- DELPHI移动端支付宝支付
Delphi XE7 Android 应用接入支付宝SDK的方法 1 应用场景和准备工作: 采用XE系列开发的android apps. apps中需要集成支付宝的支付能力. 支付到指定的商 ...
随机推荐
- 【转】使用dos2unix批量转换文件
原文网址:http://kuaile.in/archives/1208 dos2unix是Linux下的一个用户转换格式的程序,由于windows上文件的结束符和linux上的不同,那么在window ...
- HDU_2024——判断字符串是否是c语言合法标识符
Problem Description 输入一个字符串,判断其是否是C的合法标识符. Input 输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是 ...
- 关于解决Oracle登录:ora-12154:tns:无法解析指定的连接标识符
(注:此文摘自http://www.linuxidc.com/Linux/2012-04/59322.htm) 开始学习Oracle,所以今天就打算把Oracle 10g安装下.安装完后就来进行测试是 ...
- Raid1源代码分析--同步流程
同步的大流程是先读,后写.所以是分两个阶段,sync_request完成第一个阶段,sync_request_write完成第二个阶段.第一个阶段由MD发起(md_do_sync),第二个阶段由守护进 ...
- JAVA 对象拷贝
1.java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍. Java中对 ...
- SVN权限修复
Description : Commit failed (details follow): Suggestion : The operation could not be completed. Tec ...
- Java 多字段排序Comparator(兼容Date,Integer,Doubel,Long)
Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexU ...
- mfc socket编程
socket编程用法---- 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要.由于C++语言对底层操作的优越性,许多文章都曾经介绍过用VC++进行Socket编程的方法.但由于都 ...
- CCArray(转)
http://blog.csdn.net/passtome/article/details/7966451 CCArray也是cocos2d-x自己写的类.它相当于是objc的NSArray.在coc ...
- 服务 远程服务 AIDL 进程间通讯 IPC
Activity aidl接口文件 package com.bqt.aidlservice; interface IBinderInterface { /* 更改文件后缀为[.aidl]去掉 ...