ucenter是通过getcreditsettings来获得你自己程序里的积分设置的。这个Action位于api/uc.php 。
2、点“同步。。。。”的时候会自动接收,如果你设置了getcreditsettings 。
3、ucenter通过uc_credit_exchange_request() 触发 updatecredit 来 兑换各个应用程序的积分,兑换比例设置在ucenter中。
4、同步功能,我估计可以把比例设置成1:1来实现。。。。(没有试过)
以上是我的理解,仅供参考。
————————————————————————
我修改自己应用下api/uc.php 里的getcreditsettings积分设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function getcreditsettings($get, $post) { if(!API_GETCREDITSETTINGS) { return API_RETURN_FORBIDDEN; } //设置积分兑换 $credits = array( '1' => array('威望', ''), '2' => array('金钱', '枚'), ); return $this->_serialize($credits); } |
结果连UCenter后台的《同步应用的积分设置》点了都不能加载到应用了…所有应用都没了,这是什么呢??还关联哪了…
————————————————————————
因为api/uc.php不是UTF-8的编码,将’威望’和’金钱’改为英文即可!
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 | < ?php // 加载配置文件 require('./Conf/config.php'); // 与UCenter的API接口对接 require_once( './uc_client/client.php'); //尝试获得用户登录消息 $username = uc_get_user(3,1); list($Example_uid, $Example_username,$Example_email) = $username ; header("Content-Type:text/html; charset=utf-8"); echo '用户ID 3 的人用户名为:'.$Example_username.'邮件:'.$Example_email; echo '<br/> 获取指定应用的指定用户积分 <br />'; print_r( uc_user_getcredit(4, 3, 2) ); //应用 ID , 用户 ID ,积分编号 echo '<br /> 积分兑换请求 <br />'; //用户 ID, 原积分, 目标积分, 目标应用 ,积分数额 print_r ( uc_credit_exchange_request(3 ,1, 1 , 4 ,123 ) ); //1:请求成功 0:请求失败 echo '<br /> 数组 <br />'; $credits = array( '1' => array('威望',''), '2' => array('金钱',''), '3' => array('废客',''), ); print_r ( $credits); ?> |
————————————————————————
至此完全解决
进入UC后台 – 积分兑换 -点击 点击“同步应用的积分设置” – 兑换方向 -自己的应用和DZ或其它应用 -提交
就可以使用
1 2 | //用户 ID, 原积分, 目标积分, 目标应用 ,积分数额 $jljf = uc_credit_exchange_request($userid ,$jf_yj, $jf_mb , $jf_yy ,$jf_se ) ; //1:请求成功 0:请求失败 |