PageRenderTime 46ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/88li/include/function/pay.php

http://phpfor.googlecode.com/
PHP | 601 lines | 524 code | 59 blank | 18 comment | 18 complexity | b8dee6ee7a890aedd0b3149982517836 MD5 | raw file
  1. <?php
  2. /* payment: alipay */
  3. function pay_team_alipay($total_money, $order) {
  4. global $INI; if($total_money<=0||!$order) return null;
  5. //$team = Table::Fetch('team', $order['team_id']);
  6. $order_id = $order['id'];
  7. $pay_id = $order['pay_id'];
  8. $guarantee = strtoupper($INI['alipay']['guarantee'])=='Y';
  9. /* param */
  10. $_input_charset = 'utf-8';
  11. $service = $guarantee ? 'create_partner_trade_by_buyer' : 'create_direct_pay_by_user';
  12. $partner = $INI['alipay']['mid'];
  13. $security_code = $INI['alipay']['sec'];
  14. $seller_email = $INI['alipay']['acc'];
  15. $itbpay = strval($INI['alipay']['itbpay']);
  16. $sign_type = 'MD5';
  17. $out_trade_no = $pay_id;
  18. $return_url = $INI['system']['wwwprefix'] . '/order/alipay/return.php';
  19. $notify_url = $INI['system']['wwwprefix'] . '/order/alipay/notify.php';
  20. $show_url = $INI['system']['wwwprefix'] . "/order/pay.php?id={$order['gen_id']}";
  21. $show_url = obscure_rep($show_url);
  22. //$subject = mb_substr(strip_tags($team['title']),0,128,'UTF-8');
  23. $subject = '??'.$INI['system']['orderpre'].$order['gen_id'].'??';
  24. $orderDetail = payOrderDetail($order);
  25. $body = $orderDetail?$orderDetail:$show_url;
  26. $quantity = $order['quantity'];
  27. $parameter = array(
  28. "service" => $service,
  29. "partner" => $partner,
  30. "return_url" => $return_url,
  31. "notify_url" => $notify_url,
  32. "_input_charset" => $_input_charset,
  33. "subject" => $subject,
  34. "body" => $body,
  35. "out_trade_no" => $out_trade_no,
  36. "total_fee" => $total_money,
  37. "payment_type" => "1",
  38. "show_url" => $show_url,
  39. "seller_email" => $seller_email,
  40. );
  41. if ($itbpay) $parameter['it_b_pay'] = $itbpay;
  42. $alipay = new AlipayService($parameter, $security_code, $sign_type);
  43. $sign = $alipay->Get_Sign();
  44. $reqUrl = $alipay->create_url();
  45. return render('block_pay_alipay', array(
  46. 'order_id' => $order['gen_id'],
  47. 'reqUrl' => $reqUrl,
  48. ));
  49. }
  50. function pay_charge_alipay($total_money, $charge_id, $title) {
  51. global $INI; if($total_money<=0||!$title) return null;
  52. $order_id = 'charge';
  53. /* param */
  54. $_input_charset = 'utf-8';
  55. $service = 'create_direct_pay_by_user';
  56. $partner = $INI['alipay']['mid'];
  57. $security_code = $INI['alipay']['sec'];
  58. $seller_email = $INI['alipay']['acc'];
  59. $itbpay = strval($INI['alipay']['itbpay']);
  60. $sign_type = 'MD5';
  61. $out_trade_no = $charge_id;
  62. $return_url = $INI['system']['wwwprefix'] . '/order/alipay/return.php';
  63. $notify_url = $INI['system']['wwwprefix'] . '/order/alipay/notify.php';
  64. $show_url = $INI['system']['wwwprefix'] . "/credit/index.php";
  65. $subject = $title;
  66. $body = $show_url;
  67. $quantity = 1;
  68. $parameter = array(
  69. "service" => $service,
  70. "partner" => $partner,
  71. "return_url" => $return_url,
  72. "notify_url" => $notify_url,
  73. "_input_charset" => $_input_charset,
  74. "subject" => $subject,
  75. "body" => $body,
  76. "out_trade_no" => $out_trade_no,
  77. "total_fee" => $total_money,
  78. "payment_type" => "1",
  79. "show_url" => $show_url,
  80. "seller_email" => $seller_email,
  81. );
  82. if ($itbpay) $parameter['it_b_pay'] = $itbpay;
  83. $alipay = new AlipayService($parameter, $security_code, $sign_type);
  84. $sign = $alipay->Get_Sign();
  85. $reqUrl = $alipay->create_url();
  86. return render('block_pay_alipay', array(
  87. 'order_id' => $order_id,
  88. 'reqUrl' => $reqUrl,
  89. ));
  90. }
  91. /* payment: tenpay */
  92. function pay_team_tenpay($total_money, $order) {
  93. global $INI; if($total_money<=0||!$order) return null;
  94. //$team = Table::Fetch('team', $order['team_id']);
  95. $order_id = $order['id'];
  96. $v_mid = $INI['tenpay']['mid'];
  97. $v_url = $INI['system']['wwwprefix']. '/order/tenpay/return.php';
  98. $key = $INI['tenpay']['sec'];
  99. $v_oid = $order['pay_id'];
  100. $v_amount = intval($total_money * 100);
  101. $v_moneytype = $INI['system']['currencyname'];
  102. $text = $v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key;
  103. /* must */
  104. $sp_billno = $v_oid;
  105. $transaction_id = $v_mid. date('Ymd'). date('His') .rand(1000,9999);
  106. $desc = mb_convert_encoding('??'.$INI['system']['orderpre'].$order['gen_id'].'??', 'GBK', 'UTF-8');
  107. /* end */
  108. $reqHandler = new PayRequestHandler();
  109. $reqHandler->init();
  110. $reqHandler->setKey($key);
  111. $reqHandler->setParameter("bargainor_id", $v_mid);
  112. $reqHandler->setParameter("cs", "GBK");
  113. $reqHandler->setParameter("sp_billno", $sp_billno);
  114. $reqHandler->setParameter("transaction_id", $transaction_id);
  115. $reqHandler->setParameter("total_fee", $v_amount);
  116. $reqHandler->setParameter("return_url", $v_url);
  117. $reqHandler->setParameter("desc", $desc);
  118. $reqHandler->setParameter("spbill_create_ip", Utility::GetRemoteIp());
  119. $reqUrl = $reqHandler->getRequestURL();
  120. if($_POST['paytype']!='tenpay') {
  121. $reqHandler->setParameter('bank_type', pay_getqqbank($_POST['paytype']));
  122. $reqUrl = $reqHandler->getRequestURL();
  123. redirect( $reqUrl );
  124. }
  125. return render('block_pay_tenpay', array(
  126. 'order_id' => $order['gen_id'],
  127. 'reqUrl' => $reqUrl,
  128. ));
  129. }
  130. function pay_charge_tenpay($total_money, $charge_id, $title) {
  131. global $INI; if($total_money<=0||!$title) return null;
  132. $order_id = 'charge';
  133. $v_mid = $INI['tenpay']['mid'];
  134. $v_url = $INI['system']['wwwprefix']. '/order/tenpay/return.php';
  135. $key = $INI['tenpay']['sec'];
  136. $v_oid = $charge_id;
  137. $v_amount = intval($total_money * 100);
  138. $v_moneytype = $INI['system']['currencyname'];
  139. $text = $v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key;
  140. /* must */
  141. $sp_billno = $v_oid;
  142. $transaction_id = $v_mid. date('Ymd'). date('His') .rand(1000,9999);
  143. $desc = mb_convert_encoding($title, 'GBK', 'UTF-8');
  144. /* end */
  145. $reqHandler = new PayRequestHandler();
  146. $reqHandler->init();
  147. $reqHandler->setKey($key);
  148. $reqHandler->setParameter("bargainor_id", $v_mid);
  149. $reqHandler->setParameter("cs", "GBK");
  150. $reqHandler->setParameter("sp_billno", $sp_billno);
  151. $reqHandler->setParameter("transaction_id", $transaction_id);
  152. $reqHandler->setParameter("total_fee", $v_amount);
  153. $reqHandler->setParameter("return_url", $v_url);
  154. $reqHandler->setParameter("desc", $desc);
  155. $reqHandler->setParameter("spbill_create_ip", Utility::GetRemoteIp());
  156. $reqUrl = $reqHandler->getRequestURL();
  157. if($_POST['paytype']!='tenpay') {
  158. $reqHandler->setParameter('bank_type', pay_getqqbank($_POST['paytype']));
  159. $reqUrl = $reqHandler->getRequestURL();
  160. redirect( $reqUrl );
  161. }
  162. return render('block_pay_tenpay', array(
  163. 'order_id' => $order_id,
  164. 'reqUrl' => $reqUrl,
  165. ));
  166. }
  167. /* payment: chinabank */
  168. function pay_team_chinabank($total_money, $order) {
  169. global $INI; if($total_money<=0||!$order) return null;
  170. $team = Table::Fetch('team', $order['team_id']);
  171. $order_id = $order['id'];
  172. $v_mid = $INI['chinabank']['mid'];
  173. $v_url = $INI['system']['wwwprefix']. '/order/chinabank/return.php';
  174. $key = $INI['chinabank']['sec'];
  175. $v_oid = $order['pay_id'];
  176. $v_amount = $total_money;
  177. $v_moneytype = $INI['system']['currencyname'];
  178. $text = $v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key;
  179. $v_md5info = strtoupper(md5($text));
  180. return render('block_pay_chinabank', array(
  181. 'order_id' => $order_id,
  182. 'v_mid' => $v_mid,
  183. 'v_url' => $v_url,
  184. 'key' => $key,
  185. 'v_oid' => $v_oid,
  186. 'v_moneytype' => $v_moneytype,
  187. 'v_md5info' => $v_md5info,
  188. ));
  189. }
  190. function pay_charge_chinabank($total_money, $charge_id, $title) {
  191. global $INI; if($total_money<=0||!$title) return null;
  192. $order_id = 'charge';
  193. $v_mid = $INI['chinabank']['mid'];
  194. $v_url = $INI['system']['wwwprefix']. '/order/chinabank/return.php';
  195. $key = $INI['chinabank']['sec'];
  196. $v_oid = $charge_id;
  197. $v_amount = $total_money;
  198. $v_moneytype = $INI['system']['currencyname'];
  199. $text = $v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key;
  200. $v_md5info = strtoupper(md5($text));
  201. return render('block_pay_chinabank', array(
  202. 'order_id' => $order_id,
  203. 'v_mid' => $v_mid,
  204. 'v_url' => $v_url,
  205. 'key' => $key,
  206. 'v_oid' => $v_oid,
  207. 'v_moneytype' => $v_moneytype,
  208. 'v_md5info' => $v_md5info,
  209. ));
  210. }
  211. /* payment: bill */
  212. function pay_team_bill($total_money, $order) {
  213. global $INI, $login_user; if($total_money<=0||!$order) return null;
  214. $team = Table::Fetch('team', $order['team_id']);
  215. $order_id = $order['id'];
  216. $merchantAcctId = $INI['bill']['mid'];
  217. $key = $INI['bill']['sec'];
  218. $inputCharset = "1";
  219. $pageUrl = $INI['system']['wwwprefix'] . '/order/bill/return.php';
  220. $bgUrl = $INI['system']['wwwprefix'] . '/order/bill/return.php';
  221. $version = "v2.0";
  222. $language = "1";
  223. $signType = "1";
  224. $payerName = $login_user['username'];
  225. $payerContactType = "1";
  226. $payerContact = $login_user['email'];
  227. $orderId = $order['pay_id'];
  228. $orderAmount = intval($total_money * 100);
  229. $orderTime = date('YmdHis');
  230. //$productName = mb_substr(strip_tags($team['title']),0,255,'UTF-8');
  231. $productName = '??'.$INI['system']['orderpre'].$order['gen_id'].'??';
  232. $productNum="1";
  233. $productId="";
  234. $productDesc="";
  235. $ext1="";
  236. $ext2="";
  237. $payType="00";
  238. $bankId="";
  239. $redoFlag="0";
  240. $pid="";
  241. $sv = billAppendParam($sv,"inputCharset",$inputCharset);
  242. $sv = billAppendParam($sv,"pageUrl",$pageUrl);
  243. $sv = billAppendParam($sv,"bgUrl",$bgUrl);
  244. $sv = billAppendParam($sv,"version",$version);
  245. $sv = billAppendParam($sv,"language",$language);
  246. $sv = billAppendParam($sv,"signType",$signType);
  247. $sv = billAppendParam($sv,"merchantAcctId",$merchantAcctId);
  248. $sv = billAppendParam($sv,"payerName",$payerName);
  249. $sv = billAppendParam($sv,"payerContactType",$payerContactType);
  250. $sv = billAppendParam($sv,"payerContact",$payerContact);
  251. $sv = billAppendParam($sv,"orderId",$orderId);
  252. $sv = billAppendParam($sv,"orderAmount",$orderAmount);
  253. $sv = billAppendParam($sv,"orderTime",$orderTime);
  254. $sv = billAppendParam($sv,"productName",$productName);
  255. $sv = billAppendParam($sv,"productNum",$productNum);
  256. $sv = billAppendParam($sv,"productId",$productId);
  257. $sv = billAppendParam($sv,"productDesc",$productDesc);
  258. $sv = billAppendParam($sv,"ext1",$ext1);
  259. $sv = billAppendParam($sv,"ext2",$ext2);
  260. $sv = billAppendParam($sv,"payType",$payType);
  261. $sv = billAppendParam($sv,"bankId",$bankId);
  262. $sv = billAppendParam($sv,"redoFlag",$redoFlag);
  263. $sv = billAppendParam($sv,"pid",$pid);
  264. $sv = billAppendParam($sv,"key",$key);
  265. $signMsg= strtoupper(md5($sv));
  266. return render('block_pay_bill', array(
  267. 'order_id' => $order_id,
  268. 'merchantAcctId' => $merchantAcctId,
  269. 'key' => $key,
  270. 'inputCharset' => $inputCharset,
  271. 'pageUrl' => $pageUrl,
  272. 'bgUrl' => $bgUrl,
  273. 'version' => $version,
  274. 'language' => $language,
  275. 'signType' => $signType,
  276. 'payerName' => $payerName,
  277. 'payerContactType' => $payerContactType,
  278. 'payerContact' => $payerContact,
  279. 'orderId' => $orderId,
  280. 'orderAmount' => $orderAmount,
  281. 'orderTime' => $orderTime,
  282. 'productName' => $productName,
  283. 'productNum' => $productNum,
  284. 'productId' => $productId,
  285. 'productDesc' => $productDesc,
  286. 'ext1' => $ext1,
  287. 'ext2' => $ext2,
  288. 'payType' => $payType,
  289. 'bankId' => $bankId,
  290. 'redoFlag' => $redoFlag,
  291. 'pid' => $pid,
  292. 'signMsg' => $signMsg,
  293. ));
  294. }
  295. function pay_charge_bill($total_money, $charge_id, $title) {
  296. global $INI, $login_user; if($total_money<=0||!$title) return null;
  297. $order_id = 'charge';
  298. $merchantAcctId = $INI['bill']['mid'];
  299. $key = $INI['bill']['sec'];
  300. $inputCharset = "1";
  301. $pageUrl = $INI['system']['wwwprefix'] . '/order/bill/return.php';
  302. $bgUrl = $INI['system']['wwwprefix'] . '/order/bill/return.php';
  303. $version = "v2.0";
  304. $language = "1";
  305. $signType = "1";
  306. $payerName = $login_user['username'];
  307. $payerContactType = "1";
  308. $payerContact = $login_user['email'];
  309. $orderId = $charge_id;
  310. $orderAmount = intval($total_money * 100);
  311. $orderTime = date('YmdHis');
  312. $productName = mb_substr(strip_tags($title),0,255,'UTF-8');
  313. $productNum="1";
  314. $productId="";
  315. $productDesc="";
  316. $ext1="";
  317. $ext2="";
  318. $payType="00";
  319. $bankId="";
  320. $redoFlag="0";
  321. $pid="";
  322. $sv = billAppendParam($sv,"inputCharset",$inputCharset);
  323. $sv = billAppendParam($sv,"pageUrl",$pageUrl);
  324. $sv = billAppendParam($sv,"bgUrl",$bgUrl);
  325. $sv = billAppendParam($sv,"version",$version);
  326. $sv = billAppendParam($sv,"language",$language);
  327. $sv = billAppendParam($sv,"signType",$signType);
  328. $sv = billAppendParam($sv,"merchantAcctId",$merchantAcctId);
  329. $sv = billAppendParam($sv,"payerName",$payerName);
  330. $sv = billAppendParam($sv,"payerContactType",$payerContactType);
  331. $sv = billAppendParam($sv,"payerContact",$payerContact);
  332. $sv = billAppendParam($sv,"orderId",$orderId);
  333. $sv = billAppendParam($sv,"orderAmount",$orderAmount);
  334. $sv = billAppendParam($sv,"orderTime",$orderTime);
  335. $sv = billAppendParam($sv,"productName",$productName);
  336. $sv = billAppendParam($sv,"productNum",$productNum);
  337. $sv = billAppendParam($sv,"productId",$productId);
  338. $sv = billAppendParam($sv,"productDesc",$productDesc);
  339. $sv = billAppendParam($sv,"ext1",$ext1);
  340. $sv = billAppendParam($sv,"ext2",$ext2);
  341. $sv = billAppendParam($sv,"payType",$payType);
  342. $sv = billAppendParam($sv,"bankId",$bankId);
  343. $sv = billAppendParam($sv,"redoFlag",$redoFlag);
  344. $sv = billAppendParam($sv,"pid",$pid);
  345. $sv = billAppendParam($sv,"key",$key);
  346. $signMsg= strtoupper(md5($sv));
  347. return render('block_pay_bill', array(
  348. 'order_id' => $order_id,
  349. 'merchantAcctId' => $merchantAcctId,
  350. 'key' => $key,
  351. 'inputCharset' => $inputCharset,
  352. 'pageUrl' => $pageUrl,
  353. 'bgUrl' => $bgUrl,
  354. 'version' => $version,
  355. 'language' => $language,
  356. 'signType' => $signType,
  357. 'payerName' => $payerName,
  358. 'payerContactType' => $payerContactType,
  359. 'payerContact' => $payerContact,
  360. 'orderId' => $orderId,
  361. 'orderAmount' => $orderAmount,
  362. 'orderTime' => $orderTime,
  363. 'productName' => $productName,
  364. 'productNum' => $productNum,
  365. 'productId' => $productId,
  366. 'productDesc' => $productDesc,
  367. 'ext1' => $ext1,
  368. 'ext2' => $ext2,
  369. 'payType' => $payType,
  370. 'bankId' => $bankId,
  371. 'redoFlag' => $redoFlag,
  372. 'pid' => $pid,
  373. 'signMsg' => $signMsg,
  374. ));
  375. }
  376. /* payment: paypal */
  377. function pay_team_paypal($total_money, $order) {
  378. global $INI, $login_user; if($total_money<=0||!$order) return null;
  379. $team = Table::Fetch('team', $order['team_id']);
  380. $order_id = $order['id'];
  381. $cmd = '_xclick';
  382. $business = $INI['paypal']['mid'];
  383. $location = $INI['paypal']['loc'];
  384. $currency_code = $INI['system']['currencyname'];
  385. $item_number = $order['pay_id'];
  386. $item_name = $team['title'];
  387. $amount = $total_money;
  388. $quantity = 1;
  389. $post_url = "https://www.paypal.com/row/cgi-bin/webscr";
  390. $return_url = $INI['system']['wwwprefix'] . '/order/index.php';
  391. $notify_url = $INI['system']['wwwprefix'] . '/order/paypal/ipn.php';
  392. $cancel_url = $INI['system']['wwwprefix'] . "/order/index.php";
  393. return render('block_pay_paypal', array(
  394. 'order_id' => $order_id,
  395. 'cmd' => $cmd,
  396. 'business' => $business,
  397. 'location' => $location,
  398. 'currency_code' => $currency_code,
  399. 'item_number' => $item_number,
  400. 'item_name' => $item_name,
  401. 'amount' => $amount,
  402. 'quantity' => $quantity,
  403. 'post_url' => $post_url,
  404. 'return_url' => $return_url,
  405. 'notify_url' => $notify_url,
  406. 'cancel_url' => $cancel_url,
  407. 'login_user' => $login_user,
  408. ));
  409. }
  410. function pay_charge_paypal($total_money, $charge_id, $title) {
  411. global $INI, $login_user; if($total_money<=0||!$title) return null;
  412. $order_id = 'charge';
  413. $cmd = '_xclick';
  414. $business = $INI['paypal']['mid'];
  415. $location = $INI['paypal']['loc'];
  416. $currency_code = $INI['system']['currencyname'];
  417. $item_number = $charge_id;
  418. $item_name = $title;
  419. $amount = $total_money;
  420. $quantity = 1;
  421. $post_url = "https://www.paypal.com/row/cgi-bin/webscr";
  422. $return_url = $INI['system']['wwwprefix'] . '/order/index.php';
  423. $notify_url = $INI['system']['wwwprefix'] . '/order/paypal/ipn.php';
  424. $cancel_url = $INI['system']['wwwprefix'] . "/order/index.php";
  425. return render('block_pay_paypal', array(
  426. 'order_id' => $order_id,
  427. 'cmd' => $cmd,
  428. 'business' => $business,
  429. 'location' => $location,
  430. 'currency_code' => $currency_code,
  431. 'item_number' => $item_number,
  432. 'item_name' => $item_name,
  433. 'amount' => $amount,
  434. 'quantity' => $quantity,
  435. 'post_url' => $post_url,
  436. 'return_url' => $return_url,
  437. 'notify_url' => $notify_url,
  438. 'cancel_url' => $cancel_url,
  439. 'login_user' => $login_user,
  440. ));
  441. }
  442. /* payment: yeepay */
  443. function pay_team_yeepay($total_money, $order) {
  444. global $INI, $login_user; if($total_money<=0||!$order) return null;
  445. $team = Table::Fetch('team', $order['team_id']);
  446. require_once( WWW_ROOT . '/order/yeepay/yeepayCommon.php');
  447. $order_id = $order['id'];
  448. $pay_id = $order['pay_id'];
  449. $p0_Cmd = 'Buy';
  450. $p1_MerId = $INI['yeepay']['mid'];
  451. $p2_Order = $pay_id;
  452. $p3_Amt = $total_money;
  453. $p4_Cur = "CNY";
  454. $p5_Pid = "ZuituGo-{$_SERVER['HTTP_HOST']}({$team['id']})";
  455. $p6_Pcat = '';
  456. $p5_Pdesc = "ZuituGo-{$_SERVER['HTTP_HOST']}({$team['id']})";
  457. $p8_Url = $INI['system']['wwwprefix'] . '/order/yeepay/callback.php';
  458. $p9_SAF = '0';
  459. $pa_MP = '';
  460. $pd_FrpId = strval($_REQUEST['pd_FrpId']);
  461. $pr_NeedResponse = '1';
  462. $merchantKey = $INI['yeepay']['sec'];
  463. $hmac = getReqHmacString($p1_MerId,$p2_Order,$p3_Amt,$p4_Cur,$p5_Pid,$p6_Pcat,$p7_Pdesc,$p8_Url,$pa_MP,$pd_FrpId,$pr_NeedResponse,$merchantKey);
  464. return render('block_pay_yeepay', array(
  465. 'order_id' => $order_id,
  466. 'p0_Cmd' => $p0_Cmd,
  467. 'p1_MerId' => $p1_MerId,
  468. 'p2_Order' => $p2_Order,
  469. 'p3_Amt' => $p3_Amt,
  470. 'p4_Cur' => $p4_Cur,
  471. 'p5_Pid' => $p5_Pid,
  472. 'p6_Pcat' => $p6_Pcat,
  473. 'p7_Pdesc' => $p7_Pdesc,
  474. 'p8_Url' => $p8_Url,
  475. 'p9_SAF' => $p9_SAF,
  476. 'pa_MP' => $pa_MP,
  477. 'pd_FrpId' => $pd_FrpId,
  478. 'pr_NeedResponse' => $pr_NeedResponse,
  479. 'merchantKey' => $merchantKey,
  480. 'hmac' => $hmac,
  481. ));
  482. }
  483. function pay_charge_yeepay($total_money, $charge_id, $title) {
  484. global $INI, $login_user; if($total_money<=0||!$title) return null;
  485. require_once( WWW_ROOT . '/order/yeepay/yeepayCommon.php');
  486. $order_id = 'charge';
  487. $p0_Cmd = 'Buy';
  488. $p1_MerId = $INI['yeepay']['mid'];
  489. $p2_Order = $charge_id;
  490. $p3_Amt = $total_money;
  491. $p4_Cur = "CNY";
  492. $p5_Pid = "ZuituGo-Charge({$total_money})";
  493. $p6_Pcat = '';
  494. $p5_Pdesc = "ZuituGo-Charge({$total_money})";
  495. $p8_Url = $INI['system']['wwwprefix'] . '/order/yeepay/callback.php';
  496. $p9_SAF = '0';
  497. $pa_MP = '';
  498. $pd_FrpId = strval($_REQUEST['pd_FrpId']);
  499. $pr_NeedResponse = '1';
  500. $merchantKey = $INI['yeepay']['sec'];
  501. $hmac = getReqHmacString($p1_MerId,$p2_Order,$p3_Amt,$p4_Cur,$p5_Pid,$p6_Pcat,$p7_Pdesc,$p8_Url,$pa_MP,$pd_FrpId,$pr_NeedResponse,$merchantKey);
  502. return render('block_pay_yeepay', array(
  503. 'order_id' => $order_id,
  504. 'p0_Cmd' => $p0_Cmd,
  505. 'p1_MerId' => $p1_MerId,
  506. 'p2_Order' => $p2_Order,
  507. 'p3_Amt' => $p3_Amt,
  508. 'p4_Cur' => $p4_Cur,
  509. 'p5_Pid' => $p5_Pid,
  510. 'p6_Pcat' => $p6_Pcat,
  511. 'p7_Pdesc' => $p7_Pdesc,
  512. 'p8_Url' => $p8_Url,
  513. 'p9_SAF' => $p9_SAF,
  514. 'pa_MP' => $pa_MP,
  515. 'pd_FrpId' => $pd_FrpId,
  516. 'pr_NeedResponse' => $pr_NeedResponse,
  517. 'merchantKey' => $merchantKey,
  518. 'hmac' => $hmac,
  519. ));
  520. }
  521. /* pay util function */
  522. function billAppendParam($s, $k, $v){
  523. $joinstring = $s ? '&' : null;
  524. return $v=='' ? $s : "{$s}{$joinstring}{$k}={$v}";
  525. }
  526. /* get orderitem detail*/
  527. function payOrderDetail($order){
  528. $checkItem = ZOrder::checkOrderItem($order['gen_id']);
  529. if($checkItem){
  530. $orderitems = $checkItem['orderitems'];
  531. $teams = $checkItem['teams'];
  532. $i = 1;
  533. foreach($orderitems as $item){
  534. $team_id = $item['team_id'];
  535. if($item['props']) $teams[$team_id]['product'] .= '('.$item['props'].')';
  536. $pdt_desc .= $i.'?'.$teams[$team_id]['product'].' x '.$item['quantity'].', ';
  537. $i++;
  538. }
  539. return $pdt_desc;
  540. }
  541. return false;
  542. }