支付寶上的伺服器怎麼用
Ⅰ 激活支付寶服務窗開發模式運行php的伺服器怎麼配置
你只需要下載wamp或xampp然後運行安裝即可擁有一個PHP的運行環境了.
Ⅱ 銀聯在線和支付寶,android應用怎麼調用
一、 支付寶平台的集成
在技術集成之前,商戶需要在https://ms.alipay.com進行注冊,並簽約安全支付服務。簽約成功後可獲取支付寶分配的合作商戶ID(PartnerID),賬戶ID(SellerID),調用介面時使用。
支付細節的實現,主要通過支付寶提供的一個支付安全服務安裝包alipay_plugin_20120428msp.apk,首次使用,首先檢查是否安裝此插件,沒有會提示安裝。具體的支付細節,在這個插件內完成。大部分的支付平台也都是採用的這種方式。
調用支付寶的介面進行支付,主要有以下幾個步驟
1. 將商戶ID,收款帳號,外部訂單號,商品名稱,商品介紹,價格,通知地址封裝成訂單信息
2. 對訂單信息進行簽名
3. 將訂單信息,簽名,簽名方式封裝成請求參數
4. 調用pay方法。
主要流程圖如下:
支付介面pay方法的調用如下:
。。。
// start pay for this order.
// 根據訂單信息開始進行支付
try {
// prepare the order info.
// 准備訂單信息
String orderInfo = getOrderInfo(position);
// 這里根據簽名方式對訂單信息進行簽名
String signType = getSignType();
String strsign = sign(signType, orderInfo);
Log.v("sign:", strsign);
// 對簽名進行編碼
strsign = URLEncoder.encode(strsign);
// 組裝好參數
String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&"
+ getSignType();
Log.v("orderInfo:", info);
// start the pay.
// 調用pay方法進行支付
MobileSecurePayer msp = new MobileSecurePayer();
boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY,this);if (bRet) {
// show the progress bar to indicate that we have started
// paying.
// 顯示「正在支付」進度條
closeProgress();
mProgress = BaseHelper.showProgress(this,null, "正在支付",false,
true);
} else
;
} catch (Exception ex) {
Toast.makeText(AlixDemo.this, R.string.remote_call_failed,
Toast.LENGTH_SHORT).show();
}
。。。
/**
* 向支付寶發送支付請求
*
* @param strOrderInfo
* 訂單信息
* @param callback
* 回調handler
* @param myWhat
* 回調信息
* @param activity
* 目標activity
* @return
*/
public boolean pay(final String strOrderInfo,final Handler callback,
final int myWhat, final Activity activity) {
if (mbPaying)
return false;
mbPaying = true;//
mActivity = activity;// bind the service.
// 綁定服務
if (mAlixPay ==null) {
// 綁定安全支付服務需要獲取上下文環境,
// 如果綁定不成功使用mActivity.getApplicationContext().bindService
// 解綁時同理
mActivity.getApplicationContext().bindService(
new Intent(IAlixPay.class.getName()),mAlixPayConnection,
Context.BIND_AUTO_CREATE);
}
// else ok.// 實例一個線程來進行支付
new Thread(new Runnable() {
public void run() {
try {
// wait for the service bind operation to completely
// finished.
// Note: this is important,otherwise the next mAlixPay.Pay()
// will fail.
// 等待安全支付服務綁定操作結束
// 注意:這里很重要,否則mAlixPay.Pay()方法會失敗
synchronized (lock) {
if (mAlixPay ==null)
lock.wait();
}// register a Callback for the service.
// 為安全支付服務注冊一個回調
mAlixPay.registerCallback(mCallback);// call the MobileSecurePay service.
// 調用安全支付服務的pay方法
String strRet =mAlixPay.Pay(strOrderInfo);
BaseHelper.log(TAG,"After Pay: " + strRet);// set the flag to indicate that we have finished.
// unregister the Callback, and unbind the service.
// 將mbPaying置為false,表示支付結束
// 移除回調的注冊,解綁安全支付服務
mbPaying = false;
mAlixPay.unregisterCallback(mCallback);
mActivity.getApplicationContext().unbindService(
mAlixPayConnection);// send the result back to caller.
// 發送交易結果
Message msg = new Message();
msg.what = myWhat;
msg.obj = strRet;
callback.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();// send the result back to caller.
// 發送交易結果
Message msg = new Message();
msg.what = myWhat;
msg.obj = e.toString();
callback.sendMessage(msg);
}
}
}).start();return true;
}調用了支付服務之後,有兩種方式返回交易結果:
1. 支付結果作為介面返回的字元串返回。返回的參數包含在result字元串中,具體再進行解析。
2. 支付寶伺服器通知。商戶需要提供一個http協議的介面,包含在參數里傳遞給安全支付,即notify_url。支付寶伺服器在支付完成後,會用POST方法調用notufy_url,以xml為數據格式傳輸支付結果。需要注意的是,商戶伺服器收到支付寶發的通知之後,需要返回一個純字元串「success」,不然支付寶的伺服器會持續調用七次回調url提供的介面。
集成需要的交易費用方面0-1萬元內是2.5%的費率,1-10萬是2.4%,10-100萬是2.2%,100萬以上2.0%。
PS :親測
AliPayInfo aliPayInfo=new AliPayInfo();
AliPay aliPay=new AliPay((Activity)OtherPayDlg.this.mContext, mHandler);
aliPay.pay(aliPayInfo.toString());
OtherPayDlg.this.dismiss();
出現問題一:按照說明文檔導入alipay.jar 出現AliPay 找不到,然後項目根目錄下新建一個 libs文件夾,把要加的包放到這個目錄下,右鍵 Build Path -> Use as source folder
成功可以引用,但是沒有彈出界面二、 財付通平台的集成
財付通的集成和支付寶的非常相似(騰訊的傳統?→_→)。財付通也是提供了一個財付通安全支付服務應用TenpayService.apk用於處理交易的細節。對於此支付應用,財付通和支付寶的使用方式是一樣的。一種是捆綁預置,即打包在assets目錄下,另一種是放到自己的伺服器中,通過檢查更新的方式動態載入。實際集成中可採用二者結合方式,初次使用使用預置apk,之後檢查更新動態下載。
但是調用支付介面之前,增加了一個獲取tokenid的過程,tokenid用於同財付通service進行交互。過程如下:
1. 用戶在商戶APP 選擇商品,使用財付通支付
2. 商戶APP向商戶server 請求使用財付通支付
3. 商戶server按照「支付初始化介面」的要求組織數據請求財付通「支付初始化介面」,接收初始化成功後返回的tokenid
4. 商戶server將生成的tokenid 返回給商戶APP
5. 商戶APP使用tokenid 調用財付通支付service
6. 財付通支付service 在驗證tokenid 後向用戶展示支付中心,顯示訂單信息及相關用戶信息
7. 用戶在支付中心輸入支付密碼執行支付
8. 財付通支付service 向財付通後台server 請求執行支付,並實時接收支付結果
9. 支付成功後財付通支付service 向用戶展示支付成功UI,在用戶點擊「返回商戶網站」後回調商戶App
10. 財付通後台server 在支付成功後會通過「支付成功通知介面」在後台通知商戶server 支付狀態。
接收支付介面返回結果方面,財付通對於方法返回值,不是直接返回的,而是通過handler回調,handler和msgId作為一個參數傳入介面,支付介面pay()方法的返回值只是個true false,用於區分調用成功或者失敗。其實跟淘寶的方式大同小異。對於notify_url,是財付通是通過get方式調用回調url,只返回支付成功的訂單。同樣的,商戶伺服器在接收到財付通的調用之後,需要返回純字元串「success」「fail」表示處理成功或失敗。
調用支付介面的代碼如下:
//構造支付參數
HashMap<String, String> payInfo = new HashMap<String, String>();
payInfo.put("token_id",mTokenId); //財付通訂單號token_id
payInfo.put("bargainor_id","1234567890"); //財付通合作商戶ID,此為演示示例
// payInfo.put("order_type", "1");
payInfo.put("caller","com.tenpay.android.appDemo");//去支付
tenpayHelper.pay(payInfo,mHandler, MSG_PAY_RESULT);
財付通的服務費率是1%,另外有相關的套餐可以優惠。
三、 易寶支付平台集成
與支付寶和財付通不同的是,易寶集成時,並沒有提供一個支付應用apk,只有一個jar包。是一個library project。因為在集成時,需要在manifest文件裡面聲明支付頁面的activity。同時在調用支付頁面時,需要用startActivityForResult方式進入,支付結果會通過onActivityResult方法返回。易寶同樣支持服務端回調,但比較糾結的是,易寶的服務端回調url,不能在代碼中傳入,需要在易寶的網站進行配置。只有支付成功時才會觸發此回調,以get方式調用。
調用支付介面的代碼如下:其中customerNumber參數是簽約之後才能獲取到的。requestId為調用方自定義的訂單流水號。
private void startPay(String customerNumber, String chennal) {
String amount = etAmount.getText().toString();
String proctName = etProctName.getText().toString();
String proctDesc = etProctDesc.getText().toString();if(TextUtils.isEmpty(proctName) || TextUtils.isEmpty(amount)) {
Toast.makeText(YeepayExampleActivity.this,"", Toast.LENGTH_SHORT);
}Intent intent = new Intent(getBaseContext(), YeepayPlugin.class);
intent.putExtra("customerNumber", customerNumber);Random random = new Random();
String time = "" + System.currentTimeMillis();
String requestId = time + random.nextInt() % 10000;intent.putExtra("requestId", requestId);
intent.putExtra("amount", amount);
intent.putExtra("proctName", proctName);
intent.putExtra("time", time);
intent.putExtra("proctDesc", (proctDesc ==null) ? "" : proctDesc);
intent.putExtra("support", chennal);
intent.putExtra("environment","ENV_TEST" );
StringBuilder builder = new StringBuilder();
builder.append(CUSTOMER_NUMBER).append("$");
builder.append(requestId).append("$");
builder.append(amount).append("$");
builder.append(proctName).append("$");
builder.append(time);String hmac = YeepayUtils.hmacSign(builder.toString(),KEY);Log.e("YeepayExampleActivity","hmac" + hmac);intent.putExtra("hmac", hmac);
startActivityForResult(intent, 200);
}
易寶集成後的費率需要和易寶的客戶經理面談決定
四、 銀聯在線支付集成
銀聯的支付應用同支付寶和財付通相同,採用的是獨立apk的方式提供服務。調用支付介面採用的startActivity的方式,相關參數通過bundle傳遞,調用示例如下:
bundle.putBoolean(USE_TEST_MODE,true);bundle.putString(SP_ID,"0009");
bundle.putString(SECURITY_CHIP_TYPE,null);
bundle.putString(SYS_PROVIDE,"00000001");
bundle.putString(PAY_DATA, payData);
…
Intent startIntent = new Intent();
// startIntent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startIntent.putExtras(bundle);
startIntent.setClassName(UPPayUtils.PACKAGE_NAME,
UPPayUtils.ACTIVITY_NAME);
// activity.startActivityForResult(startIntent, UPPayUtils.STARTE_UPPAY);
activity.startActivity(startIntent);
與以上三種支付平台不同的是,銀聯支付介面的返回值是通過廣播的形式發送的。不支持商戶服務端的回調url。
Ⅲ 支付寶在離線的時候也能用付款碼付款,是什麼原理能被破解嗎
身邊的高 科技 如果你習以為常了,你就會覺得理所應當,但是如果有人深究起來,問你這高 科技 裡面到底是什麼原理,大部分人還真答不上來,就像支付寶離線付款技術。
最近和同事閑聊,聊到了支付寶離線付款的問題,同事顯然對這項技術顯得有點不可理解,他的疑問我總結起來主要是這個:
筆者不是支付寶的工作人員,更不是數學或者計算機領域的專家,講不出那麼多高深莫測的專業知識,對這方面知識只是「略懂...略懂...」。但這也正是筆者的優勢所在啊,正因為「略懂」,才使得筆者只能用一種平易近人通俗易懂的語言給大家解釋這種 科技 。
筆者試圖截一個支付寶的付款碼的圖,發現支付寶提示「無法抓取截圖」,可能是為了安全考慮特意禁止。筆者就只好截了一個微信付款碼的圖(和支付寶付款碼的原理是一樣的),大家用掃碼工具掃一下就會發現, 它其實就是一串很長的數字 ,大概1分鍾就變化一次。
我們把離線付款的過程仔細的回想一下:商家在收款系統里設置好金額——我們打開支付寶——出示付款碼——商家掃碼——過了幾秒鍾商家收到信息「付款成功」。這整個過程用戶都沒有輸入過付款金額。既然沒有付款信息, 那付款碼里應該就只有用戶的賬號信息了 。
付款碼里只有用戶的賬號信息,但是 用戶的賬號信息應該固定的,然而二維碼里隱藏的數字卻是隨時間變化的 。那該如何做到這一點呢?
這一點也很簡單啊,用我們固定的賬號信息去和一個隨時間變化的數字序列做運算就行了。筆者這里做了一個簡單的用戶信息加密方案:
1、我們的賬戶信息就是「123」,支付寶伺服器需要的就是這個信息。
2、用戶在當初剛在手機上裝支付寶APP的時候就和支付寶的伺服器約定了 數字序列 規則:2018.12.28.12.01分的時候數字序列的值為1,每過1秒數字序列的值加2.........
3、那我們的賬戶信息「123」來 乘以當前時間數字序列的值 ,得到一個隨時間變化的包含賬戶信息的數字串,用這個數字串做個二維碼,就成了「付款碼」。
4、支付寶伺服器通過商家的網路得到了用戶的二維碼信息,那它只用那二維碼里的數字串和當前時間數字序列的值作個反向運算就得到用戶的賬戶信息啦。
這個付款碼隱藏用戶信息的方法似乎太過低劣了,規律太容易找,隨便就能被人破解。但是這就是支付寶付款碼的秘密,就是這么簡單。
下面的問題就是找一個更好的數字序列來和用戶的賬號信息作運算,這個數字序列應該有一個公式可循,數字序列里數字又似乎是隨機的、找不到任何規律,這樣才能真正的隱藏用戶的賬號信息。
數學上還真存在這樣一個數字序列,它就有三個優點,恰好是離線支付所需要的三個條件:
1、這個數字序列有一個公式,約定一個初始值和一個開始時間,通過公示就得得到任意時間點的值。
2、這個數字序列里的那些數字根本沒規律可循,看起來就像是隨機的。
3、在相同的公式下,用不同的初始值,得到的數字序列根本不存在平移關系。
第三點怎麼理解呢,假設公式很簡單,初始值是1每次加2,得到的數字序列就是 1、3、5、7;如果初始值為2每次加2,得到的序列就是2、4、6、8。兩個序列之間就是有平移關系的。
筆者在讀書的研究過一個叫做「混沌映射」的數字序列,它就是一個這樣的牛❌的數字序列。你不用懂這些復雜的數字序列是怎麼來的,只需要知道有這么個數字序列並且有三個優點就行了。
筆者很直接的告訴你,幾乎不能破解。付款碼的保密性就是依賴於這個牛❌的數字序列,只要在安裝支付寶APP時和支付寶伺服器約定的初始值不泄露,那就根本不可能破解這個數字序列。
如果是用1、3、5、7這樣的數字序列來隱藏賬戶信息,那接下來的值很容易就破解了,那就是9。
但是本文中介紹的那種牛❌數字序列是不可能破解的, 即使知道公式和後面某幾個時間上的值,你也得不到後面將會出現的數值。
Ⅳ 支付寶怎麼連接不上伺服器了。。
支付寶方回應,5.27日這天,由於杭州市蕭山區某地光纖被挖斷,造成目前少部分用戶無法使用支付寶,運營商蜀黍正在搶修,支付寶攻城獅正在緊急將用戶請求切換至其他機房,受影響的用戶正在逐步恢復。您的資金安全並不會因此受到任何影響。如果出現交易信息不同步的情況,在修復後會恢復同步。請大家放心。
現在已經正常了。
Ⅳ 支付寶的支付流程是什麼
首先,簡單來說,支付寶的支付有兩種方式,一種是「你掃我」,即打開自己的付款碼讓商家掃。另一種是「我掃你」,即開打支付寶掃一掃,掃商家的收款碼,然後輸入支付的金額,然後確認按密碼或是指紋或是刷臉。另外,還是一種是網上支付,即在網上購物時,選擇用支付寶支付,頁面跳轉,確認信息無誤後輸密碼,或者是指紋確認付款。
拓展資料:
支付寶(中國)網路技術有限公司成立於2004年,是國內的第三方支付平台,致力於為企業和個人提供「簡單、安全、快速、便捷」的支付解決方案。支付寶公司從2004年建立開始,始終以「信任」作為產品和服務的核心。旗下有「支付寶」與「支付寶錢包」兩個獨立品牌。自2014年第二季度開始成為當前全球最大的移動支付廠商。
支付寶與國內外180多家銀行以及VISA、MasterCard國際組織等機構建立戰略合作關系,成為金融機構在電子支付領域最為信任的合作夥伴。
參考資料:支付寶-網路
Ⅵ 支付寶檢測伺服器設置怎麼處理啊
沒有搞懂你的意思??? 你能說清楚點嗎?
Ⅶ 支付寶上面買的伺服器怎麼打開
1.手機解鎖後,在主題界面點擊打開支付寶APP。
2.進入支付寶界面後,點擊右下角的我的選項。
3.進入支付寶我的界面後,點擊最底部的去商家版選項。
4.切換到商家版後,點擊商家服務選項。
Ⅷ ios支付寶支付怎麼獲取伺服器
如果忘記了支付寶的支付密碼,可以登錄您的「支付寶賬戶—我的支付寶 —我的賬戶—安全信息」,點擊「找回支付密碼」的按鈕,確認支付寶賬戶,有以下三種方法找回密碼: 一、密碼保護問題找回密碼:適用於未加入手機動態口令,且有設置過密碼保護問題的賬戶。 二、證件號找回密碼:適用於未加入手機動態口令,且賬戶可用余額小於等於200元的賬戶,在密碼保護問題輸入錯誤後或綁定手機但未設置過密碼保護問題的情形。 三、手機找回密碼:適用於手機綁定的賬戶。 注意:點擊找回登錄密碼或者支付密碼,密碼保護問題請仔細輸入,最多隻能輸入5次。查看具體流程(添加鏈接:help/support/help_detail.htm?help_id=3202)
Ⅸ 怎麼用支付寶轉賬
支付寶的支付流程:
1:商戶客戶端請求後台伺服器獲取簽名後的訂單信息
2:後台伺服器返回給客戶端簽名後的信息
3:客戶端調用支付寶客戶端的支付介面
4:支付寶客戶端向支付寶服務端發送支付請求
5:支付寶服務端完成支付
6:向支付寶客戶端返回支付結果
7:支付寶客戶端將支付結果顯示給客戶端
8:客戶端將支付結果返回給伺服器進行驗簽,解析
9:伺服器將最終支付結果返回給客戶端
10:客戶端將支付結果顯示給用戶
11:支付寶服務端非同步發送支付通知給伺服器
12:伺服器響應支付寶服務端的通知
簡易流程:
1:伺服器生成前面後的訂單信息返回給客戶端
2:客戶端調用支付介面,並獲取介面的支付結果
3:同步支付結果給伺服器進行驗簽,解析
4:伺服器將支付結果返回給客戶端,並展示給用戶
5:支付寶非同步向伺服器發送支付通知
6:伺服器(修改訂單狀態並)響應支付寶的通知。
Ⅹ php 5.3.13怎麼使用支付寶RSA2
配置開發者信息「私鑰」And「App_id」
/*配置信息*/
//支付寶分配給開發者的應用ID
$app_id='';
//開發者私鑰,為這里填入方便,去頭、去尾、去換行字元串私鑰,私鑰處理放在簽名方法內。
$private_key='';
//商戶生成簽名字元串所使用的簽名演算法類型,目前支持RSA2和RSA,推薦使用RSA2
$sign_type='RSA2';
/*配置信息*/
2.組裝部分請求參數:根據介面文檔組裝參數app_id、method、format、timestamp、charset、version、notify_url、sign_type
/*組裝請求參數部分start*/
//支付寶分配給開發者的應用ID
$params['app_id']=$app_id;
//介面名稱
$params['method']='alipay.trade.app.pay';
//僅支持JSON
$params['format']='json';
//發送請求的時間,格式"yyyy-MM-ddHH:mm:ss"
$params['timestamp']=date("Y-m-dH:i:s");
//請求使用的編碼格式,如utf-8,gbk,gb2312等
$params['charset']='UTF-8';
//調用的介面版本,固定為:1.0
$params['version']='1.0';
//支付寶伺服器主動通知商戶伺服器里指定的頁面http/https路徑。建議商戶使用https
$params['notify_url']='';
//商戶生成簽名字元串所使用的簽名演算法類型,目前支持RSA2和RSA,推薦使用RSA2
$params['sign_type']=$sign_type;
/*組裝請求參數部分end*/
3.組裝業務參數json格式,並填充在$params數組中
/*組裝業務參數json*/
//對一筆交易的具體描述信息。如果是多種商品,請將商品描述字元串累加傳給body。
$bizcontent['body']='非sdk原生php服務端生成請求訂單';
//商品的標題/交易標題/訂單標題/訂單關鍵字等。
$bizcontent['subject']='php代碼示例';
/*生成隨機數作為外部訂單號start*/
$date=date("YmdHis");
$arr=range(1000,9999);
shuffle($arr);
$out_trade_no=$date.$arr[0];
/*生成隨機數作為外部訂單號end*/
//商戶網站唯一訂單號
$bizcontent['out_trade_no']=$out_trade_no;
//設置未付款支付寶交易的超時時間,一旦超時,該筆交易就會自動被關閉。當用戶進入支付寶收銀台頁面(不包括登錄頁面),會觸發即刻創建支付寶交易,此時開始計時。取值范圍:1m~15d。m-分鍾,h-小時,d-天,1c-當天(1c-當天的情況下,無論交易何時創建,都在0點關閉)。該參數數值不接受小數點,如1.5h,可轉換為90m。
$bizcontent['timeout_express']='10m';
//訂單總金額,單位為元,精確到小數點後兩位,取值范圍[0.01,100000000]
$bizcontent['total_amount']='0.01';
//銷售產品碼,商家和支付寶簽約的產品碼
$bizcontent['proct_code']='QUICK_MSECURITY_PAY';
//商品主類型:0—虛擬類商品,1—實物類商品註:虛擬類商品不支持使用花唄渠道
$bizcontent['goods_type']='0';
//公用回傳參數,如果請求時傳遞了該參數,則返回給商戶時會回傳該參數。支付寶會在非同步通知時將該參數原樣返回。本參數必須進行UrlEncode之後才可以發送給支付寶
$bizcontent['passback_params']='spicy%3d%e8%87%aa%e5%ae%9a%e4%b9%89%e5%8f%82%e6%95%b01%26custom%3d%e8%87%aa%e5%ae%9a%e4%b9%89%e5%8f%82%e6%95%b02';
$biz_content=json_encode($bizcontent,JSON_UNESCAPED_UNICODE);
/*組裝業務參數json*/
//將業務參數填充在請求參數內
$params['biz_content']=$biz_content;
4.排序簽名得到sign,並填充在$params數組中「簽名方法請往下翻」
//排序
ksort($params);
//調用簽名方法得到sign填入請求參數
$params['sign']=sign($params,$params['sign_type'],$private_key);
5.將參數urlencode輸出查看,列印出來的參數可以直接放在客戶端使用
//htmlspecialchars是為防止瀏覽器將參數中的「×」和「¬」轉義
echohtmlspecialchars(http_build_query($params));
工具方法:簽名方法和檢查是否為空方法
/**
*簽名函數
*
*@paramarray$params請求參數數組
*@paramstring$signType簽名方式
*@paramstring$private_key為了方便只要填一行字元串
*@returnstring返回類型
*/
functionsign($params,$signType,$private_key){
$stringToBeSigned="";
$i=0;
//將數組使用&符號拼接
foreach($paramsas$k=>$v){
if(false===checkEmpty($v)&&"@"!=substr($v,0,1)){
if($i==0){
$stringToBeSigned.="$k"."="."$v";
}else{
$stringToBeSigned.="&"."$k"."="."$v";
}
$i++;
}
}
unset($k,$v);
//私鑰處理
$res="-----BEGINRSAPRIVATEKEY-----".PHP_EOL.wordwrap($private_key,64,PHP_EOL,true).PHP_EOL."-----ENDRSAPRIVATEKEY-----";
($res)ordie('您使用的私鑰格式錯誤,請檢查RSA私鑰配置');
//
if("RSA2"==$signType){
openssl_sign($stringToBeSigned,$sign,$res,OPENSSL_ALGO_SHA256);
}else{
openssl_sign($stringToBeSigned,$sign,$res);
}
returnbase64_encode($sign);
}
/**
*檢查是否為空
*
*@paramstring$value請求參數數組
*@returnbool返回類型
*/
functioncheckEmpty($value){
if(!isset($value))
returntrue;
if($value===null)
returntrue;
if(trim($value)==="")
returntrue;
returnfalse;
}