小白级微信支付的设计思路

支付是很多项目都会用到的,今天我们就好好聊一聊支付这个问题。

常见的支付有微信,支付宝,有一定基础的同学可以去看看对应的官方文档

今天我们这里仅提供一个思路,拿微信支付举例子

第一步,设计出我们的订单的这个数据库表

分析一下订单表该有的信息:

1.谁的订单:用户(user_id)

2.买的什么:商品(product_id)

3.哪家店的东西:商铺(store_id)

4.一般会定义一个自己的本站唯一订单号:trade_no

5.外部支付单号:out_trade_no 这是微信支付的返回的订单号:(transaction_id)

6.主键自增长的订单id

7.支付金额:pay_money

8.支付方式,如(1=支付宝,2=微信,...):pay_type

9.订单状态,一般情况下有(0=等待支付,1=已经付款,2=已取消)

10.订单创建时间:cdate

11.完成支付的时间:pay_time

12.订单未支付的失效时间:expires

13.更新时间:update

14.预支付订单id:prepay_id

15.预支付订单创建时间:prepay_time

16.删除时间:deldate

以上,基本就是一般订单表设计的所有字段了

带_id后缀的意思是外键,关联其他表的主键

第二步,代码的编写

编程我们最重要的是思路,我们把思路理清了,代码自然就出来了

1.先创建本地订单

写代码的时候一定要把情况考虑完备,具体的业务具体分析,在做订单的创建的时候,

要考虑订单什么时候不能创建,创建是否成功,是否有其他信息需要绑定,有没有反复创建等。

这里一般是要事务操作的,失败就回滚,初学者的话,先忽略,创建起订单就算成功。

创建本地订单添加以下字段

1,2,3,4,6,7,9,10,12

其中trade_no自己视情况生成唯一,订单状态默认为0,pay_money保留两位小数,不同语言不同处理方式,自行百度,订单超期未支付expires是根据业务计算得出,比如你们是要订单创建半小时后自动关闭,那就是创建时间往后推半小时。

ok,到这里本地订单创建完毕。

2.支付

这里主要就是需要根据微信的支付文档,去拼一个他们要的数据,然后生成一个预支付订单,将预处理订单id生成小程序调用的参数,进行支付签名,这些一般是现成的sdk,调一下就行,

预支付订单所填的参数如下

微信支付-开发者文档

直接看文档吧

最后还有一个微信支付的回调,微信调用你的回调接口,你去查看这个订单的支付状态,成功的话就更新一下本地的订单状态,添加商户收入日志,更新商户总额,同步订单消息啥的一系列操作。

3.定时任务删除超期未支付的订单

如标题一样,后台定时任务每分钟去删除数据库超期未支付的订单,一般都是软删,也就是将deldate字段从0修改为删除时间

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PHP微信支付Native支付是指在PHP开发环境中使用微信支付的一种支付方式。具体而言,Native支付是将微信支付的功能集成到PHP程序中,使得用户在网页上能够通过微信扫码支付的方式完成支付流程。 要实现PHP微信支付Native支付,在开发环境中需要先进行以下几个步骤: 1. 注册微信支付商户账号:通过微信支付官方网站注册并获取商户号以及相关的API密钥。 2. 配置服务器环境:搭建PHP开发环境,并确保服务器支持HTTPS协议,因为微信支付要求使用HTTPS进行数据传输。 3. 引入微信支付SDK:下载并引入微信支付的PHP SDK,该SDK提供了调用微信支付接口的相关函数库。 4. 编写支付代码:根据具体需求,编写PHP代码调用微信支付接口,包括生成支付二维码、处理支付结果等。 5. 测试支付流程:在开发环境中进行支付流程的测试,包括生成支付二维码供用户扫码、接收微信支付异步通知等。 需要注意的是,使用微信支付Native支付时,要确保生成的支付二维码能够正常显示,并能够通过微信扫码完成支付。另外,在接收微信支付异步通知时,要对收到的订单信息进行验证,确保支付结果的准确性。 总结来说,PHP微信支付Native支付是在PHP开发环境中实现微信支付功能的一种方式,通过生成支付二维码让用户扫码完成支付流程。要实现该功能,需要注册商户账号、配置服务器环境、引入微信支付SDK并编写相应的支付代码。最后,在开发环境中进行测试,确保支付流程的稳定性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海上生日朋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值