阅读 140

小程序档案馆–支付能力(一)

世界上最可爱的人是谁?当然是毛爷爷鸭!坦白讲,大家辛辛苦苦兢兢业业的开发小程序,还不就是为了用户付款的高光时刻(看着💰进了老板的口袋,忍不住幻想自己今天一定!可以!加!鸡腿!!)。所以今天我们就给大家来点实在的,讲一讲智能小程序的支付能力。

小程序支付

有位伟人曾经说过:“钱就是要多多益善。”所以我们的智能小程序不仅支持百度支付,还支持微信支付和支付宝这两个当下主流的支付方式。

接下来看看为了💰,我们都要干些什么?

具体的接入方式

首先来谈一谈百度小程序支付的接入方式。

文档传送门:https://smartprogram.baidu.com/docs/develop/api/open_payment/ 

⬆️链接是百度收银台支付的API接口文档。

先自我膨胀一下:从这个文档可以看出想要接入百度小程序支付,就需要在百度开放平台上注册账号才行。可以猜想未来这个注册账号应该可以在百度全系产品中通用才对,小程序是其中一个渠道。这种做法在平台级别的产品上还是比较通用的。遥想百度小程序宣称未来将要开源,支付账号在其他宿主app上是否通用还未可知,如果可以通用那就有更广阔的空间了。

言归正传,接入流程还是比较主流的:

上传信息–>资质审核–>上传RSA公钥–>设置服务端地址–>创建服务

剩下的就是等待审核人员点击Ok啦(个人经验审核流程还是很快哒)。不过目前支付流程中只有线上环境,并没有提供沙盒环境,所以测试的话只能用线上的测试单进行测试,但是请放心,这点我们一定会尽量完善哒。

关于调用流程

支付流程我认为可以主要分为两大块: 1. 支付流程 2. 退款流程


1.支付流程
支付流程首先是调用支付,发起支付请求。

调用requestAPI向自己的服务端请求参数,服务端按照要求拼接好参数,然后将参数信息通过调用requestPolymerPaymentAPI传递进去,支付完成以后会有回调结果传递回来。同时服务端会发起一个请求,回调支付的状态。具体流程和各模块职责可以如上图所示,感兴趣的同学可以了解一下。

2.退款流程  

敲黑板,划重点——重要的事情,我们会在另一篇文章中,详细为您讲解~

发起请求的参数拼接


参数拼接中主要讲的是bizinfo字段,这个字段看着感觉很奇怪,内部需要传的字段和外部是很相似的。需要的参数在外层的orderInfo是完全一致的。看了我们的官方文档是这样写的:

bizInfo参数是为了给业务方透传信息使用的,属于选填属性。 其中封装了部分核心参数,是为了在下游展示环节做冗余备份处理,推荐开发者按下表封装这些核心参数

虽然推荐填写,但是亲测是可以不填的哈。在bizinfo中还提供了一个字段returnData,这个字段可以帮助我们透传一些需要的参数,并且对可以自由定制,这点还是很好用的。

~~彩蛋~~

根据自己的开发经验,总结了一些可能会常常遇到的问题,一起分享给大家⬇️

1. 支付成功回调两次都失败,如何避免正常支付订单退款?

答:支付回调超时时间是2s,目前会重试一次,再超时会触发异常退款 异常退款,异常退款会主动调用开发者退款审核接口,如果退款审核接口返回auditStatus:2,表示退款审核失败,此时订单不再变化,停止在已支付状态,不会再进行支付回调 业务方可以通过查单接口查看订单状态。

2. 请求接口的URL是http的还是https 

答:https

3. 百度的标记的用户ID全都是数字吧,业务方用long类型接收可以吗?

答:百度的用户id现在是数字,参数类型建议用String 。

4. 如果业务方针对某个订单连续多次申请退款,百度会重复退款吗? 

答:不会


关注下面的标签,发现更多相似文章
评论