百度网盘:http://pan.baidu.com/s/1sl5GeVr  l5ud

先下载一份sdk ,引入到自己的项目中,我用的是TP5,配置好namespace

然后在项目中引入:

之后,在去配置文件。config.php

通常操作就是。

用户访问一个方法,在方法里面new wechatpay。得到一个结果集 。

然后再去调用sdk的一些内部方法

把一些要存到数据库里面的。放在缓存里面待用,比如传入的金钱,还有类型,用户uid等。也可以做一个签名验证操作。我这里就不做了。

这里访问成功的话,微信那边就会调用那个之前设置好的回调接口。就是之前我们在config.php里面设置的那个

// 重置成功回调
public function Callback()
{ $input = file_get_contents("php://input"); // 用输入流接收 libxml_disable_entity_loader(true);
$xml = json_decode(json_encode(simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
Cache::set('ec',$xml); Log::write('测试日志信息,这是警告级别,并且实时写入'.var_export($xml, true),'notice');
//判断是否是付款成功的回调
if($xml && $xml['return_code'] == 'SUCCESS' && $xml['result_code'] == 'SUCCESS'){ // 以下是我的逻辑处理代码。
$uid = Cache::get('userid'); $data['openid'] = $xml['openid'];
$data['total_fee'] = $xml['total_fee'];
$data['out_trade_no'] = $xml['out_trade_no'];
$data['time_end'] = strtotime($xml['time_end']);
$data['uid'] = $uid;
$data['money'] = Cache::get('money');
$data['payObjType'] = Cache::get('payObjType');
$data['payObjId'] = Cache::get('payObjId');
$res = Db::name('moneydetail')->insert($data); Cache::set('res',$res);
if($res){
switch ($data['payObjType']) {
case '1':
# 打赏帖子
Db('user_info')->where('id',$uid)->setInc('merits',$data['money']);
break;
case '2':
# 充值功德值
switch ($data['money']) {
case '900':
$new_num = 99;
break;
case '3900':
$new_num = 439;
break;
case '9900':
$new_num = 1299;
break;
case '19900':
$new_num = 3199;
break;
case '36900':
$new_num = 7399;
break;
case '99900':
$new_num = 24999;
break;
default:
# code...
break;
}
Db('user_info')->where('id',$uid)->setInc('merits',$new_num); break;
case '3':
# 打赏平台
Db('user_info')->where('id',$uid)->setInc('merits',$data['money']);
break; default:
# code...
break;
}
// 清空缓存
Cache::set('money',NULL);
Cache::set('userid',NULL);
Cache::set('payObjType',NULL);
Cache::set('payObjId',NULL);
}
} }

基本上了

最新文章

  1. render :template 和 render :parital
  2. js中setTimeout()的使用bug
  3. 准备使用 Office 365 中国版--购买
  4. CentOS编译安装NodeJS+Express
  5. sharding-jdbc-how2work 当当的sharding-jdbc剖析(查询)
  6. iOS开发UI篇—ios应用数据存储方式(偏好设置)
  7. 就这样获取文件的MD5和大小
  8. Android 之 下拉框(Spinner)的使用
  9. Windows API 进程状态信息函数
  10. Hibernate缓存机制简述 (转)
  11. 【技术贴】解决 myeclipse打不开报错an error has occurred, see .
  12. CAS协议 - CAS URIs
  13. Oracle Database Instant Client 11g 32位和64位 安装包发布
  14. 1.1 sikuli 安装
  15. 团队作业8——第二次项目冲刺(Beta阶段)(冲刺计划)
  16. Django中url的生成过程详解
  17. Python之路,第三篇:Python入门与基础3
  18. select字符串
  19. JAVA每日一旅2
  20. C#编程(十四)----------构造函数

热门文章

  1. SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?
  2. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进
  3. 前端监控系列2 |聊聊 JS 错误监控那些事儿
  4. ceph 008 ceph多区域网关(ceph对象容灾) cephfs文件系统
  5. mustache.js常见用法
  6. 教程 - 深度探讨在 Vue3 中引入 CesiumJS 的最佳方式
  7. San(COCI2017.2)题解
  8. OpenJudge 1.5.15 银行利息
  9. 华南理工大学 Python第5章课后小测-1
  10. 璞华HawkEye平台助力乳品行业巨头在数字化转型中领“鲜”一步!