PHP支付第3方接口使用方法。

Posted 老凡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP支付第3方接口使用方法。相关的知识,希望对你有一定的参考价值。

去年写过一遍博客文章。 

网站申请不到支付宝接口、微信接口,免接口收款实现方式。

网络在发展,支付宝也好,微信也好,技术在进步,这种方式已经不能使用了,明显的一个问题是,支付宝的刷新工具,会定时退出,必须人工输入才能再次登录。。

 

由于客户需要,想到了另外一种方法。

客户用正规的公司申请支付宝接口,微信接口,建立一个正规的网上商城类网站,这个网站只是一个中间网站,没有实际作用,当然所有功能都是正常的。

 

重点来了,,

我们可以在申请不到接口的网站,通过跳转到正规网站来完成支付,支付结果,也通过远程的方式反馈给调用支付的网站。

好像很多第3方集成支付工具,应该也是类似的用法。

上微信支付的代码。

 

header("Content-Type:text/html;charset=utf-8");
date_default_timezone_set(\'PRC\');

require_once \'config.php\';
require_once WX_CLASS;
require_once \'api/\'.UGL_CLASS;
require_once \'api/\'.SESSION_CLASS;
require_once \'api/libs/WxPay.Api.php\';
require_once \'api/libs/WxPay.JsApiPay.php\';
error_reporting(0);

$get = $_GET;
$strArr = explode(\'x\',$get[\'n\']);
// http://meng.qiankk.com/demo/getOpenid.php?n=99x1x29191xyzd 贷款网站的支付格式
$type = (int)$strArr[0];
$num = (int)$strArr[1];


$wx=new WX_LC(ID,WX_APPID,WX_SECRET);
$code=$_GET[\'code\'];
if($code==\'\'){
$wx->getCode(\'snsapi_base\');
exit(\'code empty\');
}else{
$data=$wx->getOpenid($code);
if($data->errcode == 40029 || $data->errcode == 40163) {
$wx->getCode();
return;
}
    if($type != 99){
        $s = new S(ID);
        $user = $s->getUser();
        // echo \'<pre>\';
        // print_r($user);
        // die;
        $user->openid = $data->openid;
        $s->setUser($user);
    }else {
        $user = new stdClass();
        $user->id = mt_rand(1000,99999);
        $user->openid = $data->openid;
    }

}

$feeArr1 = array(
    array(\'day\'=>30,\'money\'=>48000),
array(\'day\'=>1,\'money\'=>3300),
array(\'day\'=>30,\'money\'=>48000),
array(\'day\'=>90,\'money\'=>99900),
array(\'day\'=>180,\'money\'=>180000),
array(\'day\'=>365,\'money\'=>320000)
);
$feeArr2 = array(
    array(\'day\'=>30,\'money\'=>12000),
array(\'day\'=>1,\'money\'=>2300),
array(\'day\'=>30,\'money\'=>15000),
array(\'day\'=>90,\'money\'=>30000),
array(\'day\'=>180,\'money\'=>55000),
array(\'day\'=>365,\'money\'=>98000)
);

if($user && $user->id>0) {
    $uid = $user->id;
} else {
    exit(json_encode(array(\'result\'=>0, \'msg\'=>\'user error!\')));
}


if($type == 99){ //如果是贷款网站      重点在这里,,,,如果是从外站跳转过来的支付,,,,这里重新定义一些支付参数,发起微信支付,,,在回调页面,也做同样的判断就可以了
    $order = (int)$strArr[2];
    $dai = $strArr[3];//来源
    $orderId = $dai.\'_\'.date(\'ymdHis\').\'_\'.$order;
 
    $fee = $num * 1;
    $pid = $orderId;
    pay($orderId,$fee,$user,$uid,$order ,$dai);
    die;
}


$orderId = WxPayConfig::MCHID.date("YmdHis").rand(10, 99);
$now = time();
$arr=array(
    \'p_id\'=>null,
    \'p_uid\'=>$uid,
    \'p_type\'=>$type,
    \'p_num\'=>$num,
    \'p_trade_no\'=>$orderId,
    \'p_transaction_id\'=>\'\',
    \'p_buy\'=>\'\',
    \'p_create\'=>$now,
    \'p_update\'=>$now,
    \'p_more\'=>\'\'
);
$pid = $ugl->insert(DB_PREFIX.\'pay_log\',$arr);




if($pid>0) {
    if($type==1) {
        $fee = $feeArr1[$num][\'money\'];
    } else {
        $fee = $feeArr2[$num][\'money\'];
    }
    //$fee = 10000;//($fee/1000)<0.01?0.1:($fee/1000);
    pay($orderId,$fee,$user,$uid,$pid );
}else{
    exit(\'pid error\');
}






function pay($orderId,$fee,$user,$uid = 0,$pid = 0,$dai = \'\'){
    $ugl = new UGL_v2();
    
    $tools = new JsApiPay();
    $input = new WxPayUnifiedOrder();

    $input->SetBody("12");
    $input->SetAttach("123");
    $input->SetOut_trade_no($orderId);
    $input->SetTotal_fee($fee);
    $input->SetTime_start(date("YmdHis"));
    $input->SetTime_expire(date("YmdHis", time() + 600));
    $input->SetGoods_tag("test");
    $input->SetNotify_url(SHAREURL."demo/api/notify_b.php");
    $input->SetTrade_type("JSAPI");
    $input->SetOpenid($user->openid);
    $order = WxPayApi::unifiedOrder($input);
    $jsApiParameters = $tools->GetJsApiParameters($order);
    $str = json_encode($order);
    $ugl->addLog($uid,\'201\',$str,\'下单\'.$pid);
    $ec = "var jsApiParameters=$jsApiParameters; var myPid=$pid;";
echo "<script>$ec</script>";
include_once \'callpay_b.html\';
}

以上是关于PHP支付第3方接口使用方法。的主要内容,如果未能解决你的问题,请参考以下文章

第3方支付ddd

php thinkphp怎么集成支付宝接口

PHP开发Paypal支付,支付流程和接口实现方案

php 5.3.13怎么使用支付宝RSA2

个人可申请的安全可靠的微信支付接口

關於php接ICBC的支付接口的解決方案