alipayapi.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>支付宝即时到账交易接口接口</title>
  6. </head>
  7. <?php
  8. /* *
  9. * 功能:即时到账交易接口接入页
  10. * 版本:3.3
  11. * 修改日期:2012-07-23
  12. * 说明:
  13. * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
  14. * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
  15. *************************注意*************************
  16. * 如果您在接口集成过程中遇到问题,可以按照下面的途径来解决
  17. * 1、商户服务中心(https://b.alipay.com/support/helperApply.htm?action=consultationApply),提交申请集成协助,我们会有专业的技术工程师主动联系您协助解决
  18. * 2、商户帮助中心(http://help.alipay.com/support/232511-16307/0-16307.htm?sh=Y&info_type=9)
  19. * 3、支付宝论坛(http://club.alipay.com/read-htm-tid-8681712.html)
  20. * 如果不想使用扩展功能请把扩展功能参数赋空值。
  21. */
  22. require_once("alipay.config.php");
  23. require_once("lib/alipay_submit.class.php");
  24. /**************************调用授权接口alipay.wap.trade.create.direct获取授权码token**************************/
  25. //返回格式
  26. $format = "xml";
  27. //必填,不需要修改
  28. //返回格式
  29. $v = "2.0";
  30. //必填,不需要修改
  31. //请求号
  32. $req_id = date('Ymdhis');
  33. //必填,须保证每次请求都是唯一
  34. //**req_data详细信息**
  35. //服务器异步通知页面路径
  36. $notify_url = "http://www.xxx.com/WS_WAP_PAYWAP-PHP-UTF-8/notify_url.php";
  37. //需http://格式的完整路径,不允许加?id=123这类自定义参数
  38. //页面跳转同步通知页面路径
  39. $call_back_url = "http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/call_back_url.php";
  40. //需http://格式的完整路径,不允许加?id=123这类自定义参数
  41. //操作中断返回地址
  42. $merchant_url = "http://127.0.0.1:8800/WS_WAP_PAYWAP-PHP-UTF-8/xxxx.php";
  43. //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
  44. //卖家支付宝账户
  45. $seller_email = $_POST['WIDseller_email'];
  46. //必填
  47. //商户订单号
  48. $out_trade_no = $_POST['WIDout_trade_no'];
  49. //商户网站订单系统中唯一订单号,必填
  50. //订单名称
  51. $subject = $_POST['WIDsubject'];
  52. //必填
  53. //付款金额
  54. $total_fee = $_POST['WIDtotal_fee'];
  55. //必填
  56. //请求业务参数详细
  57. $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
  58. //必填
  59. /************************************************************/
  60. //构造要请求的参数数组,无需改动
  61. $para_token = array(
  62. "service" => "alipay.wap.trade.create.direct",
  63. "partner" => trim($alipay_config['partner']),
  64. "sec_id" => trim($alipay_config['sign_type']),
  65. "format" => $format,
  66. "v" => $v,
  67. "req_id" => $req_id,
  68. "req_data" => $req_data,
  69. "_input_charset" => trim(strtolower($alipay_config['input_charset']))
  70. );
  71. //建立请求
  72. $alipaySubmit = new AlipaySubmit($alipay_config);
  73. $html_text = $alipaySubmit->buildRequestHttp($para_token);
  74. //URLDECODE返回的信息
  75. $html_text = urldecode($html_text);
  76. //解析远程模拟提交后返回的信息
  77. $para_html_text = $alipaySubmit->parseResponse($html_text);
  78. //获取request_token
  79. $request_token = $para_html_text['request_token'];
  80. /**************************根据授权码token调用交易接口alipay.wap.auth.authAndExecute**************************/
  81. //业务详细
  82. $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
  83. //必填
  84. //构造要请求的参数数组,无需改动
  85. $parameter = array(
  86. "service" => "alipay.wap.auth.authAndExecute",
  87. "partner" => trim($alipay_config['partner']),
  88. "sec_id" => trim($alipay_config['sign_type']),
  89. "format" => $format,
  90. "v" => $v,
  91. "req_id" => $req_id,
  92. "req_data" => $req_data,
  93. "_input_charset" => trim(strtolower($alipay_config['input_charset']))
  94. );
  95. //建立请求
  96. $alipaySubmit = new AlipaySubmit($alipay_config);
  97. $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
  98. echo $html_text;
  99. ?>
  100. </body>
  101. </html>