1. 支付宝app支付
2. 支付宝当面付
3. 支付宝手机网站支付
1、为什么没有直接接入微信app支付,而是采用H5支付?
因为app支付需要另外去微信开放平台申请一个appId,而公司的app 有30个微信商户,意味光申请appId就是一件费时间的事情。那么用H5支付接口成了一个更优的选择,第一不需要另外去申请开放平台账号,可以直接在服务商账户下操作;第二、之前有的公司申请过H5支付接口,有现成的配置;第三、已经有人这么实现过,方案是可行的。
2、为什么app弹起的webView 一直提示“网络环境未能通过安全验证,请稍后再试”?
看了产品文档,因为后端发起交易的时候的创建交易的IP不是客户的真正的IP。查了很多资料,获取Ip的方法始终拿不到客户的ip,而是一个内网IP。把手机的wifi 关闭,直接连接数据,拿到也还是内网IP。没办法只有让app 去查询手机的外网IP,然后在参数中带到后端,去发起交易。这个方法最大的问题是,查询手机的外网IP的时候,是依赖于一个第三方的网址的,如果第三方挂掉,那么我们的微信支付肯定也凉了。
3、app 端成功的弹起了微信支付,但是一直提示“商家参数格式有误,请联系商家解决”?
内心很凌乱,会遇到坑一个都不能少。看产品文档是需要配置referer。查询服务商的配置授权域名后把地址告诉给APP开发的大兄弟。告诉他的时候没有加上http://。自己的大意导致了这个问题。
4、优化问题2,如果第三方的连接挂了怎么办?
后来知道了自己一开始拿到的那个内网地址是我们服务器的aliyun 内网地址,我仿佛看到了希望,因为公司所有的网关的域名解析就在那台服务器上。所以问题可以断定是自己nginx 配置有问题。app 请求-->第一台nginx(配置的HTTPS)-->第二台nginx(配置网关)-->后端服务器。后来在每一台nginx的配置中加上“proxy_set_header X-Forwarded-Server $host;”成功的解决了这个问题。贴上自己获取IP 的方法:
5、微信支付的时候,提示:“交易请求已提交,请留意微信支付公众号下发的信息通知。支付状态未明确前,请勿重复支付”?
第一反应以为是自己的服务有问题,查看日志一切正常,数据库数据也都是正确的。确认是用户的问题,于是查看了一些资料,大概是微信支付进入了保护模式,在微信中点点击钱包,然后点击右上角,选择帮助中心;2、选择解除账户保护,按照提示进行操作,然后重新支付账单。
小结:虽然之前对接过微信的公众号支付,但是知道要重新对接app支付(H5支付)的时候,还是有点瑟瑟发抖的,总是不知道自己会遇到什么问题,不知道前面又有什么坑,不知道要调试多久才能对接完成。终于还是战胜了自己,成功的接入了微信H5支付。也发现了微信支付的优点:微信支付的异步回调是包含支付方式的,这样就两种支付方式就可以使用一个回调的地址了,而在支付宝那边的回调信息是不包含支付方式的,需要自己用不同的回调地址来区分是手机网站支付还是扫码支付还是app支付。