支付寶App支付全解析

2021-08-21 21:34:20 字數 3433 閱讀 4663

系列五 支付寶即時到賬支付全解析

系列七 支付寶退款全解析

系列八 支付寶開放平台支付更新公升級全解析

登入支付寶商家服務,進入移動支付。簽約。

簽約通過後,一共需要以下引數可以完成支付:

partnerid

sellerid

rsa私鑰

支付寶公鑰

1.1 partnerid

商戶合作者身份。

進入我的商家服務

獲取pid

登入支付寶賬戶,一般為郵箱或者手機號

1.3 rsa私鑰和支付寶公鑰

rsa私鑰公鑰是自己生成,然後將公鑰上傳支付寶,私鑰自己儲存。

詳見官網文件

參考支付寶移動支付接入文件

主要幾個步驟:

生成支付引數(放在服務端,需要生成簽名)

呼叫客戶端sdk發起支付

服務端非同步接收支付結果

2.1 生成支付引數

$partner = "";  //你的pid

$seller_id = ""; //seller_id

$subject = "支付寶移動支付測試"; //交易主題

$body = "支付寶移動支付測試detail"; //交易詳細說明

$total_fee = "0.01"; //支付金額 單位是元

$out_trade_no = ""; //自己業務系統生成的交易no,可以唯一標識

$rsa_path = ""; //rsa私鑰路徑

$notify_url = ""; //接收支付結果通知url

$data = array();

$data['service'] = "mobile.securitypay.pay";

$data['partner'] =$partner;

$data['_input_charset'] = "utf-8";

$data['notify_url'] = $notify_url;

$data['out_trade_no'] = $out_trade_no;

$data['subject'] = $subject;

$data['payment_type'] = "1";

$data['seller_id'] = seller_id;

$data['total_fee'] = $total_fee;

$data['body'] = $body;

//簽名

$unsign_str =createlinkstring(argsort($data));

$sign =rsasign($unsign_str, $rsa_path);

$sign = urlencode(mb_convert_encoding($sign, "utf-8")); //需要進行utf8格式轉換

$pay_params = $unsign_str . "&sign=" . $sign . "&sign_type=rsa";

一些函式:

/**

* 把陣列所有元素,按照「引數=引數值」的模式用「&」字元拼接成字串

* @param $para mixed 需要拼接的陣列

* @return string 拼接完成以後的字串

*/public static function createlinkstring($para)

$arg.=$key."=".$val."&";

}

//去掉最後乙個&字元

$arg = substr($arg,0,count($arg)-2);

//如果存在轉義字元,那麼去掉轉義

if(get_magic_quotes_gpc())

return $arg;

}/**

* 陣列排序 按照ascii字典公升序

* @param $para mixed 排序前陣列

* @return mixed 排序後陣列

*/public static function argsort($para)

/** * rsa簽名

* @param $data string 待簽名資料

* @param $private_rsa_path string 使用者私鑰位址

* @return mixed

* 失敗:false

* 成功:簽名結果

*/public static function rsasign($data, $private_rsa_path)

openssl_sign($data, $sign, $res);

openssl_free_key($res);

//base64編碼

$sign = base64_encode($sign);

return $sign;

}

注:尤其要注意通知結果驗證成功後要能正確處理重複通知,放置多次發貨造成資金損失開啟其中服務端demo將裡面驗證通知部分取出來使用。

$$alipay_partnerid = "";  //你的pid

$$alipay_public_key_path = ""; //支付寶公鑰路徑

$alipaynotify = new alipaynotify($alipay_partnerid, $alipay_public_key_path);

$verify_result = $alipaynotify->verifynotify();

if(!$verify_result)

//成功接收並驗證了通知

echo("success");

if($_post['trade_status'] !== "trade_success" && $_post['trade_status'] !== "trade_finished") else if($_post['trade_status'] === "trade_closed" && $_post['refund_status'] === "refund_success") else

}//支付成功處理 發貨

//todo

客戶端收到同步支付結果後建議一段時間內輪詢檢查服務端,獲取服務端的結果,支付最終狀態以服務端為準

APP支付寶支付

aop new aopclient aop gatewayurl aop rsaprivatekey 請填寫開發者私鑰去頭去尾去回車,一行字串 aop format json aop charset utf 8 aop signtype rsa2 aop alipayrsapublickey 請填寫...

支付寶app支付

第一步 返回訂單資訊給前端,令其呼叫支付寶。public string zfb payrequest catch alipayapiexception e map.put orderstring orderinfo map.put result 1 string jsonstring json.to...

APP接入支付寶支付

1.把支付寶的.aar檔案匯入到應用工程的libs目錄下 2.在工程主專案的build.gradle中,新增下面的內容,將libs目錄作為依賴倉庫 dependencies資源匯入就完成了 然後在清單檔案新增如下許可權 android.permission.internet android.perm...