提交 7835bef8 编写于 作者: D devil_gong

细节优化

上级 dafd7a8e
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\admin\controller;
use app\service\RefundLogService;
/**
* 退款日志管理
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class RefundLog extends Common
{
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T12:39:08+0800
*/
public function __construct()
{
// 调用父类前置方法
parent::__construct();
// 登录校验
$this->IsLogin();
// 权限校验
$this->IsPower();
}
/**
* [Index 支付日志列表]
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-06T21:31:53+0800
*/
public function Index()
{
// 参数
$params = input();
$params['user'] = $this->admin;
$params['user_type'] = 'admin';
// 分页
$number = MyC('admin_page_number', 10, true);
// 条件
$where = RefundLogService::AdminRefundLogListWhere($params);
// 获取总数
$total = RefundLogService::AdminRefundLogTotal($where);
// 分页
$page_params = array(
'number' => $number,
'total' => $total,
'where' => $params,
'page' => isset($params['page']) ? intval($params['page']) : 1,
'url' => MyUrl('admin/refundlog/index'),
);
$page = new \base\Page($page_params);
$this->assign('page_html', $page->GetPageHtml());
// 获取列表
$data_params = array(
'm' => $page->GetPageStarNumber(),
'n' => $number,
'where' => $where,
);
$data = RefundLogService::AdminRefundLogList($data_params);
$this->assign('data_list', $data['data']);
// 性别
$this->assign('common_gender_list', lang('common_gender_list'));
// 业务类型
$this->assign('common_business_type_list', lang('common_business_type_list'));
// 支付日志类型
$pay_type_list = RefundLogService::RefundLogTypeList($params);
$this->assign('common_pay_type_list', $pay_type_list['data']);
// 参数
$this->assign('params', $params);
return $this->fetch();
}
}
?>
\ No newline at end of file
......@@ -168,7 +168,8 @@
增加:{{$v.increase_price}}<br />
优惠:{{$v.preferential_price}}<br />
总价:{{$v.total_price}}<br />
支付:{{$v.pay_price}}
支付:{{$v.pay_price}}<br />
退款:{{if $v['refund_price'] gt 0}}<span class="am-text-danger">{{$v.refund_price}}</span>{{else /}}{{$v.refund_price}}{{/if}}
</td>
<td>
{{if empty($v['extension_data'])}}
......@@ -261,7 +262,8 @@
增加:{{$v.increase_price}}<br />
优惠:{{$v.preferential_price}}<br />
总价:{{$v.total_price}}<br />
支付:{{$v.pay_price}}
支付:{{$v.pay_price}}<br />
退款:{{if $v['refund_price'] gt 0}}<span class="am-text-danger">{{$v.refund_price}}</span>{{else /}}{{$v.refund_price}}{{/if}}
{{/if}}
</dd>
......
......@@ -7,7 +7,7 @@
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('admin/orderaftersale/index')}}" request-type="form">
<div class="thin">
<div class="am-input-group am-input-group-sm am-fl so">
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="订单号" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="订单号/快递单号" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
</span>
......
......@@ -138,10 +138,10 @@
{{if empty($v['buyer_user'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.buyer_user}}{{/if}}
</td>
<td>
{{if empty($v['pay_price'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.pay_price}}{{/if}}
{{if empty($v['pay_price'])}}<span class="cr-ddd">未填写</span>{{else /}}<span class="am-text-danger">¥{{$v.pay_price}}</span>{{/if}}
</td>
<td>
{{if empty($v['total_price'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.total_price}}{{/if}}
{{if empty($v['total_price'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.total_price}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['subject'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.subject}}{{/if}}
......
{{include file="public/header" /}}
<!-- right content start -->
<div class="content-right">
<div class="content">
<!-- form start -->
<form class="am-form form-validation form-search" method="post" action="{{:MyUrl('admin/refundlog/index')}}" request-type="form">
<div class="thin">
<div class="am-input-group am-input-group-sm am-fl so">
<input type="text" autocomplete="off" name="keywords" class="am-radius" placeholder="姓名/手机/昵称/支付平台单号" value="{{if !empty($params.keywords)}}{{$params.keywords}}{{/if}}" />
<span class="am-input-group-btn">
<button class="am-btn am-btn-default am-radius" type="submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
</span>
</div>
<label class="am-fl thin_sub more-submit">
更多筛选条件
{{if isset($params['is_more']) and $params['is_more'] eq 1}}
<input type="checkbox" name="is_more" value="1" id="is_more" checked />
<i class="am-icon-angle-up"></i>
{{else /}}
<input type="checkbox" name="is_more" value="1" id="is_more" />
<i class="am-icon-angle-down"></i>
{{/if}}
</label>
</div>
<table class="so-list more-where {{if !isset($params['is_more'])}}none{{/if}}">
<tbody>
<tr>
<td>
<span>性别:</span>
<select name="gender" class="chosen-select" data-placeholder="性别...">
<option value="-1">性别...</option>
{{foreach $common_gender_list as $v}}
<option value="{{$v.id}}" {{if isset($params['gender']) and $params['gender'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</td>
<td>
<span>支付:</span>
<select name="pay_type" class="chosen-select" data-placeholder="支付类型...">
<option value="">支付类型...</option>
{{foreach $common_pay_type_list as $v}}
{{if !empty($v['id']) and !empty($v['name'])}}
<option value="{{$v.id}}" {{if isset($params['pay_type']) and $params['pay_type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/if}}
{{/foreach}}
</select>
</td>
</tr>
<tr>
<td>
<span>业务:</span>
<select name="business_type" class="chosen-select" data-placeholder="业务类型...">
<option value="-1">业务类型...</option>
{{foreach $common_business_type_list as $v}}
<option value="{{$v.id}}" {{if isset($params['business_type']) and $params['business_type'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
{{/foreach}}
</select>
</td>
<td class="price">
<span>金额:</span>
<span>
<input type="text" autocomplete="off" name="price_start" class="am-form-field am-input-sm am-radius" placeholder="最低支付金额" value="{{if !empty($params.price_start)}}{{$params.price_start}}{{/if}}" data-validation-message="支付金额格式有误" autocomplete="off" />
</span>
<em class="text-grey">~</em>
<span>
<input type="text" autocomplete="off" name="price_end" class="am-form-field am-input-sm am-radius" placeholder="最高支付金额" value="{{if !empty($params.price_end)}}{{$params.price_end}}{{/if}}" pattern="^[0-9]{4}-[0-9]{2}-[0-9]{2}$" data-validation-message="支付金额格式有误" autocomplete="off" />
</span>
</td>
</tr>
<tr>
<td class="time">
<span>时间:</span>
<span>
<input type="text" autocomplete="off" name="time_start" class="am-form-field am-input-sm am-radius Wdate" placeholder="起始时间" value="{{if !empty($params.time_start)}}{{$params.time_start}}{{/if}}" data-validation-message="日期格式有误" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" /><i class="am-icon-calendar"></i>
</span>
<em class="text-grey">~</em>
<span>
<input type="text" autocomplete="off" name="time_end" class="am-form-field am-input-sm am-radius Wdate" placeholder="结束时间" value="{{if !empty($params.time_end)}}{{$params.time_end}}{{/if}}" pattern="^[0-9]{4}-[0-9]{2}-[0-9]{2}$" data-validation-message="日期格式有误" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'yyyy-MM-dd'})" autocomplete="off" /><i class="am-icon-calendar"></i>
</span>
</td>
<td>
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner:'circle-o-notch', loadingText:'搜索中...'}">搜索</button>
<a href="{{:MyUrl('admin/refundlog/index')}}" class="am-btn am-btn-warning am-radius am-btn-sm reset-submit">清除条件</a>
</td>
</tr>
</tbody>
</table>
</form>
<!-- form end -->
<!-- list start -->
<table class="am-table am-table-striped am-table-hover am-text-middle m-t-10 m-l-5">
<thead>
<tr>
<th>用户信息</th>
<th>支付类型</th>
<th>业务类型</th>
<th class="am-hide-sm-only">业务订单id</th>
<th class="am-hide-sm-only">支付平台交易号</th>
<th class="am-hide-sm-only">支付平台用户帐号</th>
<th>退款金额</th>
<th>订单支付金额</th>
<th class="am-hide-sm-only">描述</th>
<th class="am-hide-sm-only">退款时间</th>
</tr>
</thead>
<tbody>
{{if !empty($data_list)}}
{{foreach $data_list as $v}}
<tr id="data-list-{{$v.id}}">
<td>
{{if !empty($v['username'])}}
{{$v.username}}
{{if !empty($v['nickname'])}}
({{$v.nickname}})
{{/if}}
<br />
{{/if}}
{{if !empty($v['mobile'])}}
{{$v.mobile}}<br />
{{/if}}
{{$v.gender_text}}
</td>
<td>
{{if empty($v['payment_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.payment_name}}{{/if}}
</td>
<td>
{{if empty($v['business_type_name'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.business_type_name}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['order_id'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.order_id}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['trade_no'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.trade_no}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['buyer_user'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.buyer_user}}{{/if}}
</td>
<td>
{{if empty($v['refund_price'])}}<span class="cr-ddd">未填写</span>{{else /}}<span class="am-text-danger">¥{{$v.refund_price}}</span>{{/if}}
</td>
<td>
{{if empty($v['pay_price'])}}<span class="cr-ddd">未填写</span>{{else /}}¥{{$v.pay_price}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['msg'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.msg}}{{/if}}
</td>
<td class="am-hide-sm-only">
{{if empty($v['add_time_time'])}}<span class="cr-ddd">未填写</span>{{else /}}{{$v.add_time_time}}{{/if}}
</td>
</tr>
{{/foreach}}
{{/if}}
</tbody>
</table>
{{if empty($data_list)}}
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
{{/if}}
<!-- list end -->
<!-- page start -->
{{if !empty($data_list)}}
{{$page_html|raw}}
{{/if}}
<!-- page end -->
</div>
</div>
<!-- right content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
......@@ -20,4 +20,18 @@
<li {{if $nav_type eq 'orderaftersale'}}class="am-active"{{/if}} data-type="orderaftersale">
<a href="{{:MyUrl('admin/site/index', ['nav_type'=>'orderaftersale'])}}">订单售后</a>
</li>
</ul>
\ No newline at end of file
</ul>
{{if in_array($nav_type, ['login', 'forgetpwd'])}}
<!-- 登录/密码找回提示 -->
<div class="am-alert am-alert-warning am-radius" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p class="fs-12">左侧图片最多可上传3张图片、每次随机展示其中一张</p>
</div>
{{elseif in_array($nav_type, ['register']) /}}
<!-- 注册提示 -->
<div class="am-alert am-alert-warning am-radius" data-am-alert>
<button type="button" class="am-close">&times;</button>
<p class="fs-12">可自定义背景图片、默认底灰色</p>
</div>
{{/if}}
\ No newline at end of file
......@@ -444,11 +444,11 @@ class OrderAftersaleService
$where[] = ['user_id', 'in', $user_ids];
} else {
// 无数据条件,走单号条件
$where[] = ['order_no', '=', $params['keywords']];
$where[] = ['order_no|express_number', '=', $params['keywords']];
}
} else {
// 用户走关键字
$where[] = ['order_no', '=', $params['keywords']];
$where[] = ['order_no|express_number', '=', $params['keywords']];
}
}
......@@ -771,6 +771,7 @@ class OrderAftersaleService
$upd_data = [
'status' => 6,
'pay_status' => 2,
'refund_price' => PriceNumberFormat($order['data']['refund_price']+$aftersale['price']),
'close_time' => time(),
'upd_time' => time(),
];
......@@ -868,7 +869,7 @@ class OrderAftersaleService
$refund_log = [
'user_id' => $order['user_id'],
'order_id' => $order['id'],
'total_price' => $order['total_price'],
'pay_price' => $order['pay_price'],
'trade_no' => isset($ret['data']['trade_no']) ? $ret['data']['trade_no'] : '',
'buyer_user' => isset($ret['data']['buyer_user']) ? $ret['data']['buyer_user'] : '',
'refund_price' => isset($ret['data']['refund_price']) ? $ret['data']['refund_price'] : '',
......@@ -935,7 +936,7 @@ class OrderAftersaleService
$refund_log = [
'user_id' => $order['user_id'],
'order_id' => $order['id'],
'total_price' => $order['total_price'],
'pay_price' => $order['pay_price'],
'trade_no' => '',
'buyer_user' => '',
'refund_price' => $aftersale['price'],
......
......@@ -30,7 +30,7 @@ class RefundLogService
* @param [array] $params [输入参数]
* @param [int] $user_id [用户id]
* @param [int] $order_id [业务订单id]
* @param [float] $total_price [业务订单实际金额]
* @param [float] $pay_price [业务订单实际支付金额]
* @param [string] $trade_no [支付平台交易号]
* @param [string] $buyer_user [支付平台用户帐号]
* @param [float] $refund_price [退款金额]
......@@ -46,7 +46,7 @@ class RefundLogService
$data = [
'user_id' => isset($params['user_id']) ? intval($params['user_id']) : 0,
'order_id' => isset($params['order_id']) ? intval($params['order_id']) : 0,
'total_price' => isset($params['total_price']) ? PriceNumberFormat($params['total_price']) : 0.00,
'pay_price' => isset($params['pay_price']) ? PriceNumberFormat($params['pay_price']) : 0.00,
'trade_no' => isset($params['trade_no']) ? $params['trade_no'] : '',
'buyer_user' => isset($params['buyer_user']) ? $params['buyer_user'] : '',
'refund_price' => isset($params['refund_price']) ? PriceNumberFormat($params['refund_price']) : 0.00,
......@@ -61,14 +61,14 @@ class RefundLogService
}
/**
* 获取支付日志类型
* 获取退款日志类型
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-23T02:22:03+0800
* @param [array] $params [输入参数]
*/
public static function PayLogTypeList($params = [])
public static function RefundLogTypeList($params = [])
{
$data = Db::name('RefundLog')->field('payment AS id, payment_name AS name')->group('payment')->select();
return DataReturn('处理成功', 0, $data);
......@@ -194,7 +194,7 @@ class RefundLogService
* @desc description
* @param [array] $params [输入参数]
*/
public static function PayLogDelete($params = [])
public static function RefundLogDelete($params = [])
{
// 请求参数
$p = [
......@@ -211,7 +211,7 @@ class RefundLogService
}
// 删除操作
if(Db::name('PayLog')->where(['id'=>$params['id']])->delete())
if(Db::name('RefundLog')->where(['id'=>$params['id']])->delete())
{
return DataReturn('删除成功');
}
......
-----BEGIN CERTIFICATE-----
MIIEaDCCA9GgAwIBAgIDas/LMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD
TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE
ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w
HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTIwMzA5NTIwN1oX
DTI2MTIwMTA5NTIwN1owgZgxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv
bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL
EwVNTVBheTEtMCsGA1UEAxQk5LiK5rW35YyX5pav572R57uc56eR5oqA5pyJ6ZmQ
5YWs5Y+4MREwDwYDVQQEEwgxMDQyMzc1NjCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMDA5gcWYofO1bp8xEuEMSa7i1WiPi4PuU02FWmDi3wSNIzpyrpP
qXmmCu8DRBry4dRf4/62WFgzh0HP9TRnmDsADAr4/Q2i/QQMlFnYyk1N8X7muirP
T4aU8BpR4zwBEQMsSybdmuJvyxxZMKR3/McMjXnuyqX6tFbUhCg5XBTZwBR6CNU/
Dx28VC6xWvBeWKzjELC59nyb263hjlHjdEy/8xufh3Oux/+nherHSTzQFHPgW9cB
25/o90pLq1zSJx66UcdkKMJP8JjOnMvn+nCZmFUDawJKD9SlOLW06DyE/WBDV/Uf
qgdm+I1kR5IwRyxGKFwWjP4yDaWqlCEzvpkCAwEAAaOCAUYwggFCMAkGA1UdEwQC
MAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUi
MB0GA1UdDgQWBBTVt+c3x8Y9CT62eTuErS8U9yFJ2jCBvwYDVR0jBIG3MIG0gBQ+
BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNV
BAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNl
bnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3
DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIG
wDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAT1LPp
RghlBDmKjhFG596cZrYswQznfgahTOwb66nL1WXg6XlBb7sIqflKinAXzQOZJML4
iAsHCLq63y+ELJKMeh96tOmgH3pzQt9R6j2aL7kg6aXSSEiPlXiVKStiy2OWARWC
lwHc+cBmxiw8K7818NuCc0/WlYzrawPfPQat2g==
-----END CERTIFICATE-----
\ No newline at end of file
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAwOYHFmKHztW6
fMRLhDEmu4tVoj4uD7lNNhVpg4t8EjSM6cq6T6l5pgrvA0Qa8uHUX+P+tlhYM4dB
z/U0Z5g7AAwK+P0Nov0EDJRZ2MpNTfF+5roqz0+GlPAaUeM8AREDLEsm3Zrib8sc
WTCkd/zHDI157sql+rRW1IQoOVwU2cAUegjVPw8dvFQusVrwXlis4xCwufZ8m9ut
4Y5R43RMv/Mbn4dzrsf/p4Xqx0k80BRz4FvXAduf6PdKS6tc0iceulHHZCjCT/CY
zpzL5/pwmZhVA2sCSg/UpTi1tOg8hP1gQ1f1H6oHZviNZEeSMEcsRihcFoz+Mg2l
qpQhM76ZAgMBAAECggEAQjtGDxNjAdVRXUX30Rb4KJ3yr5cTFJK0klJOIzZfHF/J
DM5cqY4r5q/mO+B8a2IftPDKD8CqNIxoInYJhFtAVK2cdby+fwwNMnH8G69BPDTX
EUrIl2MqqUzN/805bmnTZaq3nAAzczEEspX2/9x20BKBHm+t1ECD7P4S9xtWh5b+
H8IycTZLB5Y6R+0cTptpzkuUvp4kJDfXg9++QyHucEdG3+0jN26qSfog0KPbbeQZ
Odmvg8POsMqGcNhsa13OgP9mggQiKtsDQ2hyYbCIjNLK/Rs3JU/dLzJihXazfI12
VjIpBbT//Z7LddBnfZ1jfy0OW2jn7s4SObW2ds7ysQKBgQDeXoJvoVE+ZcjTv80t
woqXwNYO8Vo9n1fM+8V9kWELgMm1/H2PmEu1pmHUwWwYz4xmNan4NcA0m13MH2tx
WItE0GFpISYdCc3jXdU8toGU4YnxACh+GPRy4PHmX3DjA7xx1BX+O4NUKpgt5N9J
fxb9k1h4NuXW10qVAKJspTW4HQKBgQDd58GTF+6hjaicEUUZUm+VeejvZaVsVGSn
K0HixOU0JfeLWugLswgEB2TU84JFrULfRkjtMOx/5J6MeZFljD/E3VwtVMg2aIrN
x5/gRQWyPpfhcl1ZhFy2an3Ql/uMgA/75zU2/EMWV2qAKsQpd3std1Fem370bh1J
slJrqi0vrQKBgQDERfsveN3zC3hFnsgFme8mnyjRq6qRNbIT1i6s9MMJmjVwklpp
gm1g+mjjl45IH/m2xasu0JLEXFZgM2NselEC/kLcvkub2emGxG3Q1u5tcN2GgTM8
id5J/87EHn3Pgp60ghSff/wdMDN+XsPPZYPvcjzmbt5T0VedSSAUcYaG6QKBgQCd
i4oKZcZdWpan3zcAyF9Cb6AqPy9YHv6rFPIdDw9vm7kJbkwq6ju5qIo1CoGl+GHu
5Ranl8GA9459S14oC4/GtCZaZMQUpNpPSPhAIKDvsLLiM/EEug2c0TRsIUtNsCoo
/Tjxxd3Xgc6yGirVCeghGoJhueJDpd4TUZBkshiMrQKBgCJsFeRZGLpqIIF8nQDA
8ut6O5e7LRFguqcfp2pMHCSt7inzSJZNQsYq38dPPW2UYBmTO0C8kwNJCjVyYJt3
K6Aw9tjix1FU5dqNmC3GDwstz5VmXqmsyISRePgjiMYaIdysDFZYiw6gCRoDKN31
OvonqYebbxvzTfQGtUNmCdvW
-----END PRIVATE KEY-----
\ No newline at end of file
欢迎使用微信支付!
附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。
证书属于敏感信息,请妥善保管不要泄露和被他人复制。
不同开发语言下的证书格式不同,以下为说明指引:
证书pkcs12格式(apiclient_cert.p12)
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
部分安全性要求较高的API需要使用该证书来确认您的调用身份
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000)
证书pem格式(apiclient_cert.pem)
从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
证书密钥pem格式(apiclient_key.pem)
从apiclient_cert.p12中导出密钥部分的文件,为pem格式
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
备注说明:
由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册