/** * 获取代码 */ function GetCode($order) { require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='../member/shops_products.php?oid=" . $order . "'>查看订单</a>"; return $button; }
/** * 提交函数 */ function GetCode($order, $payment) { require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); if ($payment == "member") { $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='/member/operation.php'>会员中心</a>"; } else { $button = "您可以 <a href='/'>返回首页</a> 或去 <a href='{$this->orderurl}?oid=" . $order . "'>查看订单</a>"; } return $button; }
<?php require_once dirname(__FILE__) . "/../../../include/common.inc.php"; require_once DEDEINC . '/shopcar.class.php'; require_once DEDEDATA . '/sys_pay.cache.php'; require_once DEDEINC . '/memberlogin.class.php'; include_once dirname(__FILE__) . '/yeepay_config.php'; $cfg_ml = new MemberLogin(); $cfg_ml->PutLoginInfo($cfg_ml->M_ID); $cart = new MemberShops(); $cart->MakeOrders(); # 只有支付成功时易宝支付才会通知商户. ##支付成功回调有两次,都会通知到在线支付请求参数中的p8_Url上:浏览器重定向;服务器点对点通讯. # 解析返回参数. $return = getCallBackValue($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); # 判断返回签名是否正确(True/False) $bRet = CheckHmac($r0_Cmd, $r1_Code, $r2_TrxId, $r3_Amt, $r4_Cur, $r5_Pid, $r6_Order, $r7_Uid, $r8_MP, $r9_BType, $hmac); # 以上代码和变量不需要修改. # 校验码正确. if ($bRet) { if ($r1_Code == "1") { # 需要比较返回的金额与商家数据库中订单的金额是否相等,只有相等的情况下才认为是交易成功. # 并且需要对返回的处理进行事务控制,进行记录的排它性处理,防止对同一条交易重复发货的情况发生. if ($r9_BType == "1") { success_db($r6_Order); } elseif ($r9_BType == "2") { #如果需要应答机制则必须回写流,以success开头,大小写不敏感. echo "success"; success_db($r6_Order); } elseif ($r9_BType == "3") { success_db($r6_Order);
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function GetCode($order, $payment) { global $cfg_basehost, $cfg_cmspath, $cfg_soft_lang; $charset = $cfg_soft_lang; //对于二级目录的处理 if (!empty($cfg_cmspath)) { $cfg_basehost = $cfg_basehost . '/' . $cfg_cmspath; } $real_method = $payment['alipay_pay_method']; switch ($real_method) { case '0': $service = 'trade_create_by_buyer'; break; case '1': $service = 'create_partner_trade_by_buyer'; break; case '2': $service = 'create_direct_pay_by_user'; break; } $agent = 'C4335994340215837114'; $parameter = array('agent' => $agent, 'service' => $service, 'partner' => $payment['alipay_partner'], '_input_charset' => $charset, 'notify_url' => $cfg_basehost . $this->return_url . "&code=" . $payment['code'], 'return_url' => $cfg_basehost . $this->return_url . "&code=" . $payment['code'], 'subject' => "支付订单号:" . $order['out_trade_no'], 'out_trade_no' => $order['out_trade_no'], 'price' => $order['price'], 'quantity' => 1, 'payment_type' => 1, 'logistics_type' => 'EXPRESS', 'logistics_fee' => 0, 'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE', 'seller_email' => $payment['alipay_account']); ksort($parameter); reset($parameter); $param = ''; $sign = ''; foreach ($parameter as $key => $val) { $param .= "{$key}=" . urlencode($val) . "&"; $sign .= "{$key}={$val}&"; } $param = substr($param, 0, -1); $sign = substr($sign, 0, -1) . $payment['alipay_key']; $button = '<div style="text-align:center"><input type="button" onclick="window.open(\'https://www.alipay.com/cooperate/gateway.do?' . $param . '&sign=' . md5($sign) . '&sign_type=MD5\')" value="立即使用alipay支付宝支付"/></div>'; /* 清空购物车 */ require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); return $button; }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function GetCode($order, $payment) { global $cfg_basehost, $cfg_cmspath; //对于二级目录的处理 if (!empty($cfg_cmspath)) { $cfg_basehost = $cfg_basehost . '/' . $cfg_cmspath; } # 商家设置用户购买商品的支付信息. ##易宝支付平台统一使用GBK/GB2312编码方式,参数如用到中文,请注意转码 # 商户订单号,选填. ##若不为"",提交的订单号必须在自身账户交易中唯一;为""时,易宝支付会自动生成随机的商户订单号. $p2_Order = trim($order['out_trade_no']); # 支付金额,必填. ##单位:元,精确到分. $p3_Amt = $order['price']; # 交易币种,固定值"CNY". $p4_Cur = "CNY"; # 商品名称 ##用于支付时显示在易宝支付网关左侧的订单产品信息. $p5_Pid = trim($order['out_trade_no']); # 商品种类 $p6_Pcat = 'cart'; # 商品描述 $p7_Pdesc = ''; # 商户接收支付成功数据的地址,支付成功后易宝支付会向该地址发送两次成功通知. //$p8_Url = $cfg_basehost."/plus/carbuyaction.php?dopost=return&code=".$payment['code']; $p8_Url = $cfg_basehost . $this->return_url . '&code=' . $payment['code']; # 商户扩展信息 ##商户可以任意填写1K 的字符串,支付成功时将原样返回. $pa_MP = 'member'; # 应答机制 ##为"1": 需要应答机制;为"0": 不需要应答机制. $pr_NeedResponse = 1; # 银行编码 ##默认为"",到易宝支付网关.若不需显示易宝支付的页面,直接跳转到各银行、神州行支付、骏网一卡通等支付页面,该字段可依照附录:银行列表设置参数值. $pd_FrpId = ''; #调用签名函数生成签名串 $hmac = $this->getReqHmacString($payment['yp_account'], $payment['yp_key'], $p2_Order, $p3_Amt, $p4_Cur, $p5_Pid, $p6_Pcat, $p7_Pdesc, $p8_Url, $pa_MP, $pd_FrpId, $pr_NeedResponse); $button = '<form target="_blank" method="post" action="' . $this->reqURL_onLine . '"> <input type="hidden" value="' . $this->p0_Cmd . '" name="p0_Cmd"> <input type="hidden" value="' . $payment['yp_account'] . '" name="p1_MerId"> <input type="hidden" value="' . $p2_Order . '" name="p2_Order"> <input type="hidden" value="' . $p3_Amt . '" name="p3_Amt"> <input type="hidden" value="' . $p4_Cur . '" name="p4_Cur"> <input type="hidden" value="' . $p5_Pid . '" name="p5_Pid"> <input type="hidden" value="' . $p6_Pcat . '" name="p6_Pcat"> <input type="hidden" value="' . $p7_Pdesc . '" name="p7_Pdesc"> <input type="hidden" value="' . $p8_Url . '" name="p8_Url"> <input type="hidden" value="' . $this->p9_SAF . '" name="p9_SAF"> <input type="hidden" value="' . $pa_MP . '" name="pa_MP"> <input type="hidden" value="' . $pd_FrpId . '" name="pd_FrpId"> <input type="hidden" value="' . $pr_NeedResponse . '" name="pr_NeedResponse" > <input type="hidden" value="' . $hmac . '" name="hmac"> <input type="submit" value="立即使用YeePay易宝支付"></form>'; /* 清空购物车 */ require_once DEDEINC . '/shopcar.class.php'; $cart = new MemberShops(); $cart->clearItem(); $cart->MakeOrders(); return $button; }