系列五 支付寶即時到賬支付全解析
系列七 支付寶退款全解析
系列八 支付寶開放平台支付更新公升級全解析
登入支付寶商家服務,進入移動支付。簽約。
簽約通過後,一共需要以下引數可以完成支付:
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...