支付宝在申请SDK,支付能力这块比微信强的多,支持个人,支持企业。这点很方便。不像微信,本来做小程序交了300开通微信支付,申请了微信认证。
然而在整APP,还要在开放平台申请开发者认证,又是300。明摆着敛钱啊。
今天说支付宝SDK的使用。网上很多的常规步骤,照方法来,前面的过程基本上都不会有问题。 开发者平台注册一个号,完事添加自己的应用 
进去之后,重点添加app支付功能

应用信息里设置好自己的密钥:

应用公钥,应用私钥,这两个可以用支付宝开放平台助手生成。 支付宝公钥,在查看里可以看到。 这几步都不会有问题,代码上调用SDK,设置应用私钥,支付宝公钥,两个大长串。然后按照官方文档里调订单数据:

这是这些,拿到内容是一个大串。直接返回到客户端,uni.requestPayment就可以唤起支付宝 
无耐我这里怎么也唤不起来,报订单参数异常ALIN 

检查了好几次,困住了两三天。之后看下网上别人说的,说相比JAVA调用少些东西。 然后再找,网上有通过证书方式唤起的。尤其在开发者中心,应用信息里,点开接口加签方式: 
这里有下载应用公钥证书,支付宝证书,支付宝根证书。之前有一个界面是选择证书还是公钥的,先择用证书方式,等两点就生效成这样了。(证书还是用支付宝开放平台助手生成)
接下来就是代码: 之前用的AopClientTest,这回参照AopCertificationTest 
引用三个证书内容,换个类实例,其它一样。然后再获取订单数据。 吐给客户端,神奇的成功了。。
归纳下遇到的几个问题: AopClient只用公钥,私钥两个大长串,如果拿到结果给客户端不好使就换个方式,还可以用证书方式。文件下下来肯定没跑。其余代码就那些。 这块请求支付宝SDK要用openssl扩展,PHP5.6.8代码里的openssl模块没装上,可以再装一套php,我用的php7 然后php7我想用mongodb,结果没了mongo,网上找半天三方类,研究了下,与之前CURD数据库的代码比复杂多了。 而且之前PHP5.6.8里的mongo,mongodb,fastDFS都有。是不是有半法一部分接口走PHP7,一部分走PHP5呢,顺着这思路, 我想到了Location: 最终location ~/pay/{ fastcgi_pass:127.0.0.1:9001} //这是把URL走pay的这部分内容交给php7,可以用openssl(之前还想在5.6.8上用openssl,结果系统装的openssl1.1.1太高了,还没法装Php_openssl扩展,降级也有影响,而且调半天没成功。mongodb用的openssl1.1.1) 然后location \.php {fastcgi_pass:127.0.0.1:9000} //这部分走php5 如此一来就全搞定了。
转载请注明来源:梦幻岛 http://dreamisland.wang/article/3385p1.html
|