Commit 2967097b by biao

11

parent 28cb3d25
1. 小程序开发者账号
1. 小程序开发者账号
......@@ -5,3 +5,6 @@
4.阿里云oss key
5.小程序绑定对应公众号
===
WxPayConfig 支付配置
<?php
/**
* 設定ファイル
* 系统设定稳健
* $Id: settings.inc
* @author zhouz
* @package settings
......@@ -11,16 +11,13 @@ ini_set("error_reporting", E_ALL);
ini_set("magic_quotes_gpc" ,0);
define("ERROR_LOG_LEVEL", 100);
// -------------▽网站变更项目▽----------------
// 服务名称
define("SERVICE_NAME", "指南针");
// 服务器配置
define("DOMAIN_NAME", "COMPASS-online.cn");
define("HOST_NAME", "www.COMPASS-online.cn");
define("SCHOOL_DOMAIN", "school.COMPASS-online.cn");
define("SCHOOL_TOP", "http://school." . DOMAIN_NAME . "/school.php");
define("DOMAIN_NAME", "compass.koala-online.cn");
define("HOST_NAME", "compass.koala-online.cn");
define("SSL_PATH", "compass.koala-online.cn/user");
// 数据库配置
define("COMPASS_DB", "compass_develop_db");
......@@ -41,12 +38,6 @@ define("COMPASS_MEMCACHE_HOST", "127.0.0.1");
define("COMPASS_MEMCACHE_PORT", "11211");
define("MEMCACHE_VERSION", 1);
// 短消息相关设定
define("SMS_F","1"); //默认值1
define("SMS_COMPANY_ID", "70393"); //企业帐号
define("SMS_APP_ID", "1400270299"); //用户帐号
define("SMS_APP_KEY", "3c6208374d1940652303ae08396ce5f8"); //密码
// 微信认证相关【公众号】
define("WECHAT_APP_ID","wxeef50c5d0ef117d1");
......@@ -75,15 +66,13 @@ define("UPLOAD_TMP_DIR", COMPASS_ROOT . "/manager/uploadtmp");
define("MOBILE_TEMPLATE_DIR", COMPASS_ROOT . "/mobile/templates");
// ページングのところ、表示するページの数。5の場合:1 | 2 | 3 | 4 | 5
// 翻页的地方显示的页面数量。5的时候:1 | 2 | 3 | 4 | 5
define("MANAGER_PAGING_SHOW_PAGE_COUNT", 5);
// 管理画面一覧デフォルト表示行
// 后台默认每页条数
define("MANAGER_DEFAULT_ROW_COUNT", 10);
// 画像表示用PHPスクリプトのURL
define("DISPLAY_IMAGE_URL", "http://" . HOST_NAME . "/display_image.php");
// 画像表示用PHPスクリプトのURL
define("VIDEO_SOURCE_URL", "http://" . HOST_NAME . "/mp4.php");
// 临时csv存放文件
define("CSV_PATH", COMPASS_ROOT . "/data/csv");
......
<?php
// 微信支付结果通知
require_once ("../user_include.inc");
ErrorLogger::doOutput($_REQUEST);
class PayNotifyCallBack extends WxPayNotify
{
//查询订单
public function Queryorder($transaction_id)
{
$input = new WxPayOrderQuery();
$input->SetTransaction_id($transaction_id);
$result = WxPayApi::orderQuery($input);
if(array_key_exists("return_code", $result)
&& array_key_exists("result_code", $result)
&& $result["return_code"] == "SUCCESS"
&& $result["result_code"] == "SUCCESS")
{
return true;
}
return false;
}
//重写回调处理函数
public function NotifyProcess($data, &$msg)
{
ErrorLogger::doOutput("Compass...api_wx_pay_notify...call back:" . json_encode($data));
if(!array_key_exists("transaction_id", $data)){
$msg = "输入参数不正确";
return false;
}
//查询订单,判断订单真实性
if(!$this->Queryorder($data["transaction_id"])){
$msg = "订单查询失败";
return false;
}
$type = substr($data["out_trade_no"],0,1);
switch($type){
// 购买视频支付后处理
case 'M':
$param = array();
$param["delete_flg"] = false;
$param["status"] = "NEW";
$param["order_no"] = $data["out_trade_no"];
$userMediaDatList = UserMediaDat::getList($param);
// 找到订单
if (count($userMediaDatList) < 1) {
ErrorLogger::doOutput("Compass...api_wx_pay_notify...UserMediaDat is null.");
return false;
}
$userMediaDat = $userMediaDatList[0];
//找到对应的用户
$user_mst = UserMst::getById($donation_dat->user_id);
if ($user_mst == null) {
ErrorLogger::doOutput("Compass...api_wx_pay_notify...user is null.");
return false;
}
//更新支付状态
$userMediaDat->status="SUCCESS";
$userMediaDat->save();
break;
// 募捐支付后处理
case 'D':
$param = array();
$param["delete_flg"] = false;
$param["status"] = "NEW";
$param["order_no"] = $data["out_trade_no"];
$userDonationList = UserDonationDat::getList($param);
// 找到订单
if (count($userDonationList) < 1) {
ErrorLogger::doOutput("Compass...api_wx_pay_notify...userDonation is null.");
return false;
}
$userDonation = $userDonationList[0];
//更新支付状态
//更新用户账户
$userDonation->status = "SUCCESS";
$userDonation->save();
break;
default:
break;
}
return true;
}
}
$notify = new PayNotifyCallBack();
$notify->Handle(false);
-----BEGIN CERTIFICATE-----
MIIEaTCCA9KgAwIBAgIEAZ+DmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV
BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf
MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODAxMTQwODU4Mzda
Fw0yODAxMTIwODU4MzdaMIGYMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk
b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE
CxMFTU1QYXkxLTArBgNVBAMUJOWNl+S6rOengOinhuS/oeaBr+aKgOacr+aciemZ
kOWFrOWPuDERMA8GA1UEBBMIMTM2MTY1NDYwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDZbnV75FG8J0a7o3OHJyqwQmDdjFS697d2PfyyE4UnDDgC24D2
F2rKuGiTmXbvM7SkRUb6DaFI7ybhrMjVH1hxoQ7koAOa+jr+fP6C51Rs+THOK9DV
s5lPaITH+QirS34KZNJTtS7NIWdMl4uoHDCwUAz0li418wN3YKnEGpr1FKwP2XTF
rV97BlzPwecOnPtKL2RkRzqqmXO3UXRhed+y601NaFVCwXGt5bb3/L0NDujw1hMX
ZdRTQwwAuuIpfZi3/DYsK/Mzcy3E+P320mXASc8TiuOO6LY1Zx+TQ4jZHSO1pH6n
tqyz/zoWtJukcBDHlf/LHQAT6HOPHFF7G9KBAgMBAAGjggFGMIIBQjAJBgNVHRME
AjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRl
IjAdBgNVHQ4EFgQUwUJLxOTeQdrUY1dJMZMW9zYMGF8wgb8GA1UdIwSBtzCBtIAU
PgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYD
VQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5j
ZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG
9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMC
BsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAPY7c
9k+8BRDc8MauyglgPfRgdZU24Q4hXpd3i7iARC8HBSjm12Di+pkgodimLZIPrGOk
qmF+7pliXqZZkA3lsP/5Zl6cMECpcNfFtBha3X/smnawbPiQ35kH8MvZ0KCniSxt
RdV1KrNAe49TiWKs5Y4IM3s3OOSTSOebGffQ8ts=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDZbnV75FG8J0a7
o3OHJyqwQmDdjFS697d2PfyyE4UnDDgC24D2F2rKuGiTmXbvM7SkRUb6DaFI7ybh
rMjVH1hxoQ7koAOa+jr+fP6C51Rs+THOK9DVs5lPaITH+QirS34KZNJTtS7NIWdM
l4uoHDCwUAz0li418wN3YKnEGpr1FKwP2XTFrV97BlzPwecOnPtKL2RkRzqqmXO3
UXRhed+y601NaFVCwXGt5bb3/L0NDujw1hMXZdRTQwwAuuIpfZi3/DYsK/Mzcy3E
+P320mXASc8TiuOO6LY1Zx+TQ4jZHSO1pH6ntqyz/zoWtJukcBDHlf/LHQAT6HOP
HFF7G9KBAgMBAAECggEAMDZyDpq+FP6QjKLdxyZELPlLCVVIpHyxTaLJGaOCbvoi
oV+S5P6kS3dAmRn6aWgJsjM6XdAP52BAOuJZVgixT+DqsH9azU6XLj8BIH2zFsba
6GCG2hwM7rK6Xq014uXGeP+KM82FJy80/KLN8OTvVukpNkLm1EeiiSICAt3zZkxa
NJf/wOUSqsYj+/7R+68DlIZtP3/v9ZRWdPAPPSZ7pwez2ZcJYXWF3R3NjjhVc2xL
dR3Jk1SV+uzZYFf3rpjK09AbIDl2mcqQ3AWp0A499djjl8bezXfUfZyvtuehVcC7
MhrUzFLc1J7nk/jeTg0EtbDVnf9GGajHsbA+WytsUQKBgQD/e29PDuYXSWBaMM5O
glbiPHpDLT//lZMs4qLdg95XFtmdpWefbV6kQ0RI5rdLI7C8STVb5BtKKenyms+3
a3HlaDKjDp6gC4vvRavKgoO6SLr/kwCK4wcw84nXEcM5ZVXQb9LQ5ycH2vkGBboL
SNl1AQAstrKOx35lhiCui+N4iwKBgQDZ30fBEu6uBNGCVi6cYSGuKn4QsTGpDTKZ
QKkpD0FS9YAx/nuwrkwN2H3eUW6ILtDXS+5AGDHIiCTzHVDZBy4iAHZfvZFuuIw6
FTT/xeevRUQXk4XKiYSc6H5p6d8m+xsXd+JT7ImQR/DrXbUdlsp+IfOOL3Vu9OqP
OYjZD+J2owKBgQD878P/zYxXubm/EVrvt3M1gRK6t24JKJkRc0Azd38FUgYZYcz5
tlpg3ogYdPM7XRZ5EzHUzD2Ia37HRiYoPiQBL+wSK0M4yLW+KogucpDgOWmJ5ow+
9Q4FlNf/KgLSLFWNi2h4kqG90TmCkODkkzdX86msmySk3zVwZh6tMKoAiQKBgCLF
/FHYj7e+lSHUV4QmDJYbuhs37NEqhhTnuRgQk0CGZnuUPnGooALlttEw9g9OSY7T
U6dvNSLod91FpI2/E6HhqQMG4ptlYRw0Hk1kbOIQkBmjNgtpf3z7rpGA/ljeYyiP
vdPfQOWCVfV681lRo+gVyyW6dWfMN1O8vxbF7kM5AoGBAPJhqM4fB5pWhcSNZr5z
Mq/L7kERU0OnIboR428VJ067MIhlPFiVEQxOK9xxkplvvRFSYrnFi4Xcu3epXkWC
fsGIpW/9YuClTwsHhpzTybtzCsQRkSHtBmZsaHSBfkhmndue+CTnsyN3Th4xp1qB
vnBttJhIUnJxiRTJN0dWnJ8q
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----
\ No newline at end of file
<?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));
?>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment