我不完全确定这个问题有多受欢迎,或者是否会得到任何回应,因为这个问题与中国开发者的关系比其他开发者更多,但是,我目前正在为支付宝集成服务器端脚本以接收移动成功请求字符串。
我已经成功地为我的手机用户(通过在可怕的支付宝 API 中眯起眼睛)提供他们向支付宝付款所需的字符串。它遵循以下格式[可识别信息保留]:
_input_charset=\"utf-8\"&body=\"Order Number: 20141121_80\"&it_b_pay=\"30m\"¬ify_url=\"http://somePublicFacingIP:8080/index.php?route=payment/alipay/callback\"&out_trade_no=\"80\"&partner=\"2088611100000000\"&payment_type=\"1\"&seller_id=\"account@website.com\"&service=\"mobile.securitypay.pay\"&subject=\"Order Number: 20141121_80\"&total_fee=\"10.01\"
上面的字符串被 Android/iOS API 在他们的支付宝支付类中消费,然后用私钥签名,然后发送到支付宝。支付宝收到他们的请求后,会验证我们的参数字符串,并返回 6000 - 9000 范围内的状态码。
到目前为止,我们已经收到resultStatus=9000
了返回给手机用户的字符串,这表明支付成功(通过检查支付宝的钱包历史,我们确实看到我们已经支付了)
result = {
memo = "";
result = "_input_charset=\"utf-8\"&body=\"\U4ea4\U6613\U53f7 20141124_80\"&it_b_pay=\"30m\"¬ify_url=\"http://publicFacingIP:8080/index.php?route=payment/alipay/callback\"&out_trade_no=\"80\"&partner=\"208861100000000\"&payment_type=\"1\"&seller_id=\"account@website.com\"&service=\"mobile.securitypay.pay\"&subject=\"\U65b0\U5143\U7d20\U7f51\U4e0a\U70b9\U9910 - \U8ba2\U5355\U7f16\U53f7 20141124_87\"&total_fee=\"0.01\"&success=\"true\"&sign_type=\"RSA\"&sign=\"reallyLongSignedString\"";
resultStatus = 9000;
}
这是一切停止工作的地方:
支付宝理论上应该向我们发送一个结果字符串(比上面显示的参数更多)notify_url
,我们在输入参数中指定了我们的服务器需要验证的是支付宝。这个结果字符串也将用于更新我们的后端,以便我们知道订单确实已经成功。
出于某种原因,支付宝根本没有将结果字符串发送到我们指定的notify_url
.
我试过的:
将一个
var_dump()
POST 输入放到payment/alipay/callback
. 没有收到任何请求。我尝试过卷曲到面向公众的 IP URL
payment/alipay/callback
,我知道它正在工作,因为我正在接收请求,因此排除了我的callback
URL 是否正常工作。把我的头发拉出来。我再次测试付款,我可以确认拔掉头发并没有解决问题。
正如中国开发者经常说的那样,有没有“大神”(或大师)可以给我一些建议和/或解决方案?