aliConnectAPI.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. class aliConnectAPI{
  3. var $alipay_config;
  4. var $return_url;
  5. public function __construct($alipay_partner = "", $alipay_key = ""){
  6. /**************************请求参数**************************/
  7. $this->alipay_config['partner'] = $alipay_partner;
  8. //安全检验码,以数字和字母组成的32位字符
  9. $this->alipay_config['key'] = $alipay_key;
  10. //签名方式 不需修改
  11. $this->alipay_config['sign_type'] = strtoupper('MD5');
  12. //字符编码格式 目前支持 gbk 或 utf-8
  13. $this->alipay_config['input_charset']= strtolower('utf-8');
  14. //ca证书路径地址,用于curl中ssl校验
  15. //请保证cacert.pem文件在当前文件夹目录中
  16. $this->alipay_config['cacert'] = getcwd().'\\cacert.pem';
  17. //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
  18. $this->alipay_config['transport'] = 'http';
  19. //$this->return_url = SITE_DOMAIN.'/callback/login/alilogin_notify.php';
  20. $this->return_url = SITE_DOMAIN.'/mapi/index.php';
  21. }
  22. //获取接口的显示
  23. public function get_display_code(){
  24. require_once(APP_ROOT_PATH."system/AlipayloginApi/lib/alipay_submit.class.php");
  25. //目标服务地址
  26. $target_service = "user.auth.quick.login";
  27. //必填
  28. //必填,页面跳转同步通知页面路径
  29. $return_url = $this->return_url;
  30. //需http://格式的完整路径,不允许加?id=123这类自定义参数
  31. //防钓鱼时间戳
  32. $anti_phishing_key = "";
  33. //若要使用请调用类文件submit中的query_timestamp函数
  34. //客户端的IP地址
  35. $exter_invoke_ip = "";
  36. //非局域网的外网IP地址,如:221.0.0.1
  37. /************************************************************/
  38. //构造要请求的参数数组,无需改动
  39. $parameter = array(
  40. "service" => "alipay.auth.authorize",
  41. "partner" => trim($this->alipay_config['partner']),
  42. "target_service" => $target_service,
  43. "return_url" => $return_url,
  44. "anti_phishing_key" => $anti_phishing_key,
  45. "exter_invoke_ip" => $exter_invoke_ip,
  46. "_input_charset" => trim(strtolower($this->alipay_config['input_charset']))
  47. );
  48. //建立请求
  49. $alipaySubmit = new AlipaySubmit($this->alipay_config);
  50. $html_text = $alipaySubmit->buildRequestForm($parameter,"GET", "确认");
  51. echo $html_text;
  52. }
  53. /*
  54. * 支付宝回调验证
  55. */
  56. public function verifyreturn()
  57. {
  58. require_once(APP_ROOT_PATH."system/AlipayloginApi/lib/alipay_notify.class.php");
  59. $alipayNotify = new AlipayNotify($this->alipay_config);
  60. $verify_result = $alipayNotify->verifyReturn();
  61. return $verify_result;
  62. }
  63. public function build_html($str)
  64. {
  65. $html = '<!DOCTYPE html>
  66. <html>
  67. <head>
  68. <meta charset="utf-8">
  69. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  70. <title>支付宝认证</title>
  71. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=0,minimum-scale=0.5">
  72. <link rel="shortcut icon" href="/favicon.ico">
  73. <meta name="apple-mobile-web-app-capable" content="yes">
  74. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  75. <style>
  76. .img-box{
  77. margin-top:0px;
  78. }
  79. @media screen and (min-width: 770px) {
  80. .img-box {
  81. width:600px;
  82. margin-top: 0px;
  83. }
  84. }
  85. .img-box img{
  86. width:100%;
  87. }
  88. .item-title{
  89. font-size:18px;
  90. line-height: 40px;
  91. margin-top:10px;
  92. border-bottom:1px solid #ddd;
  93. }
  94. </style>
  95. </head>
  96. <body style="margin:0px;padding:0px;">
  97. '.$str.'
  98. </body>
  99. </html>
  100. ';
  101. return $html;
  102. }
  103. }
  104. ?>