alipay_service.class.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /* *
  3. * 类名:AlipayService
  4. * 功能:兑换宝各接口构造类
  5. * 详细:构造兑换宝各接口请求参数
  6. * 版本:3.2
  7. * 日期:2011-03-25
  8. * 说明:
  9. * 以下代码只是为了方便用户测试而提供的样例代码,用户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
  10. * 该代码仅供学习和研究兑换宝接口使用,只是提供一个参考。
  11. */
  12. require_once("alipay_submit.class.php");
  13. class AlipayService {
  14. var $aliapy_config;
  15. /**
  16. *兑换宝网关地址(新)
  17. */
  18. var $alipay_gateway_new = 'https://mapi.alipay.com/gateway.do?';
  19. function __construct($aliapy_config){
  20. $this->aliapy_config = $aliapy_config;
  21. }
  22. function AlipayService($aliapy_config) {
  23. $this->__construct($aliapy_config);
  24. }
  25. /**
  26. * 构造即时到帐接口
  27. * @param $para_temp 请求参数数组
  28. * @return 表单提交HTML信息
  29. */
  30. function create_direct_pay_by_user($para_temp) {
  31. //设置按钮名称
  32. $button_name = "确认";
  33. //生成表单提交HTML文本信息
  34. $alipaySubmit = new AlipaySubmit();
  35. $html_text = $alipaySubmit->buildForm($para_temp, $this->alipay_gateway_new, "get", $button_name, $this->aliapy_config);
  36. return $html_text;
  37. }
  38. /**
  39. * 用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数
  40. * 注意:该功能PHP5环境及以上支持,因此必须服务器、本地电脑中装有支持DOMDocument、SSL的PHP配置环境。建议本地调试时使用PHP开发软件
  41. * return 时间戳字符串
  42. */
  43. function query_timestamp() {
  44. $url = $this->alipay_gateway_new."service=query_timestamp&partner=".trim($this->aliapy_config['partner']);
  45. $encrypt_key = "";
  46. $doc = new DOMDocument();
  47. $doc->load($url);
  48. $itemEncrypt_key = $doc->getElementsByTagName( "encrypt_key" );
  49. $encrypt_key = $itemEncrypt_key->item(0)->nodeValue;
  50. return $encrypt_key;
  51. }
  52. /**
  53. * 构造兑换宝其他接口
  54. * @param $para_temp 请求参数数组
  55. * @return 表单提交HTML信息/兑换宝返回XML处理结果
  56. */
  57. function alipay_interface($para_temp) {
  58. //获取远程数据/生成表单提交HTML文本信息
  59. $alipaySubmit = new AlipaySubmit();
  60. $html_text = "";
  61. //请根据不同的接口特性,选择一种请求方式
  62. //1.构造表单提交HTML数据:($method可赋值为get或post)
  63. //$alipaySubmit->buildForm($para_temp, $this->alipay_gateway_new, "get", $button_name, $this->aliapy_config);
  64. //2.构造模拟远程HTTP的POST请求,获取兑换宝的返回XML处理结果:
  65. //注意:若要使用远程HTTP获取数据,必须开通SSL服务,该服务请找到php.ini配置文件设置开启,建议与您的网络管理员联系解决。
  66. //$alipaySubmit->sendPostInfo($para_temp, $this->alipay_gateway_new, $this->aliapy_config);
  67. return $html_text;
  68. }
  69. }
  70. ?>