1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
// 用户购买视频支付接口
require_once ("../user_include.inc");
ErrorLogger::doOutput("Compass...ajax_set_buy_media.php.php....Start.", 0);
//获取参数
$unionId = ParamUtil::getRequestString("unionId");
$openId = ParamUtil::getRequestString("openId", 0);
$courseId = ParamUtil::getRequestNumber("courseId", 0);
$mediaId = ParamUtil::getRequestNumber("mediaId", 0);
$result = array();
//参数检查
if(empty($unionId) || empty($openId)|| empty($courseId)|| empty($mediaId)) {
$result["message"] = "参数错误!";
responseNG($result);
}
$result = array();
//判断用户是否存在
$param = array();
$param['unionid'] = $unionId;
$param['openid'] = $openId;
$param['delete_flg'] = false;
$userList = UserMst::getList($param,'id','desc', 0, 1);
if(empty($userList)) {
$result["message"] = "用户不存在!";
responseNG($result);
}
$userMst = $userList[0];
//判断视频是否存在
$param = array();
$param['id'] = $mediaId;
$param['course_id'] = $courseId;
$param['delete_flg'] = false;
$courseMediaList = CourseMediaDat::getList($param,'id','desc', 0, 1);
if(empty($courseMediaList)) {
$result["message"] = "视频不存在!";
responseNG($result);
}
$courseMediaDat = $courseMediaList[0];
//用户是否已经购买本视频
$param = array();
$param['user_id'] = $userMst->id;
$param['course_id'] = $courseId;
$param['media_id'] = $courseMediaDat->id;
$param['is_free'] = false;
$param['status'] = 'SUCCESS';
$param['delete_flg'] = false;
$userBuyMediaList = UserMediaDat::getList($param, "id", "desc", 0, 1);
if(!empty($userBuyMediaList)) {
$result["message"] = "不能重复购买!";
responseNG($result);
}
//调用微信支付
//生成临时订单
$orderNo = "M" . date("YmdHis") . "_" . $userMst->id;
$userMediaDat = new UserMediaDat();
$userMediaDat->user_id = $userMst->id;
$userMediaDat->course_id = $courseId;
$userMediaDat->media_id = $mediaId
$userMediaDat->is_free = false;
$userMediaDat->money = $courseMediaDat->price;
$userMediaDat->order_no = $orderNo;
$userMediaDat->status = "NEW";
$userMediaDat->save();
//调用微信支付接口
$tools = new JsApiPay();
$input = new WxPayUnifiedOrder();
$input->SetBody($courseMediaDat->title);
$input->SetAttach($courseMediaDat->title);
$input->SetOut_trade_no($orderNo);
$input->SetTotal_fee($courseMediaDat->price * 100);//折算到分
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 800));
$input->SetGoods_tag($courseMediaDat->title);
$input->SetNotify_url("https://" . SSL_PATH . "/api/api_wx_pay_notify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($userMst->openid);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
ErrorLogger::doOutput($jsApiParameters);
ErrorLogger::doOutput("Compass...ajax_set_buy_media.php.php....End.", 0);
//已经被 encode一次了,先还原为数组。
responseOK(json_decode($jsApiParameters));
?>