Exemplo n.º 1
0
 /**
  * 生成支付代码
  * @param   array   $order  订单信息
  * @param   array   $payment    支付方式信息
  */
 function get_code($order, $payment)
 {
     /**
      * 消费交易-后台
      */
     //$orderNumber           = $order['order_sn'] . '-' . $this->_formatSN($order['log_id']);
     $ecmobile_url = ecmobile_url();
     $orderNumber = $order['order_sn'];
     $amount = $order['order_amount'];
     //需要填入的部分
     $req['version'] = upmp_config::$version;
     // 版本号
     $req['charset'] = upmp_config::$charset;
     // 字符编码
     $req['transType'] = "01";
     // 交易类型
     $req['merId'] = upmp_config::$mer_id;
     // 商户代码
     $req['backEndUrl'] = $ecmobile_url . "/payment/UPMP/notify_url.php";
     // 通知URL
     $req['frontEndUrl'] = $ecmobile_url . "/payment/wap_callback.php?code=upop";
     // 前台通知URL(可选)
     $req['orderDescription'] = $orderNumber;
     // 订单描述(可选)
     $req['orderTime'] = date("YmdHis");
     // 交易开始日期时间yyyyMMddHHmmss
     //$req['orderTimeout']   		= ""; // 订单超时时间yyyyMMddHHmmss(可选)
     $req['orderNumber'] = $orderNumber;
     //订单号(商户根据自己需要生成订单号)
     $req['orderAmount'] = $amount * 100;
     // 订单金额
     $req['orderCurrency'] = "156";
     // 交易币种(可选)
     $req['reqReserved'] = "透传信息";
     // 请求方保留域(可选,用于透传商户信息)
     // 保留域填充方法
     $merReserved['test'] = "test";
     $req['merReserved'] = UpmpService::buildReserved($merReserved);
     // 商户保留域(可选)
     $resp = array();
     $validResp = UpmpService::trade($req, $resp);
     // 商户的业务逻辑
     if ($validResp) {
         // 服务器应答签名验证成功
         //print_r($resp);
         //返回结果展示
         $upop_tn = $resp['tn'];
         $ecmobile_url = ecmobile_url();
         $resultURL = $ecmobile_url . "/payment/wap_callback.php?code=upop{$argName}=";
         $resultURL = urlencode($resultURL);
         $paydata = "tn=" . $upop_tn . ",resultURL=" . $resultURL . ",usetestmode=false";
         $paydata = base64_encode($paydata);
         $pay_url = $ecmobile_url . "/payment/wap_upmp.php?paydata=" . $paydata;
         return array('upop_tn' => $upop_tn, "pay_url" => $pay_url);
     } else {
         // 服务器应答签名验证失败
         //print_r($resp);
         return array();
     }
 }
