說明:
1.需http://或者https://格式的完整路徑
例:https://您的域名/notify_url.php ,支援ip位址方式。(推薦使用域名)
2.不能加?id=123這類自定義參數
錯誤示例:https://您的域名/notify_url.php?id=123&test=abc
3.必須外網可以正常通路,這個不難了解,在您的異步位址沒有代碼邏輯的情況下,直接通路應該是一個空白頁面并且
http狀态是200(不支援http200以外的狀态)
4.不能有重定向 如:http302
5.使用POST方式接收,請確定伺服器路由已經開放POST通知
錯誤原因:
1.異步位址無法公網通路
2.異步位址代碼傳值錯誤
3.其實已經收到(其實是驗簽失敗傳回為空),但是沒有做日志記錄或者沒有記錄到通知。
建議:大家優先使用雲排查自查 [url]https://openclub.alipay.com/read.php?tid=1132&fid=25[/url]
自查流程:
1.直接通路自己配置的notify_url中的值
檢查notify_url通路狀态(不支援除200以外的狀态) 選擇和伺服器不同域的一台電腦,在chrome浏覽器右鍵「檢 查」- >位址欄輸入notify_url位址->檢視Network中的Status是否是200
如果是http 0 請參考:[url]https://openclub.alipay.com/read.php?tid=516&fid=25[/url]
參考文章:[url]https://openclub.alipay.com/read.php?tid=675&fid=2[/url]
2.檢查自己notify_url傳值.以app支付為例,
java傳值:
public AlipayTradeAppPayResponse pay1() throws AlipayApiException{
//正式環境使用
//AlipayClient client = new DefaultAlipayClient(Config.serverUrl, Config.appId, Config.privateKey, Config.format, Config.charset, Config.alipayPulicKey, Config.signType);
//沙箱環境使用
AlipayClient client = new DefaultAlipayClient(Config.serverUrlDev, Config.appIdDev, Config.privateKeyDev, Config.format, Config.charset, Config.alipayPulicKeyDev, Config.signType);
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//異步位址傳值方式
request.setNotifyUrl("https://www.alipay.com");
request.setBizContent("{" +
""out_trade_no":"4467496464"," +
""subject":"APP服務的請求測試"," +
""total_amount":"0.01"," +
""product_code":"QUICK_MSECURITY_PAY"}");
AlipayTradeAppPayResponse response = client.sdkExecute(request);
System.out.println(response.getBody());
return response;
}
php傳值:
<?php
/**
* APP支付 RSA2簽名方法
*/
require_once 'AopSdk.php';
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = '2017071907813415';
$aop->rsaPrivateKey = '';
$aop->alipayrsaPublicKey='';
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
$date=date("YmdHis");
$arr=range(1000,9999);
shuffle($arr);
$request = new AlipayTradeAppPayRequest();
//異步位址傳值方式
$request->setNotifyUrl("填寫異步位址的值");
$request->setBizContent("{"out_trade_no":"".$date.$arr[0]."","total_amount":0.01,"product_code":"QUICK_MSECURITY_PAY","subject":"app測試"}");
$result = $aop->sdkExecute($request);
print_r(htmlspecialchars($result));
?>
錯誤傳值方式(部分同學錯誤認為是填寫在應用下面授權回調位址中)
3.其實已經收到誤以為沒有收到通知請參考驗簽失敗文章檢查 :[url]https://openclub.alipay.com/read.php?tid=1598&fid=46[/url]
4.如果還是沒有解決你的問題提問請按照下方正确格式提問(資訊不完整不回複)
正确提問方式:使用環境(沙箱還是正式環境)+appid+接口名稱(中文+英文)+異步位址(notify_url的值)+收不到異步通知的交易号+訂單号
如果有什麼疑問歡迎文章下方追問,如果解決了你的問題歡迎評論點贊支援