Example #1
0
 * 修改日期:2012-07-23
 * 说明:
 * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
 *************************注意*************************
 * 如果您在接口集成过程中遇到问题,可以按照下面的途径来解决
 * 1、商户服务中心(https://b.alipay.com/support/helperApply.htm?action=consultationApply),提交申请集成协助,我们会有专业的技术工程师主动联系您协助解决
 * 2、商户帮助中心(http://help.alipay.com/support/232511-16307/0-16307.htm?sh=Y&info_type=9)
 * 3、支付宝论坛(http://club.alipay.com/read-htm-tid-8681712.html)
 * 如果不想使用扩展功能请把扩展功能参数赋空值。
 */
require_once "alipay.config.php";
require_once "alipay_submit.class.php";
date_default_timezone_set('Asia/Shanghai');
//获取参数
$ali_email = trim(youpzt_get_setting('alipay_account'));
if (empty($ali_email)) {
    wp_die('系统发生错误,卖家信息错误,请稍后重试!');
}
$product_id = $_POST['product_id'];
$product_name = '';
$product_des = '';
if ($product_id > 0) {
    $product_name = $_POST['order_name'];
    $product_des = get_post_field('post_excerpt', $product_id);
} elseif ($product_id == -1) {
    $product_name = '开通VIP月费会员';
    $product_des = 'VIP月费会员';
} elseif ($product_id == -2) {
    $product_name = '开通VIP季费会员';
    $product_des = 'VIP季费会员';
    $today_time = date('Y-m-d H:i:s', time());
    //当前时间
    $insert_order_id = $wpdb->insert($wpdb->order, array('product_id' => $product_id, 'order_number' => $order_number, 'order_status' => 1, 'user_id' => $user_id, 'price' => $_POST['jinbi'], 'order_time' => $today_time, 'product_count' => 1), array('%d', '%s', '%d', '%d', '%d', '%s', '%d'));
    if ($insert_order_id) {
        $order_message = '';
        //$wpdb->insert_id会输出插入id
    } else {
        $order_message = '订单有错误!';
    }
    $order = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->order} where product_id=%d and order_number=%s and user_id=%d;", $product_id, $order_number, $user_id), OBJECT, 0);
}
//echo $product_id;exit();
if (!$order) {
    wp_die('获取订单出错,请重试或联系卖家!');
}
$service = youpzt_get_setting('alipay_sign_type', 'trade_create_by_buyer');
$user_dizhi_id = get_user_meta($user_id, 'default_address', true);
$user_dizhi_obj = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->address} where id=%d and user_id=%d;", $user_dizhi_id, $user_id), OBJECT, 0);
/**************************请求参数**************************/
//支付类型
$payment_type = "1";
//必填,不能修改
//服务器异步通知页面路径
$notify_url = Ali_URI . "/notify.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数
//页面跳转同步通知页面路径
$return_url = Ali_URI . "/return.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
//卖家支付宝帐户
$seller_email = $ali_email;
//必填
 * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
 * 提示:如何获取安全校验码和合作身份者id
 * 1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)
 * 2.点击“商家服务”(https://b.alipay.com/order/myorder.htm)
 * 3.点击“查询合作者身份(pid)”、“查询安全校验码(key)”
 * 安全校验码查看时,输入支付密码后,页面呈灰色的现象,怎么办?
 * 解决方法:
 * 1、检查浏览器配置,不让浏览器做弹框屏蔽设置
 * 2、更换浏览器或电脑,重新登录查询。
 */
require_once dirname(__FILE__) . "/../../../../wp-load.php";
define('Ali_URI', UCENTERDL_PLUGIN_URI . 'alipay');
date_default_timezone_set('Asia/Shanghai');
$ali_partner = youpzt_get_setting('alipay_id');
$ali_key = youpzt_get_setting('alipay_key');
if (empty($ali_partner) || empty($ali_key)) {
    wp_die('支付宝商家认证信息为空!');
}
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//合作身份者id,以2088开头的16位纯数字
$alipay_config['partner'] = $ali_partner;
//安全检验码,以数字和字母组成的32位字符
$alipay_config['key'] = $ali_key;
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//签名方式 不需修改
$alipay_config['sign_type'] = strtoupper('MD5');
//字符编码格式 目前支持 gbk 或 utf-8
$alipay_config['input_charset'] = strtolower('utf-8');
//ca证书路径地址,用于curl中ssl校验
//请保证cacert.pem文件在当前文件夹目录中