公司要整一个扫码支付然后有个后台能查看交易记录,然后百度搜寻,决定使用laytp2.0框架搭后台。
配置啥的不阐述了,支付宝支付相对微信来说简单一点,就支付,异步回调,同步回调三个方法。
前端代码:
//表单提交
form.on('submit(pay)', function (data) {
var buttonAnim = layui.button.load({elem: '.pay'});
//支付宝
$.ajax({
url: '/payment.alipay/pay',
type: 'post',
dataType: 'json',
contentType: "application/json",
data: JSON.stringify(data.field),
success: function (res) {
window.location.href = res
}
})
buttonAnim.stop();
return false;
});
后端代码:
//支付宝支付
public function pay()
{
Db::startTrans();
try {
/** 初始化 **/
require_once(root_path() . 'extend/PayCore/alipay/aop/AopClient.php');
require_once(root_path() . 'extend/PayCore/alipay/aop/request/AlipayTradeWapPayRequest.php');
$parameter = request()->post();
$amount = $parameter['amount'];
$productName = $parameter['product_name'];
//生成订单
$order = new Order();
$orderSn = $order->createOrder($parameter['user_name'], $parameter['tutor_name'], $parameter['mobile'], $amount, $productName);
$aop = new AopClient;
/** 支付宝网关 **/
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
/** 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/
$aop->appId = 'xxxxxxx';
/** 密钥格式为pkcs1,如何获取私钥请参考:https://opensupport.alipay.com/support/helpcenter/207/201602469554 **/
$aop->rsaPrivateKey = "MIIEvQIBxxxxxxxxxxxx";
/** 支付宝公钥,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602487431 **/
$aop->alipayrsaPublicKey = "MIIBIjANBgxxxxxxxxxxxx";
/** 签名算法类型 **/
$aop->signType = 'RSA2';
/** 请求使用的编码格式 **/
$aop->postCharset = 'utf-8';
/**