zibll子比主题对接个店免签支付教程

zibll子比主题对接个店免签支付教程

个店免签支付是一个免费的免签支付系统,这里呢爱游也已经用上了,因朋友需要对接zibll子比主题,爱游这里就出一个教程,然后大家可以自己对接。下面教程:到此对接完成,可以使用了。

个店免签支付是一个免费的免签支付系统,这里呢爱游也已经用上了,因朋友需要对接zibll子比主题,爱游这里就出一个教程,然后大家可以自己对接。

下面教程:

[password key=82364]

首先我们在主题目录打开zibll/inc/options/admin-options.php

搜索“关闭微信收款”在这一行的上面添加一行,代码如下:

'gedian_wechat' => __('个店支付-微信', 'zib_language'),

然后下拉,看到有个“关闭支付宝收款”在这一行的上面添加一行,代码如下:

'gedian_alipay' => __('个店支付-支付宝', 'zib_language'),

然后再搜索“自定义代码”在上面添加以下代码:

            array(
                'id'            => 'gedian',
                'type'          => 'accordion',
                'title'         => '个店',
                'accordions'    => array(
                    array(
                        'title'     => '个店支付',
                        'fields'    => array(
                            
                            array(
                                'title' => '个店商户ID',
                                'id' => 'id',
                                'default' => '',
                                'type' => 'text'
                            ),
                            array(
                                'title' => '通信密钥',
                                'class' => 'compact',
                                'id' => 'key',
                                'default' => '',
                                'type' => 'text'
                            ),
                        )
                    ),
                )
            ),

如下图:

这样在后台就能看到个店支付了。

然后接着修改:

打开主题 zibll/zibpay/functions.php 搜索codepay 再下面加一行:

    $defaults['gedian'] =  array(
        'id'     => '',
        'key' => '',
    );

如图所示:

打开主题 zibll/zibpay/functions/zibpay-ajax.php 拉到最后面,添加以下代码:

//个店支付
function zibpay_initiate_gedian($order_data = array(), $payment = 'alipay')
{

	//获取参数
	$config = zibpay_get_payconfig('gedian');
	if (empty($config['id']) || empty($config['key'])) {
		return array('error' => 1, 'ys' => 'danger', 'msg' => '个店配置错误');
	}

	if ($payment == 'wechat') {
		$istype = 1;
	} else {
		$istype = 2;
	}
	$key = $config['key'];
	$mid = $config['id'];//你的支付ID
	$payId = $order_data['order_num']; //唯一标识 可以是用户ID,用户名,session_id(),订单ID,ip 款后返回
	$price = $order_data['order_price'];//金额100元
	$param = "zibpay";//自定义参数
	$notifyUrl =get_template_directory_uri() . '/zibpay/shop/gedian/notify.php';//通知地址
	$return_url = !empty($order_data['return_url']) ? $order_data['return_url'] : home_url();//跳转地址return.php
	$sign = md5($mid . $payId . $param . $istype . $price  . $key);


	$query ="mid=".$mid."&payId=".$payId.'&param='.$param.'&type='.$istype."&price=".$price.'&sign='.$sign.'&notifyUrl='.$notifyUrl.'&returnUrl='.$return_url.'&isHtml=0';

	//	$query = $urls.'&page=4'; //创建订单所需的参数
	$url = "https://api.gedian.ren/createOrder?{$query}"; //支付页面

	$http = new Yurun\Util\HttpRequest;
	$response = $http->ua('YurunHttp')->get($url);

	$result = $response->body();
	$resultData = json_decode($result, true);
    $resulimg = $resultData['data']['payUrl'];
    
	if ($resultData['code'] == 1) {
		return array('url_qrcode' => 'https://api.gedian.ren/enQrcode?url='.$resulimg );
	} else {
	    return array('error' => 1, 'ys' => 'danger', 'msg' => $resultData['msg']);
		
	}

	return $resultData;


}

然后再到zibll/zibpay/shop/新建文件夹 “gedian”再新建一个notify.php文件,复制以下代码到文件里面:

<?php
header('Content-type:text/html; Charset=utf-8');

ob_start();
require dirname(__FILE__) . '/../../../../../../wp-load.php';
ob_end_clean();

$config = zibpay_get_payconfig('gedian');
if (!$config['id'] || !$config['key']) {
    //判断参数是否为空
    exit('fail');
}
if (_pz('pay_wechat_sdk_options') != 'gedianpay_wechat' && _pz('pay_alipay_sdk_options') != 'gedianpay_alipay') {
    //判断是否开启此支付接口
    exit('fail');
}
$id= $config['id'];
$key=$config['key']; //这是您的密钥

$payId = $_GET['payId'];//商户订单号
$param = $_GET['param'];//创建订单的时候传入的参数
$type = $_GET['type'];//支付方式 :微信支付为1 支付宝支付为2
$price = $_GET['price'];//订单金额
$reallyPrice = $_GET['reallyPrice'];//实际支付金额
$sign = $_GET['sign'];//校验签名,计算方式 = md5(payId + param + type + price + reallyPrice + 通讯密钥)
//开始校验签名
$_sign =  md5($id.$payId . $param . $type . $price . $reallyPrice . $key);
if ($_sign != $sign) {
    echo "error_sign";//sign校验不通过
    exit();
}else{
        $pay = array(
        'order_num' => $_GET['payId'],
        'pay_type' => 'gedian',
        'pay_price' => $_GET['price'],
        'other' => '',
    );
    // 更新订单状态
    $order = ZibPay::payment_order($pay);
    echo 'success';
exit();
}
exit();

[/password]

到此对接完成,可以使用了。

0

评论0

请先

赞助会员享海量VIP资源免费下载 自助开通
没有账号? 注册  忘记密码?