Esempio n. 1
0
$dopaydata['addtime'] = time();
$this->mysql->insert(Mysite::$app->config['tablepre'] . 'onlinelog', $dopaydata);
//id type upid  cost  status addtime
$newid = $this->mysql->insertid();
$totalcost = $dopaydata['cost'] * 100;
$subject = $dopaydata['type'] == 'order' ? '支付订单' : '在线充值';
require_once $paydir . "/classes/PayRequest.class.php";
require_once $paydir . "/tenpay_config.php";
$curDateTime = date("YmdHis");
$randNum = rand(1000, 9999);
/* 商家的定单号 */
$out_trade_no = $curDateTime . $randNum;
/* 创建支付请求对象 */
$reqHandler = new PayRequest($key);
// 设置在沙箱中运行,正式环境请设置为false
$reqHandler->setInSandBox(true);
//----------------------------------------
//以下业务参数名称参考开放平台sdk文档-PHP
//----------------------------------------
// 设置财付通appid: 财付通app注册时,由财付通分配
$reqHandler->setAppid($appid);
// 设置商户系统订单号:财付通APP系统内部的订单号,32个字符内、可包含字母,确保在财付通APP系统唯一
$reqHandler->setParameter("out_trade_no", $newid);
// 设置订单总金额,单位为分
$reqHandler->setParameter("total_fee", $totalcost);
// 设置通知url:接收财付通后台通知的URL,用户在财付通完成支付后,财付通会回调此URL,向财付通APP反馈支付结果。
// 此URL可能会被多次回调,请正确处理,避免业务逻辑被多次触发。需给绝对路径,例如:http://wap.isv.com/notify.asp
$reqHandler->setParameter("notify_url", $notify_url);
// 设置返回url:用户完成支付后跳转的URL,财付通APP应在此页面上给出提示信息,引导用户完成支付后的操作。
// 财付通APP不应在此页面内做发货等业务操作,避免用户反复刷新页面导致多次触发业务逻辑造成不必要的损失。
// 需给绝对路径,例如:http://wap.isv.com/after_pay.asp,通过该路径直接将支付结果以Get的方式返回