aopay.php 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2018/3/22
  6. * Time: 下午7:23
  7. */
  8. namespace Pay;
  9. define(ALIPAY_PATHEX, BASE_DATA_PATH . '/api/aop');
  10. require_once(ALIPAY_PATHEX . '/AopClient.php');
  11. require_once(ALIPAY_PATHEX . '/AopEncrypt.php');
  12. require_once(ALIPAY_PATHEX . '/request/AlipayTradeAppPayRequest.php');
  13. class aopay implements IPay
  14. {
  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. $aop = new \aop\AopClient;
  19. $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
  20. $aop->appId = "2018030102293154";
  21. $aop->rsaPrivateKey = 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDiX4oFNqfl2eQZELFRHIPLe+JoAUUx9I2SzjkL090aMv4TuuqelSE5TCqLRVIPHyPBB3kUhTgVbkCM1pJ3dcr1+nXQ88mFXqRmcAcZtDeATK4T89v9e3ghQXozsOnOEY+/8FV7tF2WDanG4cE89UvXN9TkjzzLFgJ32to5Yyydwl+/pIa2Jk6BWLGwiY73KBod1Gkql5vJHOfM7/kJ8ROWZnzmNfo0AbXK+7jqZuQeFwIv5wTJFm2fF2CjV09+9QWdpaPJwWhvUPL3cJQWh9QAefHOfGav0GvemgZvWD0mx37mJgqXTYOxnhCGPYHmhSMWULs5q365h2rrlICxZrP5AgMBAAECggEAasjMr8bnjrqpKdXA/1UnKp7m307yGC2XdxAGwviPDSPOzPnYYTRR9thiHU529iEnWZAv4qkxGpLmqkkx0F5lfoFGgGnvvxU1Egl4n/xuTfxeBZV8SeerdGyRu76RnB6Wo+E4QeGEYBtT4jhuUlYYD48Lw0F6WQap5WX8mSOaUVQTfZoLGwwv1gtMvOdUd9iw+VRy6UKjLaqKGOcC7Cy27Cpzjb5K6+BnT8E3Gs0yRES2eL9mL9J7SWXe+XCgrCOig9wUBQuwXSWlogBzW/ZKeh7nqrQpsfEqmIV0lgPqsXk5/2bpyqepuOeZ0aQIx0lGcBmOxQViXyLFFESdbO2GAQKBgQDyCLtYc/iq/ekWh7Q7+ig6OOTzm7VqFE8Nif7ohpVr9gTyhoydz23GDpJ+YYRaeDCngRpbvZ/fe6EVDEpm0wsQ1f6nj+CDOxcJr9L+G/+y1tDE51HLSvsWMRw3I32hzu3qBTAFpXq4T1p/D1maIK2irkXC2zQv2pdKAwS2479EOQKBgQDvb3feexbvDpW7iR8cbMFlzWw7WuJSscA3U022EaqDAonFVMYMW5trtMFYcdhmxhy4OhMlk9NGK92i3eVND62VfS2sSFKUINt+6GtNUdr5miKn8z/eZIlQEOB3SM1tHd5fSedpEiwwxvSWqaku1fKMgoIbUT2JxqQb+yePj2htwQKBgDRXmRR2+BcalDbwIBU8c0isFy9rxB7tx27ZIgxtVpEjgkxktrJGMqo7aoj0U+gwx+zhqa6fYpy1Is/neYulJmZ8sPbR0a7vr3rD0HBt461scXezwuehDo3tDvoJrdi5ZJBQkOMXt2N2nc6OpkUDvilJYQLT3wReVIuH/ZQDytBZAoGAHJwuL5h3shMFE0acQBJCvb5hG2qNtqHkvPeoRoQv4r2v5rNtgtaDaMhNfhsEZ6tujRjrZscWLMFbF3X6S03/SOiPR5HQxEB02eI9yBxq1P50+6qWTCWpPrb1i2tYmJxEERDMpQJ141IysboOLDmGZQHHOCpp9weUXn+RR5c0PEECgYBBu2QbAe7xwcfWMfdR2HksM+GW+BrWqxXzVLF2b/7wE22+2keqFqGTz4lxzAUxiWhgArnAVkaCUPMVg5bOneAWZBx7LkKaYZcxvWpZmxj3EYwVL0qz39ZAHfhlPSJjTqIu54C3gTfoiNcAwlDXCmhALS5ma42Y+ooRSJlgSejdRA==';
  22. $aop->format = "json";
  23. $aop->charset = "UTF-8";
  24. $aop->signType = "RSA2";
  25. $aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3r5VhP+/UKTRihLbmZlCNDFEa/dR/7Ldv327zTwrFgLC6TXRNGvSd8NBe2jJ+CjPf0f9tAgVL/ZdhqwLqA16n2Ee/dow4hYQ5K8AUjSO8YSFFuPwGO5qqAWQHIgVfj3aR7PslVdOVxD/LPrRM8XEuBHtUkBUcPQVb0bkLAVcEpJyQIe2n0tUr7+32PaYqtA/XNRk6nGRLDit81xAARmh9Ulk34kP4NjCx8Vhd/BmSAnSlCvQQrdoT9MN2MQOOoxVK77jQDakG9LbVaaauFbd6mV0xNPRYv8uhsQsYq/DC54nOfAUsLGD0dy3lajDgWj0l9qGzQ/6olhkviPh7xv+7QIDAQAB';
  26. $request = new \aop\AlipayTradeAppPayRequest();
  27. $request->setNotifyUrl(self::ali_notifyurl);
  28. $bizcontent = $this->getParam($pay_sn, $fee, $order_sn, $subject);
  29. $request->setBizContent(json_encode($bizcontent));
  30. $response = $aop->sdkExecute($request);
  31. return ["data" => $response];
  32. }
  33. private function getParam($pay_sn, $fee, $order_sn, $subject)
  34. {
  35. $ret['out_trade_no'] = $pay_sn; // 商户网站唯一订单号
  36. $ret['subject'] = $subject; // 商品名称
  37. $ret['body'] = base64_encode("order_sn={$order_sn}"); // 商品详情
  38. $total_fee = $fee / 100;
  39. $ret['total_amount'] = "{$total_fee}"; // 商品金额
  40. $ret['timeout_express'] = '30m'; // 设置未付款交易的超时时间 30min
  41. $ret['product_code'] = 'QUICK_MSECURITY_PAY'; // 固定的
  42. return $ret;
  43. }
  44. public function on_notify($post)
  45. {
  46. }
  47. public function verify($input)
  48. {
  49. $aop = new \aop\AopClient;
  50. $aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3r5VhP+/UKTRihLbmZlCNDFEa/dR/7Ldv327zTwrFgLC6TXRNGvSd8NBe2jJ+CjPf0f9tAgVL/ZdhqwLqA16n2Ee/dow4hYQ5K8AUjSO8YSFFuPwGO5qqAWQHIgVfj3aR7PslVdOVxD/LPrRM8XEuBHtUkBUcPQVb0bkLAVcEpJyQIe2n0tUr7+32PaYqtA/XNRk6nGRLDit81xAARmh9Ulk34kP4NjCx8Vhd/BmSAnSlCvQQrdoT9MN2MQOOoxVK77jQDakG9LbVaaauFbd6mV0xNPRYv8uhsQsYq/DC54nOfAUsLGD0dy3lajDgWj0l9qGzQ/6olhkviPh7xv+7QIDAQAB';
  51. return $aop->rsaCheckV1($input,null,'RSA2');
  52. }
  53. }