alipay.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/9/21
  6. * Time: 下午7:54
  7. */
  8. namespace Pay;
  9. define(ALIPAY_PATH, BASE_DATA_PATH . '/api/alipay');
  10. require_once (ALIPAY_PATH . '/lib/alipay_rsa.function.php');
  11. require_once (ALIPAY_PATH . '/lib/alipay_submit.class.php');
  12. class alipay implements IPay
  13. {
  14. const pri_key_path = BASE_DATA_PATH.'/api/alipay/key/lrlz_private_key.pem';
  15. const ali_notifyurl = BASE_SITE_URL . '/mobile/alipay_notify_url.php';
  16. public function gen_pay($pay_sn, $fee,$order_sn,$subject)
  17. {
  18. $param = $this->getParam($pay_sn, $fee, $order_sn, $subject);
  19. $para_filter = paraFilter($param);
  20. $para_sort = argSort($para_filter);
  21. $prestr = createLinkstring($para_sort);
  22. $sign = rsaSign($prestr,self::pri_key_path);
  23. $para_sort['sign'] = $sign;
  24. $para_sort['sign_type'] = "RSA";
  25. $req_param = createLinkstringUrlencode($para_sort);
  26. return array("data" => $req_param);
  27. }
  28. /**
  29. * @param $pay_sn
  30. * @param $fee
  31. * @param $order_sn
  32. * @param $subject
  33. * @param $ret
  34. */
  35. private function getParam($pay_sn, $fee, $order_sn, $subject)
  36. {
  37. $ret['partner'] = '2088121219613123'; // 合作者身份ID
  38. $ret['seller_id'] = 'napheir.ao@lrlz.com'; // 签约卖家支付宝账号
  39. $ret['out_trade_no'] = $pay_sn; // 商户网站唯一订单号
  40. $ret['subject'] = $subject; // 商品名称
  41. $ret['body'] = "order_sn={$order_sn}"; // 商品详情
  42. $total_fee = $fee / 100;
  43. $ret['total_fee'] = "{$total_fee}";// 商品金额
  44. $ret['notify_url'] = self::ali_notifyurl; // 服务器异步通知页面路径
  45. $ret['service'] = 'mobile.securitypay.pay'; // 服务器接口名称,固定值
  46. $ret['payment_type'] = '1'; // 支付类型,固定值
  47. $ret['_input_charset'] = 'utf-8'; // 参数编码,固定值
  48. $ret['it_b_pay'] = '30m'; // 设置未付款交易的超时时间 30min
  49. $ret['return_url'] = 'http://'; // 支付宝完成请求后,当前页面跳转到商户指定页面的路径,可空
  50. return $ret;
  51. }
  52. public function on_notify($post)
  53. {
  54. }
  55. }