好久没更新了 使用apicloud 开发的app 接通支付宝支付
1.
先操作支付宝 需要先签约支付宝
签约完成审核通过后
有个公钥设置,如果没有就去下载,下载完 注意不要放到有中文的路径 然后点击生成
生成完复制下 放到公钥里面 私钥就是那个rsa_private_key.pem
设置完后去 APIcloud 里
先配置config.xml
.
.
然后到index.html 里面
支付宝支付测试
function aliPay() {
var aliPay = api.require('aliPay');
aliPay.payOrder({
orderInfo: '这里面是需要请求后台接口获取的'
}, function(ret, err) {
api.alert({
title: '支付1结果',
msg: ret.code,
buttons: ['确定']
});
});
};
都配置完了就去后台了
后台代码
建立一个index.php 的文件
public function alipay()
{
require_once 'F://sapp/aop/AopClient.php'; //这俩个是支付宝提供的demo 你可以直接去支付宝上下载就像 记得更换路径支付宝app服务端
require_once 'F://sapp/aop/request/AlipayTradeAppPayRequest.php';
$aop = new \AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
$aop->appId = "appid";
$aop->rsaPrivateKey = '你的私钥';
$aop->format = "json";
$aop->charset = "UTF-8";
$aop->signType = "RSA2";
$aop->alipayrsaPublicKey = '你的公钥匙';
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
$request = new \AlipayTradeAppPayRequest();
//详细
$body=$_POST['body'];
//订单信息
$subject =$_POST['subject'];
//订单号
$out_trade_no = $_POST['out_trade_no'];
//价格
$total_amount =$_POST['total_amount'];
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = "{\"body\":\"$body\","
. "\"subject\": \"$subject\","
. "\"out_trade_no\": \"$out_trade_no\","
. "\"timeout_express\": \"30m\","
. "\"total_amount\": \"$total_amount\","
. "\"product_code\":\"QUICK_MSECURITY_PAY\""
. "}";
$request->setNotifyUrl("回调地址");
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
echo htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。
}
把echo 输出的内容 放到前台里面
这样就成功了!!!!
AopClient.php 代码
如有任何问题请留言