我现在要做一个微信支付的功能,会员积分+金额的组合方式进行支付购买,请问各位大牛积分在什么时候进行抵扣比较好呢?
在支付成功的回调进行积分的减扣,如果这时积分余额不足怎么办?发起微信支付预申请成功将积分扣除,如果用户取消支付,在回调处理时中断了怎么办?当然可以加上定时器扫描,一段时间内未完成支付操作的回滚积分
还有其他更好的办法吗?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
分为两步:1.生成订单2.为订单进行支付
分步后看起来就容易理清楚逻辑:
生成订单,并且关联生成两种路径的支付路径(积分+微信)
该订单有一个支付有效时间(例如2小时内未支付自动取消),并且也有用户手动取消的入口。
订单生成后进入支付逻辑。这两种逻辑中,其中积分支付立即进行,微信支付调用接口,支付成功回调时检查两种支付方式的支付状态,若都已经支付成功则订单成功支付,若积分支付还未完成则等待积分支付。
若出现超时取消或者用户自己取消,来自各个路径的支付将原路返回:积分将退回积分账户,微信调用退款接口
发起支付前先判断积分 支付成功后再扣除?这样不行么
发起支付后,冻结要扣除的积分,支付成功好再扣除,支付失败或者取消,就解冻之分,
一开始就设定一点积分合多少人民币,或者单独推出积分+现金的活动,否则后来添加起来难度有点大。我觉得你可以添加新的模块,自己定义积分价值,购买时用户自己选择使用积分数量,结算时统一合成现金进行计价。
先扣除积分,1、支付不成功,根据支付回调函数,返回积分,作废订单。2、支付成功,修改订单状态为已成交即可。
分为两步:
1.生成订单
2.为订单进行支付
分步后看起来就容易理清楚逻辑:
生成订单,并且关联生成两种路径的支付路径(积分+微信)
该订单有一个支付有效时间(例如2小时内未支付自动取消),并且也有用户手动取消的入口。
订单生成后进入支付逻辑。这两种逻辑中,其中积分支付立即进行,微信支付调用接口,支付成功回调时检查两种支付方式的支付状态,若都已经支付成功则订单成功支付,若积分支付还未完成则等待积分支付。
若出现超时取消或者用户自己取消,来自各个路径的支付将原路返回:积分将退回积分账户,微信调用退款接口
发起支付前先判断积分 支付成功后再扣除?这样不行么
发起支付后,冻结要扣除的积分,支付成功好再扣除,支付失败或者取消,就解冻之分,
一开始就设定一点积分合多少人民币,或者单独推出积分+现金的活动,否则后来添加起来难度有点大。
我觉得你可以添加新的模块,自己定义积分价值,购买时用户自己选择使用积分数量,结算时统一合成现金进行计价。
先扣除积分,
1、支付不成功,根据支付回调函数,返回积分,作废订单。
2、支付成功,修改订单状态为已成交即可。