B2主题支付体系二开:优惠券与积分抵扣实现

概述

在 B2 支付流程中叠加优惠券与积分抵扣,可显著提升转化。本文给出服务端校验与前端展示的完整思路。

一、优惠券数据结构

将优惠券存为 CPT 或 option,关键字段:面额、门槛、有效期、每人限用次数:

Text
array(
    'code' => 'JI2026',
    'amount' => 20,
    'min' => 100,
    'expire' => '2026-12-31',
    'per_user' => 1,
)

二、结算时校验

Text
function ji_apply_coupon($code, $price, $uid) {
    $cp = get_option('ji_coupon_' . $code);
    if (!$cp || $cp['expire'] < date('Y-m-d')) return $price;
    if ($price = $cp['per_user']) return $price;
    return max(0, $price - $cp['amount']);
}

三、积分抵扣

积分与金额按站点比例兑换,支付时优先抵扣:

Text
// 100 积分 = 1 元
$points = (int) get_user_meta($uid, 'ji_points', true);
$maxDeduct = min($points / 100, $price);
$final = $price - $maxDeduct;

注意事项

  • 优惠券与积分抵扣必须服务端二次校验,前端展示仅为体验。
  • 支付成功后要核销优惠券与扣除积分,保证幂等。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
签到成功