第三方四方支付接口對接開發教程API集成服務通用方法


支付接口對接技術做多了以后你會發現,基本上所有的第三方第四方支付接口的基本方法流程就是這樣,至於有些簽名方式不一樣,配制參數不一樣等等按照其提供的技術文檔要求修改一下即可,有不懂的可以聯系。

 1 //配制類,填寫在支付平台獲取的相關信息Q4770851
 2 class Constant {
 3     const USER= "QQ4770851";
 4     const MERCHNO = "ff8080816586cbd434358a66b0bc1525";
 5     const CREATE_URL = "https://xxx.com/order/create";
 6     const QUERY_URL = "https://xxx.com/order/query";
 7     const KEY = "C66604323DFA42B4864299246E04FD1B";
 8 
 9 }
10 //簽名類,按照支付平台的規則對參數進行簽名
11 class SignUtils {
12     /** = */
13     const QSTRING_EQUAL = "=";
14     /** & */
15     const QSTRING_SPLIT = "&";
16     public static function signMD5($param, $merKey = '') {
17         ksort($param);
18 
19         $arr = [];
20         foreach ($param as $key => $value) {
21             $arr[] = $key . self::QSTRING_EQUAL . $value;
22         }
23         $str = implode(self::QSTRING_SPLIT, $arr);
24         return strtoupper(md5($str . self::QSTRING_SPLIT . $merKey));
25     }
26 }
27 
28 //請求類,發起支付請求
29 class HttpUtils {
30     /**
31      * [post description]
32      * @param  [type] $url  [description]
33      * @param  array  $post [description]
34      * @return [type]       [description]
35      */
36     public static function post($url, $post = []) {
37         $headers = [ "Content-type: application/json;charset='utf-8'", "Accept: application/json", "Cache-Control: no-cache", "Pragma: no-cache" ];
38         $ch = curl_init($url);
39         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
40         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
41         curl_setopt($ch, CURLOPT_TIMEOUT, 60);
42         curl_setopt($ch, CURLOPT_POST, TRUE);
43         curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
44         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
45         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
46 
47         $data = curl_exec($ch);//CURLOPT_RETURNTRANSFER 不設置  curl_exec返回TRUE 設置  curl_exec返回json(此處) 失敗都返回FALSE
48         curl_close($ch);
49 
50         return $data;
51     }
52 }
53 
54 // 支付正文開始,配制參數,發起請求
55 $param = [];
56 $param['merchno'] = Constant::MERCHNO;
57 $param['out_trade_no'] = $_POST['rechargeId'];
58 $param['subject'] = $_POST['username'];
59 $param['total_amount'] = $_POST['amount'];
60 $param['redirect_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/return.php';
61 $param['notify_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/notify.php';
62 $param['sign'] = SignUtils::signMD5($param, Constant::KEY);
63 $response = HttpUtils::post(Constant::CREATE_URL, $param);
64 $arr = json_decode($response,TRUE);
65 header("location:".$arr['pay_url']);
66 --------------------- 
67 作者:jeesr 
68 來源:CSDN 
69 原文:https://blog.csdn.net/jeesr/article/details/90639283 
70 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM