|
@@ -0,0 +1,69 @@
|
|
|
|
+<?php namespace Pay\Lib;
|
|
|
|
+use Dever;
|
|
|
|
+# 苹果内购支付验证接口 代码摘自网络
|
|
|
|
+class Apple extends Core
|
|
|
|
+{
|
|
|
|
+ /**
|
|
|
|
+ * 检测
|
|
|
|
+ */
|
|
|
|
+ public function check($receipt_data)
|
|
|
|
+ {
|
|
|
|
+ if (strlen($receipt_data) < 20) {
|
|
|
|
+ Dever::alert('参数非法');
|
|
|
|
+ }
|
|
|
|
+ $result = $this->curl($receipt_data);
|
|
|
|
+
|
|
|
|
+ //如果是沙盒数据 则验证沙盒模式
|
|
|
|
+ if ($result['status'] == 21007) {
|
|
|
|
+ $result = $this->curl($receipt_data, true);
|
|
|
|
+ $result['sandbox'] = 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (Dever::input('debug')) {
|
|
|
|
+ exit(json_encode($result));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 判断是否购买成功
|
|
|
|
+ if (intval($result['status']) ===0 ) {
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ Dever::alert('购买失败 status:'.$data['status']);
|
|
|
|
+ }
|
|
|
|
+ $this->log('支付回调-初始化', $input);
|
|
|
|
+
|
|
|
|
+ $tools = new \Cmbc\Handle();
|
|
|
|
+ $callback = $tools->get('notify', $this->config);
|
|
|
|
+ $result = $callback->request($input, $this);
|
|
|
|
+ if ($result) {
|
|
|
|
+ $this->log('支付回调-获取数据', $result);
|
|
|
|
+ $this->updateOrder($result['mhtOrderNo'], $result['mhtOrderAmt']);
|
|
|
|
+ echo 'success=Y';die;
|
|
|
|
+ } else {
|
|
|
|
+ echo 'success=N';die;
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private function curl($receipt_data, $sandbox = false)
|
|
|
|
+ {
|
|
|
|
+ //小票信息
|
|
|
|
+ $input = array("receipt-data" => $receipt_data);
|
|
|
|
+ $post = json_encode($input);
|
|
|
|
+
|
|
|
|
+ //正式购买地址 沙盒购买地址
|
|
|
|
+ $url_buy = "https://buy.itunes.apple.com/verifyReceipt";
|
|
|
|
+ $url_sandbox = "https://sandbox.itunes.apple.com/verifyReceipt";
|
|
|
|
+ $url = $sandbox ? $url_sandbox : $url_buy;
|
|
|
|
+
|
|
|
|
+ //简单的curl
|
|
|
|
+ $ch = curl_init($url);
|
|
|
|
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
+ curl_setopt($ch, CURLOPT_POST, 1);
|
|
|
|
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
|
|
|
|
+ $result = curl_exec($ch);
|
|
|
|
+ curl_close($ch);
|
|
|
|
+ $input['url'] = $url;
|
|
|
|
+ $this->log('苹果内购支付-调用苹果接口', $input);
|
|
|
|
+ return Dever::json_decode($result);
|
|
|
|
+ }
|
|
|
|
+}
|