在主题目录functions-diy.php
中添加如下代码。(也可以用子主题方式,在functions.php中添加)
/**
* 过滤充值提交参数
* @param [type] $return [description]
* @param [type] $orderdata [description]
* @return [type] [description]
*/
function curr_ordeer_return($return,$orderdata){
/**************************请求参数**************************/
//你的回调用通知地址
$notify_url = "/你放SDK路径地址/alipay/notify_url.php";
//商户订单号,商户网站订单系统中唯一订单号,必填
$out_trade_no = trim($orderdata['order_id']);
//订单名称,必填
$subject = trim($orderdata['product_name']);
//付款金额,必填
$total_amount = trim($orderdata['order_price']);
//商品描述,可空
$body = trim($orderdata['sitename']);
$parameter = array(
"out_trade_no" => $orderdata['order_id'],
"subject"=>$subject,
"total_amount"=>$total_amount,
"body"=>'',
"notify_url" => $notify_url,
"return_url" => $orderdata['return_url'],
);
if(isset($orderdata['user_id']) && !empty($orderdata['user_id'])){
$parameter['passback_params']=$orderdata['user_id'];
}
if(wp_is_mobile()){
//移动支付提交页面
$return['paymentUrl']='/你放SDK路径地址/alipay/wappay/pay.php?'.http_build_query($parameter);
}else{
//pc支付提交页面
$return['paymentUrl']='/你放SDK路径地址/alipay/pagepay/pagepay.php?'.http_build_query($parameter);
}
return $return;
}
add_filter('mi_create_order_after','curr_ordeer_return',10,2);
添加完后自行测试,注意SDK所放的路径,不要写错了。
2 自定义支付按钮
如下图,显示在这个位置,按钮可以自行添加几个都行。只要与SDK那边对应该即可。
添加按钮代码:
这个代码是可以选的,可以不添加,因为默认就是支付宝和微信两个支付按钮,可以通过下面的代码进行支付按钮自定义。如修改按钮上的文字等。
将下面的代码放到functions-diy.php
中添加如下代码。(也可以用子主题方式,在functions.php中添加)
function custom_playbtn(){
$paybtn='';
if(is_page(array('membership'))){//会员中心页面的支付按钮
$paybtn.='<el-button type="success" @click="paybtn(\'wxpay\')" :loading="wxisload">微信支付</el-button>';
$paybtn.='<el-button type="primary" @click="paybtn(\'alipay\')" :loading="zfbisload">支付宝支付</el-button>';
}else{
//播放页面的支付按钮
$paybtn.='<a @click="paybtn(\'wxpay\')" class="zanzhubtn wx">微信支付</a>';
$paybtn.='<a @click="paybtn(\'alipay\')" class="zanzhubtn zfb">支付宝支付</a>';
}
return $paybtn;
}
add_filter('mipaybtn','custom_playbtn',10);
3. 附上二次开发添加支付渠道可能会用的几个WP过滤器和钩子
系统创建支付订单前过滤器mi_create_order_data_before
//过滤器,系统创建支付订单前所用(可以修改前台提交上来的支付信息)。
$orderdata=apply_filters('mi_create_order_data_before',$orderdata);
//$orderdata 为支付提交上来的数据
$orderdata=array(
'product_id'=>$post_id,//文章ID
'order_id'=>$out_trade_no,//订单号
'order_price'=>$money,//订单价格
'product_name'=>$product_name,//产品名字,或者电影名
'play_id'=>$play_id,//播放视频ID就是第几集的那个数字
'user_linname'=>$user_linname,//临时用户名
'pay_type'=>trim($pay),//支付方式如: wxpay 微信,alipay 支付宝,也就是支付按钮中传过来的值
'return_url'=>$return_url,//页面回调地址
'zhitype' =>$amount['zhitype'],//检测是不是分集
);
系统创建支付订单成功后动作钩子 mi_import_payment_fun
do_action('mi_import_payment_fun',$my_order,$orderdata);
//$orderdata 数据同上。
//$my_order 类型 array 订单创建成功时为返回数据库ID、order_id 。失败时返回false
系统创建支付订单成功过滤器 mi_create_order_after
apply_filters('mi_create_order_after',$return,$orderdata);
//$orderdata 数据同上。
//$return 创建成功返回给前台所用数据
$return=array();
$return['msg']='创建订单成功';
$return['code']=1;//1为成功,0为不成功
$return['trade']=$out_trade_no;
$return['paymentUrl']='';//支付页面地址