PING++:号称几行代码,搞定支付,很神奇吧。究竟有那么神奇吗,让本农(本码农)慢慢揭开神秘面纱吧。
项目背景:由于项目改版,领导决定,采用PING++支付,笔者这次作为PHP后端开发,更形象的讲其实是中端开发,调用C#的接口,PHP不接触到数据库的开发,先实现跟APP功能同步的H5WAP网站。
本农此前也未接入过PING++的支付,之前在以前开发过的项目,单独接入过 支付宝、银联、快钱、财付通、微信等。。。
先去PING++下载H5的SDK(https://www.pingxx.com/docs/downloads)
然后开始接入。
对于作为客户端码农来说是幸福的。真的就几行代码。
然后本农兴奋的去调用支付,看是否能成功发起支付。
JS报错。 channel 未找到。生成的是wx 而demo的JS中只有wx_pub
打开文件
的确没有wx 然后开始查找文档
https://www.pingxx.com/api#api-charges
看了还是没看明白H5支付应该选哪个 channel ,继续查看资料。
https://www.pingxx.com/guidance/config
然后让接口端的同事,改成了 channel wx_pub。
期待中.....
结果openid不正确。
然后去找。看到关于wx_pub的说明:
OK。找到管理微信公众号的同事去设置支付授权目录。
看到这里本农晕了,如何获取openid,没找到官方demo
https://help.pingxx.com/article/123528
根据提前设置了 登陆微信公众号平台 开发者中心 网页授权获取用户基本信息 修改
然后又蒙比了。怎么样拿到code,看到返回的是一个链接地址。
https://github.com/PingPlusPlus/pingpp-csharp/blob/master/pingpp/Utils/WxPubUtils.cs
由于之前做过微信的H5支付接入。直接去看代码,发现这个链接是请求微信后,会返回到你指定的 redirectUrl 中,然后从这里入手,先拿到返回的code.然后提交给接口,接口根据拿到的code生成openid,然后就搞定了。
本农认为,其实应该在接口那边直接获取code.再获取openid的,不需要客户端来获取的。
好了。文笔很烂,仅作为以后本农再次遇到问题的一个跨坑文章。