Exemplo n.º 2
0
 /**
  * 生成支付代码
  * @param   array   $order  订单信息
  * @param   array   $payment    支付方式信息
  */
 function get_wappay_url($order, $payment)
 {
     $order_id = $order['order_id'];
     $order_desc = $order['order_sn'];
     $order_sn = $order['order_sn'];
     $amount = $order['order_amount'];
     $ecmobile_url = ecmobile_url();
     //修正配置文件路径
     $this->alipay_config = $this->modify_config_path($this->alipay_config);
     $format = "xml";
     //返回格式
     $v = "2.0";
     $req_id = date('Ymdhis');
     //请求号
     $notify_url = $ecmobile_url . "/payment/alipay/wap/notify_url.php";
     //服务器异步通知页面路径
     $call_back_url = $ecmobile_url . "/payment/wap_callback.php?code=alipay";
     //页面跳转同步通知页面路径
     $merchant_url = $ecmobile_url . "/payment/wap_merchant.php?code=alipay";
     //操作中断返回地址
     $seller_email = '*****@*****.**';
     //卖家支付宝帐户
     $out_trade_no = $order_sn;
     //商户订单号
     $subject = $order_desc;
     //订单名称
     $total_fee = $amount;
     //付款金额
     //请求业务参数详细
     $req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
     $para_token = array("service" => "alipay.wap.trade.create.direct", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
     //建立请求
     $alipaySubmit = new AlipaySubmit($this->alipay_config);
     $html_text = $alipaySubmit->buildRequestHttp($para_token);
     $html_text = urldecode($html_text);
     //解析远程模拟提交后返回的信息
     $para_html_text = $alipaySubmit->parseResponse($html_text);
     //获取request_token
     $request_token = $para_html_text['request_token'];
     if ($request_token) {
         //业务详细
         $req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';
         //构造要请求的参数数组,无需改动
         $parameter = array("service" => "alipay.wap.auth.authAndExecute", "partner" => trim($this->alipay_config['partner']), "sec_id" => trim($this->alipay_config['sign_type']), "format" => $format, "v" => $v, "req_id" => $req_id, "req_data" => $req_data, "_input_charset" => trim(strtolower($this->alipay_config['input_charset'])));
         //建立请求
         $alipaySubmit = new AlipaySubmit($this->alipay_config);
         $url = $alipaySubmit->alipay_gateway_new . $alipaySubmit->buildRequestParaToString($parameter);
         return $url;
     } else {
         return false;
     }
 }
Exemplo n.º 3
0
<!DOCTYPE HTML>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <?php 
echo $_GET['err'] == 0 ? '成功' : '失败';
?>
        <?php 
require $_SERVER['DOCUMENT_ROOT'] . "/ecmobile/Library/function.php";
$url = ecmobile_url() . "/payment/app_callback.php?err=" . $_GET['err'] . "&order_id=" . $_GET['order_id'];
echo "<script language='javascript' type='text/javascript'>";
echo "window.location.href='{$url}'";
echo "< /script>";
?>
 
    </body>
</html>
Exemplo n.º 4
0
function goto_app_callback($err, $order_id)
{
    $url = ecmobile_url() . '/app_callback.php?err=' . $err . '&order_id=' . $order_id;
    echo '<meta http-equiv="refresh" content="1;url=' . $url . '">';
    //header('Location:'.$url);
}
Exemplo n.º 5
0
require EC_PATH . '/includes/init.php';
//get方式验证session
GZ_Api::$session = array('uid' => _GET('uid'), 'sid' => _GET('sid'));
GZ_Api::authSession();
$code = trim(_GET('code'));
$order_id = _GET('order_id');
$order_desc = _GET('order_desc');
$amount = _GET('amount');
$currency = _GET('currency');
/*
$code = 'alipay';
$order_id = date('YmdHis', time());
$order_desc = 'ipod';
$amount = 0.01;
*/
$ecmobile_url = ecmobile_url();
if (empty($code) || empty($order_id) || empty($order_desc) || empty($amount)) {
    self::outPut(101);
}
switch ($code) {
    case 'alipay':
        require_once GZ_PATH . "/payment/alipay/alipay.config.php";
        require_once GZ_PATH . "/payment/alipay/alipay_submit.class.php";
        //修正配置文件路径
        $alipay_config = modify_config_path($alipay_config);
        $format = "xml";
        //返回格式
        $v = "2.0";
        $req_id = date('Ymdhis');
        //请求号
        $notify_url = $ecmobile_url . "/payment/wap_notify.php?code=alipay";
Exemplo n.º 6
0
<?php

define('IN_ECS', true);
define('GZ_PATH', dirname(dirname(__FILE__)));
define('EC_PATH', dirname(GZ_PATH));
require_once EC_PATH . '/includes/init.php';
require_once GZ_PATH . "/Library/function.php";
//echo '操作中断';
$url = ecmobile_url() . '/app_callback.php?err=2&order_id=' . $_GET['out_trade_no'];
header('Location:' . $url);
Exemplo n.º 7
0
$nonce_str = getRandomStr();
//随机字符串
$packetParams['nonce_str'] = $nonce_str;
//商品描述
$packetParams['body'] = $product_name;
//商品详情
$packetParams['attach'] = $product_name;
//商户订单号
$packetParams['out_trade_no'] = $out_trade_no;
//总金额
$packetParams['total_fee'] = $total_fee;
//访问接口IP
//$packetParams['spbill_create_ip'] = Request::getClientIp();
$packetParams['spbill_create_ip'] = '127.0.0.1';
//接受微信支付异步通知回调地址
$packetParams['notify_url'] = ecmobile_url() . $notify_url;
//交易类型:JSAPI,NATIVE,APP
$packetParams['trade_type'] = "APP";
//签名 TODO
$sign = $reqHandler->createMd5Sign($packetParams);
$packetParams['sign'] = $sign;
$time_stamp = strval(time());
//获取prepayid
$prepayid = $reqHandler->sendPrepay($packetParams);
if ($prepayid != null) {
    $pack = 'Sign=WXPay';
    //输出参数列表
    $prePayParams = array();
    $prePayParams['appid'] = $APP_ID;
    $prePayParams['partnerid'] = $PARTNER;
    $prePayParams['prepayid'] = $prepayid;