集成支付宝的坑

作者: 陈阿票 | 来源:发表于2016-07-27 18:34 被阅读316次

前段时间公司要接入支付宝和微信,自然这个任务落到了我头上。一边做一边研究,微信的很顺利的就集成成功了,所以这里不多说,按着demo走就好。这里稍微总结下集成支付宝遇到的坑。

支付宝官方demo地址

1.支付宝SDK集成时找不到#include<openssl/rsa.h>

解决方法: 添加一下路径,记住要在路径两边加上 “”

search path

添加完路径之后,就可以顺利编译成功了。

2.交易订单处理失败,请稍后再试。(ALI64)

这种一般都是私钥或者公钥配置不正确的原因,一般来说签名都是在服务器端配置,然后直接返给客户端,直接拼接成orderString即可:

NSString*orderString=[NSString stringWithFormat:@"%@&sign=\\\\"%@\\\\"&sign_type=\\\\"%@\\\\"",orderSpec,signString,@"RSA"];

但是就算服务器端出现了问题,那还是我们大家一起解决吧,所以问服务器端拿到了私钥,自己按照支付宝demo上的方法进行生成签名。

运行之后发现控制台打印出:rsa_private read error : private key is NULL

并且得到的sign是空的。

google了一下发现是私钥格式的问题。PHP服务端语言读取私钥不需要PKCS8转换。

解决办法:

1.如果原来已经生成了私钥,并且已经把公钥传给了阿里开发者平台的,类似得到了下面这种

私钥

直接打开终端,cd到私钥(.pem文件)所在目录,

执行:openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

即可,终端就会生成新的私钥给你。替换一下就ok了。

2.如果还未生成公钥和私钥,执行一下三步,并且把公钥上传到阿里开发者平台即可。

(1)生成私钥pem,  执行命令openssl genrsa -out rsa_private_key.pem 1024

(2)生成公钥,执行命令openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

(3)将RSA私钥转换成PKCS8格式,命令执行openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

接下来运行,发现终于成功了。和服务器沟通后,决定签名还是由服务器返回,更安全。


最新发现一个很恶心的问题,就是当我们拼接orderString的时候

NSString*orderString=[NSString stringWithFormat:@"%@&sign=\\\\"%@\\\\"&sign_type=\\\\"%@\\\\"",orderSpec,signString,@"RSA"];

orderSpec是支付宝demo里面重写了description方法生成的,里面拼接partner和sellerID等参数是有顺序的,而signString是由服务器那边根据生成的,服务器拼接partner和sellerID等参数我们预期参数的顺序不一致。也就是说signString需要根据orderSpec生成,但是orderSpec由客户端生成,signString由服务器生成。这就产生了顺序不一致导致ALI64的问题。

真是蛋疼的很。解决办法是要么服务器按照客户端的顺序来拼接参数,要么就连同orderSpec和signString一同返回给客户端。

哎,不容易啊!

相关文章

  • iOS集成支付宝/微信支付遇到的坑...

    最近在集成微信/支付宝支付,下面是集成的大体流程以及遇到的一些坑,特此记录.首先来谈下微信支付(因为集成支付宝支付...

  • Android集成支付宝支付,权威版

    允许我吹个NB吧! 支付宝支付集成的时候其实是有很多坑的,很多不安全因素在里面,最近在做支付宝集成的坑做个总结 公...

  • iOS 集成银联支付(绕过文档的坑,快速集成)

    iOS 集成银联支付(绕过文档的坑,快速集成) 本文是投稿文章,作者:南栀倾寒 当初集成支付宝的时候,觉得见了这么...

  • iOS 集成支付宝无法跳转问题

    iOS 集成支付宝无法跳转问题 URL Schemes 不能写成AliPay。 是不是有点坑(^^)

  • iOS 集成微信支付

    这次是一个新项目,集成支付宝和微信支付,在上一篇中,记录了一下集成支付宝支付时的一些坑,不过集成微信时要顺利得多。...

  • 集成支付宝的坑

    前段时间公司要接入支付宝和微信,自然这个任务落到了我头上。一边做一边研究,微信的很顺利的就集成成功了,所以这里不多...

  • iOS Alipay -支付宝

    iOS 集成Alipay -支付宝支付 集成 AliPay - 支付宝

  • Mac android studio 集成支付宝SDK 2016

    本文为记录android 集成支付宝sdk真实步骤和遇到的坑,希望对读者有帮助。一:网页管理中心配置认真看支付宝文...

  • iOS支付宝功能集成

    iOS快速集成支付宝详解/支付宝集成获取私钥与公钥 在集成支付宝功能前,我们必须了解下什么支付宝流程,下图是支付宝...

  • 支付宝支付流程(I)

    参考资料:支付宝支付集成支付宝支付集成实现蚂蚁金服iOS支付集成

网友评论

    本文标题:集成支付宝的坑

    本文链接:https://www.haomeiwen.com/subject/kmgojttx.html