銀聯支付接口php,銀聯支付接口申請流程

本文目錄一覽:

php做銀聯接口(upop)前台操作一切順利,只是後台該如何接收數據,是否還要核對報文,還是是直接處理。

你是做銀聯接口還是用銀聯接口開發程序

一般銀聯會有兩種返回方式

一直是直接postback 另一種是異步的 可能不是立即傳回 比如每5分鐘把所有訂單傳回來一次

這種方式是為了防止用戶付款完畢沒有等待頁面彈到postback頁面就關閉瀏覽器或者當前頁面了

一般在postback頁面接受銀聯返回數據做處理數據以銀聯返回的為準 存到自己系統的數據庫的另一張表 再check數據 然後更新訂單狀態等 執行其他操作

異步方式傳回來的再進行一次檢查 補全關閉瀏覽器等原因導致的特殊情況而沒有得到返回的訂單

可以對已經保存的訂單再次檢查 執行過程和之前基本一樣

銀聯一般還會提供一個訂單查詢接口 根據交易訂單號 提交到銀聯的接口得到返回 比如返回xml數據

通過返回結果可以再次確認訂單詳細信息 這個查詢的結果是可以做銀聯對賬的憑據的如果他們返回的信息錯了他們是有責任的.在自己的系統內給客戶做關鍵操作之前最好查詢核對一次..

詳細的方法請仔細看銀聯提供的文檔..

PHP怎麼做銀聯的支付接口調用

PHP怎麼做銀聯的支付接口調用就很簡單了,首先要和銀聯簽合約然後就有現成的技術文檔和代碼,直接集成就可以了

php網站怎麼整合銀聯網上支付?

大概分幾步,

1,你自己的網站把要交易的數據post給銀聯,

2,銀聯處理你post過來的數據,然後用戶輸入一些賬號信息,付款。

3,付款後,銀聯會post交易後的數據給你的網站,(這個地址會在開始你傳給銀聯的的數據裡面)

4,你接受銀聯傳輸回來的數據,自己處理!

注意的是,回調地址有個後台的,還有個前台的,不要搞混亂了!

中國銀聯在線支付接口php開發怎麼做

對方應該有sdk和demo提供的,支付接口的流程都差不多,包括支付寶,網銀,財付通,paypal等流程都一樣。

用戶下單,收集購物車內產品的總價

拼裝支付參數URL跳轉進入支付網關進行支付(這裡會用到支付網關提供的SDK)

支付成功

支付網關服務器會異步發送支付成功的通知到你的“通知URL”,你對過來的參數進行有效性驗證,確保是從支付網關發來的,進行業務邏輯處理,比如設置訂單完成標識等操作;

注意這不是“返回URL”,這一步操作前台支付用戶不會看到。

網關一般在完成支付後,會自動返回我們的網站,進入網站後提示用戶完成支付,並跳轉到相應頁面即可。

親,php銀聯在線支付,沒做過,請求幫助

支付接口現在有第三方的支付接口也有銀行的支付接口。這裡就來介紹php版本銀聯支付接口開發的方法。

銀聯支付,首先要注意二重要的部分:

PHP運行環境是5.4.18以上

開了擴展openssl

開發手冊上面的列子只做參考,因為基本都是錯的。你可以試着去官網下一個demo。。。注意現在銀聯開發,沒有測試密鑰提供,只能在正式環境開發

下面是我用ThinkPHP編寫的一個支付類

/**

* 銀聯支付 v0.1

* @auther:Summerdengwz7788@gmail.com;

* @date:20151202

* **/

