⼩程序⽀付功能后台PHP实现
这是我博客关于⼩程序PHP后台的实现的第三篇,前两篇主要介绍了服务器的搭建过程及前台与服务器交互的⽅式,其实也就是通过get或者post⽅法传递⽂字数据,通过$_FILE[]来接收⼩程序传来的⽂件,⼀般都是图⽚,这⼀篇,主要进阶来讲讲⽀付功能的实现,因为官⽅api给的资料太少,要实现起来还是得靠⾃⼰慢慢摸索,这样很费时间,因此我在这⾥将⾃⼰的⽅法记录下来,希望能帮助⼤家。
1.前期准备
⾸先要对⼩程序⽀付功能开发有个⼤致了解,具体信息可以见以下链接,这⾥是⽀付的框架性东西:
当时我们团队为了⽀付功能借助了有公司资质的其他团队,因为当时需要营业执照,紧接着,要在平台开通⽀付功能,记得是要300rmb开通,要绑定商户号,会与收费的银⾏卡有关系,因为我当时不是负责这块的,这⾥不是特别清楚,但是按照提⽰⼀步⼀步来,肯定没问题。剪辑软件
在开通完以后,接下来就是具体的开发流程了!
2.⽀付的实现
在讲⽀付的实现时我会结合官⽅的图来讲!先看⽀付流程图!!
的openid也是不⼀样的,因此可以⽤通俗的⾝份证⽐喻来理解。获取openid的步骤如下图:
序密钥⼀起发送给接⼝,的⼩程序appid与密钥都在平台中设置,具体代码如下:
夜夜夜漫长⼤家⼀定记得替换图中红⾊部分的appid与密钥,这样⼦就获取了openid,接下来要调⽤统⼀下单api,这是最复杂的⼀步,好多⼈看到官⽅这⾥的介绍也就头晕了,⾸先官⽅地址如下:
⼀步⼀步来,⾸先是官⽅第⼀请求参数表,此表太长,这⾥不展⽰,展⽰需要注意的是出必填字段为是的参数,这些参数都是必须的需要的必须需要的!!必须需要的重要的事说三遍⼤部分数据都可以由前台传过来⽐如⾦额(单位是分)等,还有⼀些是后台已知,⽐如appid与商户号,还有⼀些是需要后台程序⾃⼰⽣成的⽐如订单号,这个订单号是32位的字母加数字组合,推荐当前时间值加随农林经济管理
机字符串构成,订单号要对⾃⼰的⼩程序来说是唯⼀的,因此时间粒度尽量取得细⼀些,获得了这些信息后我们进⾏下⼀步,获取sign值这⼀步很复杂
获取sign值是为了获取pre_payid, pre_payid获取后会再次加⼀些信息⽣成新签名,这步待会再说,先来看怎么获取pre_payid ⾸先获取sign值,我先贴出官⽅⽂档,再贴出⾃⼰的实现代码,⽅便⼤家理解。2018年高考时间
官⽅⽂档:
我的代码实现过程:
⾸先定义⼀个数组$post,这个数组的作⽤是为了像官⽅⽂档⾥说的字典序排序,因为需要⾃⼰写⼀个排序函数,待会我也会贴出来,然后将必要的数据以key-value的形式放进post数组,右边的变量值已通过$_POST[]从前台获得,这⾥我没贴出获得过程,此外有个回调地址,这⾥我随便写了⼀个地址,即我的服务器php开发路径下的某个php⽂件,⽂件可以为空,因为不是很重要,还有个nonce_str,这个是随机32位字符串,这个⽣成⽅式是我⾃⼰写了⼀个简单的随机⽣成⽅法,总之就是32个字母加
数字,接下来最关键的⼀步,使⽤⾃⼰写的MakeSign函数⽣成签名!这⼀函数实现的就是官⽅⽂档的签名⽣成⽅式!我的代码如下:
林俊杰 金曲奖其中的ToUrlParams函数如下:
少先队员队歌歌词这样⼦我们就得到了签名sign,接下来要对包括sign值在内的众多参数值包装成xml格式数据,再调⽤统⼀⽀付调⽤接⼝api,先贴出打包成xml数据的代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论