APP苹果内购支付

该代码段用于处理苹果应用内购支付验证。首先,检查用户会话有效性,然后根据$sandbox参数选择验证收据的URL。通过POST请求发送收据数据,接收到响应后,获取苹果订单号和商品ID。接着,根据商品ID计算充值金额并更新用户余额,同时插入充值记录。如果支付验证失败,返回错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$user_id = $_SESSION['user_id'];/*  = 1024 */

if ($user_id <= 0) {
    return new ecjia_error(100, 'Invalid session');
}
$url_buy     = "https://buy.itunes.apple.com/verifyReceipt";
$url_sandbox = "https://sandbox.itunes.apple.com/verifyReceipt";
$receipt = $this->requestData('receipt-data');
$sandbox = $this->requestData('sandbox');
$jsonData = array('receipt-data'=>$receipt);
$jsonData = json_encode($jsonData);
$url = $sandbox ? $url_sandbox : $url_buy;
$response = http_post_data($url,$jsonData);
if($response['status']== 0){
    $transaction_id=$response['receipt']['in_app'][0]['transaction_id'];//苹果订单号
    $product_id=$response['receipt']['in_app'][0]['product_id'];//商品价格
    $money=explode('musicStudy', $product_id);
    $addtime=RC_Time::gmtime();
    //用户原始金额
    $userinfo = RC_DB::table('users')->where('user_id', $user_id)->first();
    //用户总金额
    $money_sum=(int)$money[1]+$userinfo['qianbao'];
    //更新用金额
    RC_DB::table('users')->where('user_id', $user_id)->update(array('qianbao'=>$money_sum));
    //插入充值记录
    $data = array(
        'user_id' => $user_id,
        'status'  => 1,
        'transaction_id'     => $transaction_id,
        'message'     => '充值成功',
        'money' =>$money[1],
        'add_time'     =>$addtime
    );
    $ad_id = RC_DB::table('ios_chongzhi_log')->insertGetId($data);
    $result=array(
        'message'=>'success'
    );
}else{
    $result=array(
        'message'=>'false status:'.$response['status']
    );
}
return $result;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值