class NetPayAction extends BaseAction{

//在類初始化方法中,引入相關類庫

public function _initialize() {

 header(“Content-type:text/html;charset=utf-8”);

 vendor(‘Netpay.util.common’,””,”.php”); //導入加密核心文件夾

 vendor(‘Netpay.util.SecssUtil’,””,”.class.php”); //導入加密核心文件夾

 vendor(‘Netpay.util.Settings_INI’,””,”.php”); //導入加密核心文件夾

 vendor(‘Netpay.util.Settings’,””,”.php”); //導入加密核心文件夾

 $this-securityPropFile= $_SERVER[‘DOCUMENT_ROOT’] . “/ThinkPHP/Extend/Vendor/Netpay/config/security.properties”; //誰知道這是啥,反正他們要我加的

 $this-b2cPaySend = __APP__.”/Index/NetPay/b2cPaySend”;

 $this-b2cRefundSend = __APP__.”/Index/NetPay/b2cRefundSend”;

 $this-b2cQuerySend = __APP__.”/Index/NetPay/b2cQuerySend”;

 $this-;MerBgUrl = __APP__.”/Index/NetPay/MerBgUrl”;

 $this-MerPageUrl = __APP__.”/Index/NetPay/MerPageUrl”;

}

public function index()

{

 $paramArray=array (

   ‘MerId’ = ‘商戶號’,

   ‘MerOrderNo’ = ‘0000001944663232’,

   ‘OrderAmt’ = ‘1’,

   ‘TranDate’ = ‘20151219’,

  ‘TranTime’ =’171248′,

  ‘TranType’ = ‘0001’,

  ‘BusiType’ =’0001′,

  ‘Version’ = ‘20140728’,

  ‘CurryNo’ = ‘CNY’,

  ‘AccessType’ =; ‘0’,

  ‘CommodityMsg’ = ‘測試商品1號’,

  ‘MerPageUrl’ = $this-MerBgUrl,

  ‘MerBgUrl’ =$this-MerPageUrl,

  ‘MerResv’ = ‘MerResv’,

 );

 if (count($paramArray) 0) {

  $dispatchUrl = $this-b2cPaySend;

  $transResvedJson = array();

  $cardInfoJson = array();

  $sendMap = array();

   foreach ($paramArray as $key = $value) {

   if (isEmpty($value)) {

    continue;

   }

   if (startWith($key, “trans_”)) {

     $key = substr($key, strlen(“trans_”));

        $transResvedJson[$key] = $value;

   } else

     if (startWith($key, “card_”)) {

       $key = substr($key, strlen(“card_”));

       $cardInfoJson[$key] = $value;

     } else {

       $sendMap[$key] = $value;

     }

  }

  $transResvedStr = null;

  $cardResvedStr = null;

  if (count($transResvedJson) 0) {

   $transResvedStr = json_encode($transResvedJson);

  }

  if (count($cardInfoJson)  0) {

   $cardResvedStr = json_encode($cardInfoJson);

  }

 $secssUtil = new SecssUtil();

 if (! isEmpty($transResvedStr)) {

  $transResvedStr = $secssUtil-decryptData($transResvedStr);

  $sendMap[“TranReserved”] = $transResvedStr;

  }

 if (! isEmpty($cardResvedStr)) {

   $cardResvedStr = $secssUtil-decryptData($cardResvedStr);

   $sendMap[“card_”] = $cardResvedStr;

  }

  $securityPropFile = $thissecurityPropFile;

  $secssUtil-init($securityPropFile);

  $secssUtil-sign($sendMap);

  $sendMap[“Signature”] = $secssUtil-getSign();

  $_SESSION = $sendMap;

  header(“Location:” . $dispatchUrl);

 }

}

public function b2cPaySend(){

  layout(false);

  $settings = new Settings_INI();

  $settings-oad($this-securityPropFile);

  $pay_url = “”;

  $html = “form name=’payment’ action='{$pay_url}’ method=’POST’ target=’_blank’;”;

  $params = “TranReserved;MerId;MerOrderNo;OrderAmt;CurryNo;TranDate;SplitMethod;BusiType;MerPageUrl;MerBgUrl;SplitType;MerSplitMsg;PayTimeOut;MerResv;Version;BankInstNo;CommodityMsg;Signature;AccessType;AcqCode;OrderExpiryTime;TranType;RemoteAddr;Referred;TranTime;TimeStamp;CardTranData”;

  foreach ($_SESSION as $k =$v) {

   if (strstr($params, $k)) {

     $html .= “input type=’hidden’ name = ‘” . $k . “‘ value ='” . $v . “‘/”;

   }

  }

    $html .= “nput type=’button’ type=’hidden’ value=’提交訂單’ “;

    $html .= “;/from”;

    $this-html = $html;

    $this-display();

}

public function pgReturn(){

 if ($_POST) {

   if (count($_POST)  0) {

    $secssUtil = new SecssUtil();

    $securityPropFile = $thissecurityPropFile;

    $secssUtil-init($securityPropFile);

    $text = array();

    foreach($_POST as $key=$value){

      $text[$key] = urldecode($value);

    }

   if ($secssUtil-verify($text)) {

            //支付成功

     $_SESSION[“VERIFY_KEY”] = “success”;

   } else {

    //支付失敗

     $_SESSION[“VERIFY_KEY”] = “fail”;

   }

  }

  }

 }

}

銀聯支付應該是算比較簡單的!!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/189231.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 08:01
下一篇 2024-11-29 08:01

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python接口自動化測試

    本文將從如下多個方面對Python編寫接口自動化進行詳細闡述,包括基本介紹、常用工具、測試框架、常見問題及解決方法 一、基本介紹 接口自動化測試是軟件測試中的一種自動化測試方式。通…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Python爬蟲流程用法介紹

    本文將介紹Python爬蟲的流程,包括數據採集、數據處理以及數據存儲等方面。如果想要使用Python爬取網站數據,本文將為您提供詳細的指導和實例。 一、數據採集 1、確定目標網站 …

    編程 2025-04-27
  • Jadoor門鎖開發接口接入指南

    本文將從多個方面詳細介紹如何將門鎖接入Jadoor平台的開發接口,方便開發者們快速實現門鎖遠程控制、開鎖記錄查看等功能。 一、Jadoor門鎖開發接口簡介 Jadoor是一款用於密…

    編程 2025-04-27
  • 後端接口設計開發經驗分享

    在受到前端某些限制或特殊需求時,後端接口的設計和開發顯得尤為重要。下面從以下幾個方面進行講述。 一、命名規範 合理的命名規範可以大大提高接口的可讀性和可維護性。以下是一些命名規範的…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27

發表回復

登錄後才能評論