您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.1.3整合支付宝app支付服务端demo
发布时间:2017-06-13 11:34:09编辑:雪饮阅读()
thinkphp调用示例:
//生成支付宝支付app端调起请求字符串
public function alipayGetString(){
$subject=I("post.subject");
$total_amount=I("post.total_amount");
$total_amount=intval($total_amount);
$out_trade_no=I("post.out_trade_no");
$subject="dd";
$total_amount=0.01;
$out_trade_no=time();
$msg=1;
$error="";
if($subject==""){$msg=0;$error="subject is null";}
else if($total_amount<0.01 || $total_amount>100000000){$msg=0;$error="订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]";}
else if($out_trade_no==""){$msg=0;$error="out_trade_no is null";}
else{
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = C("alipayappId");
$aop->rsaPrivateKey = C("alipayrsaPrivateKey");
$aop->alipayrsaPublicKey=C("alipayrsaPublicKey");
$aop->apiVersion = '1.0';
$aop->postCharset='utf-8';
$aop->format='json';
$aop->signType = 'RSA2';
$request = new AlipayTradeAppPayRequest();
$request->setNotifyUrl("http://".$_SERVER["SERVER_NAME"]."/alipay/notify_url.php");
$request->setBizContent("{\"out_trade_no\":\"".$out_trade_no."\",\"total_amount\":$total_amount,\"product_code\":\"QUICK_MSECURITY_PAY\",\"subject\":\"$subject\"}");
$result = $aop->sdkExecute($request);
}
echo json_encode(array("msg"=>$msg,"error"=>$error,"data"=>$result));
}
常见错误:
ali38173:如果是这样,有可能你是使用的是官方sdk而不是本demo,官方sdk坑挺多。
ali40247:如果是这样,那么你有可能有参数的值有问题。
1、异步回调地址不允许有"?"的后缀,如?s=.....绝对地址只能到达.php然后就结束
2、该异步回调中默认使用rsa效验,如果你使用的是rsa2则请修改为rsa2效验,只需要修改下函数名即可。
注意:在异步通知的脚本中
程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
demo下载:
关键字词:支付宝,app支付,php