支付宝支付的注意事项

最近一个项目中集成了支付宝支付,现在把遇到的问题总结一下。

  1. 首先要有企业资格,申请支付宝企业账号

  2. 开发者中心注册对应支付,app,h5,网站等。

https://auth.alipay.com/login/ant_sso_index.htm?redirectType=self&bizFrom=openhome&goto=https%3A%2F%2Fspcenter.alipay.com%2Foperation%2Fmini-portal%2Fdashboard

  1. 支付宝的沙盒环境走不通,建议还是直接申请线上环境。

  2. 密钥的说明

  • 密钥可以使用支付宝提的密钥工具生成,一般选择RSA2这个类型,然后如果是java选择pkcs8,其它语言选择pkcs1.

  • 生成的一个是公钥,一个是私钥,私钥需要在程序中配置,公钥在支付宝开放平台后台,进入账户中心,进入密钥管理,进入开放平台密钥,配置接口加签方式,这里的appid需要记住,程序里面需要调用。这里需要配置应用公钥(就是第一步生成的公钥),然后它会生成支付宝公钥,这个和应用公钥不同,复制这个公钥,程序中需要使用它来进行验证签名。

  1. 回调的说明

支付宝后台不需要配置回调url,配置授权域名。

程序中配置notify_url和return_url即可。

注意的事项,如果使用laravel这样的框架,需要将notify_url添加进入VerifyCsrfToken中,否则会导致接收不到支付的回调请求。

  1. 微信中使用支付宝 我们知道,因为某种原因,微信中不能直接拉起支付宝的支付,需要我们引入支付宝的中间页,它是一个支付宝封装好的判断是否微信浏览器的页面,如果是的话,它会弹出打开浏览器支付,并且将参数赋值给浏览器url,通过这个中间页我们就不需要去判断了,因为在非微信中,它会直接拉起支付宝支付。

  2. 细节决定成败 有时候可能就是密钥不匹配,返回的参数字段未对应,或者传入的参数不正确,就可能导致支付流程失败,因此,注意每一个细节是成功的关键。