第三方支付对接

第一步:准备所需的对接文档

向第三方平台索取支付文档,商户号及密匙.

第二步:获取订单信息

获取系统生成的订单

第三步:根据接口文档填写数据

$params = array(
            'userId' => self::$userId,
            'timestamp' => time().'000',
            'orderNo' => $order['out_trade_no'],
            'amount' => $order['amount']*100,
            'bankCode' => $extend["bankCode"],
//            'bankCode' => '102100099996',
            'bankName' => $extend['bankName'],
//            'bankName' => '中国工商银行',
            'cardType' => '2',
            'payType' => 'KJ_WEB',
            'callBackUrl' => 'http://'.C('site_url').'/index.php/Pay/RongYaoPay/fastPay_notify',


        );

常见需要填写订单号,金额,金额可能有以分为单位.商户号,密匙,支付方式,常见的有快捷支付和网关支付等,获取到数据之后,对数据进行处理,可能需要md加密以及按照阿西克吗顺序排序.;

private function createSign($params = [])
    {
        $validParams = [];
        foreach($params as $key => $val) {
            if ($val !== '') {
                $validParams[$key] = $val;
            }
        }
        ksort($validParams, 0);
        $string = ''; // concat query string
        foreach($validParams as $k=>$v) {
            $string .= '&'.$k.'='.$v;
        }
        $stringKey = substr($string, 1, strlen($string)).'&key='.$this->key;
        $sign = md5($stringKey);
        return $sign;
    }

根据所需进行操作.然后通过curl进行调用第三方接口.

    function curlPost($url, $data = ''){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSLVERSION, 1);//这个值不设置有时会出现error 35情况
        return curl_exec($ch);
    }

关于curl自行网上查询.如果能跳转到第三方支付界面.则第三方直接调用成功.

第四步:回调

通常在下单参数里面有需要填写回调地址,如诺没有则需要跟第三方支付报备回调地址.回调地址是支付成功系统执行的步骤,通常是修改订单状态,更改用户信息等.在进行这些操作可能需要获取对应参数.如订单号,金额,还得进行签名验证等.只有签名验证通过后才能证明订单已被支付等.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值