商城网站要接入支付宝支付,需要将APP在支付宝平台创建应用,提交审核,并进行商户签约以获得支付能力
下面主要从技术角度去讲解下流程
开发设置中一定要配置好APP相关信息,支付宝网关地址是固定的,授权回调地址即是你成功支付后的回调地址,对于支付结果,请商户依赖服务端的异步通知结果,同步通知结果,仅作为支付结束的通知,支付宝网关地址如果不配置,会造成你的授权回调地址正确,支付服务端也收不到任何的支付通知的信息(之前没注意这个问题,郁闷了俩小时)
支付宝平台为开发者们提供个很好的沙箱测试工具,应用没有提交上线,也可以在沙箱环境中模拟一个APP去接入支付,并配置相关参数,如密钥,应用网关,回调地址等等,这样既能很好的测试程序是否能够正常支付,减少提交上线审核后出现的一些问题
主要内容:是客户端SDK请求商户服务端,获取签名后的订单信息,再去调用支付接口,发起支付请求(提示:如果是支付APP沙箱测试,需要在onCreate方法中加入EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);)
提醒各位开发者容易出错的几个点:
1.沙箱测试时通过,而在项目APP里却不通过,很有可能是APP没有提交上线签约的缘故,或者是密钥和公钥未更改(或RSA,RSA2加密与公钥不对照的问题),以及初始化时候沙箱环境未取消
2.服务器订单验签时候服务端提示验签成功,官方提供的验签工具却提示失败,这个我也不太清楚原因,好多开发者朋友都反映过,建议大家以服务器端的验签结果为准
3.APP设置详情里支付宝的网关地址默认是空白的,这时候要改成https://openapi.支付宝/gateway.do,否则会遇到客户端支付成功了,服务端也收不到异步通知的情况