alipay.php 2.3 KB

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