1,支付宝申请:https://b.alipay.com/order/productDetail.htm?productId=2013080604609654&tabId=4#ps-tabinfo-hash
2,开发文档:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
3,载入aplipay库,关联类库
4,用申请到的seller(商户支付宝号),partner(商户PID:2088***********),private key(私钥RSA转码后的一串字符)连接支付宝服务器,生成订单,加密,签名,设置schema,设置服务器端的回调地址
5,客户端支付成功,由支付宝客户端回调应用客户端,支付宝服务器回调系统后台服务器
6,解决方法
1、报错:rsa_private read error : private key is NULL
原因:私钥没有转成PKCS8
1)、在RSADataSigner.m文件中搜索代码[result appendString:@"-----BEGIN PRIVATE KEY-----\n"];将其改成[result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)、在RSADataSigner.m文件中搜索代码[result appendString:@"\n-----END PRIVATE KEY-----"];将其改成[result appendString:@"\n-----END RSA PRIVATE KEY-----"];
7,加密解密的过程:https://cshall.alipay.com/support/help_detail.htm?help_id=397433&keyword=%25C8%25E7%25BA%25CE%25C9%25FA ,是客户端生成的,
生成私钥命令:genrsa -out rsa_private_key.pem 1024
转换格式:OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
生成公钥:OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
8,在RSA的签名时,需要私钥和公钥一起参与签名。私钥与公钥皆是客户通过OPENSSL来生成得出的。客户把生成出的公钥与支付宝技术人员配置好的支付宝公钥做交换。因此,在签名时,客户要用到的是客户的私钥及支付宝的公钥。
9,支付宝sdk集成,报系统繁忙请稍后再试(ALI64),公私钥不匹配,必须本机生成公钥私钥么
10,上传公钥:https://cshall.alipay.com/enterprise/help_detail.htm?help_id=473890
11,seller,partner:签约后,支付宝会为每个商户分配一个唯一的parnter和seller。
12,公钥必须给支付宝,不然他们解密不了啊,然后支付宝返回数据再用支付宝的私钥加密,然后用支付宝给的公钥解密,o my god.
公钥加密方法,对称,加密解密一样的,非对称,非对称就是加密和解密的不同规则,RSA代表三个贱人,
13,先与支付宝签约,获得商户ID(partner)和账号ID(seller)
(这个主要是公司的负责),下载相应的公钥私钥文件(加密签名用),私钥文件不是下载的,2了吧,
14,由服务器来生成订单,然后返回订单字符串:
NSString * dataString = [responseObject valueForKeyNullReplace:@"data"];
int ret = [alixpay pay:dataString applicationScheme:appScheme];
1,支付宝企业账户签约快捷支付获得商户id,账户id
2,用openssl生成公钥,私钥,上传公钥,下载另外一个公钥
3,生成订单信息,设置回调URL,schema,用RSA加密,发起支付
4,支付结果回调客户端,客户端处理,