第三方支付接口nicepay对接过程总结

2023-11-17 14:02:07 浏览数 (2)

前言

第三方支付接口nicepay是印度的一个聚合支付接口。

对接过程

组织参数->签名->提交->处理返回->跳转支付链接->支付->处理异步和同步返回

提交函数

采用post/json方式提交数据

代码语言:javascript复制
            public function http_post($url, $sendInfo)
            {
                try {
                        $ch = curl_init();
                        curl_setopt($ch, CURLOPT_URL, $url);
                        curl_setopt($ch, CURLOPT_POST, 1);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 不直接输出,返回到变量
                        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // 连接超时(秒)
                        curl_setopt($ch, CURLOPT_TIMEOUT, 60); // 执行超时(秒)
                        curl_setopt($ch, CURLOPT_POSTFIELDS, $sendInfo);
                        $curl_result = curl_exec($ch);
                        curl_close($ch);
                        return $curl_result;
                } catch (Exception $e) {
                        return null;
                }
            }

组织签名

提交订单数据之前,为保证安全性需要签名

代码语言:javascript复制
            //签名
            public function get_sign($srcArray, $merKey){
                    if(null == $srcArray){
                        return "123456";
                    }
                    //先干掉sign字段
                    $keys = array_keys($srcArray);
                    $index = array_search("sign", $keys);
                    if ($index !== FALSE) {
                        array_splice($srcArray, $index, 1);
                    }

                    //对数组排序
                    ksort($srcArray);

                    //生成待签名字符串
                    $srcData = "";
                    foreach ($srcArray as $key => $val) {
                        if($val === null || $val === "" ){
                            //值为空的跳过,不参与加密
                            continue;
                        }
                        $srcData .= "$key=$val" . "&";
                    }
                    $srcData = substr($srcData, 0, strlen($srcData) - 1);

                    //生成签名字符串
                    $sign = md5($srcData.$merKey);
                    return $sign;
            }

0 人点赞