请教下ios 内购自动订阅的技术细节
公司要实现一个 vip 会员功能,需要有自动订阅。
从网上搜集的资料,自动续费有三种模式。
1. 通过客户端
2. 苹果推送
3. 循环历史票据信息
现在实现的代码如下,
就是想问其中是否存在 bug
$receipts = $data['latest_receipt_info']; // 自动续订订阅项时才会有
if (!isset($data['latest_receipt_info'])) {
$receipts = $data['receipt']['in_app']; // 消费类型
}
if (empty($receipts)) {
return api_400('in_app信息为空');
}
//根据自身需求返回数据
$returnData = [];
//多物品信息
foreach ($receipts as $product) {
//订单重复验证
$orderCheck = PaymentOrderModel::where(['otn' => $product['transaction_id']])
->find();
if ($orderCheck) {
continue;
}
//产品验证
$productCheck = ProductModel::where(['os_type' => 1, 'ename' => $product['product_id']])
->find();
if (!$productCheck) {
return api_400('没有找到对应产品的金额,ID:' . $product['product_id']);
}
// 启动事务
Db::startTrans();
try {
//创建订单
//业务处理
Db::commit();
// 提交事务
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
return api_400($e->getMessage());
}
}
推荐文章: