public
function
alipay_params_data(){
$data
=
$this
->ApiData();
if
(!
$data
[
'out_trade_no'
]){
systemmess(
'0'
,
'参数错误'
);
}
$out_trade_no
=
$data
[
'out_trade_no'
];
$_biz_data
=
array
();
$_biz_data
[
'body'
] =
$oid_body
;
$_biz_data
[
'subject'
] =
$subject
;
$_biz_data
[
'out_trade_no'
] =
$out_trade_no
;
$_biz_data
[
'timeout_express'
] =
"30m"
;
$_biz_data
[
'total_amount'
] =
$price
;
$_biz_data
[
'product_code'
] =
'QUICK_MSECURITY_PAY'
;
$_biz_data
[
'passback_params'
] =
$_type
;
$bizcontent
= json_encode(
$_biz_data
);
$alipay_config
= C(
'ALIPAY_CONFIG'
);
$return_url
=
'http://'
.
$_SERVER
[
'HTTP_HOST'
].
''
.U(
'Appreturn/notify_alipay'
);
Vendor(
'alipay-appsdk.aop.AopClient'
);
Vendor(
'alipay-appsdk.aop.request.AlipayTradeAppPayRequest'
);
$aop
=
new
AopClient();
$aop
->gatewayUrl =
"https://openapi.alipay.com/gateway.do"
;
$aop
->appId =
$alipay_config
[
'app_id'
];
$aop
->rsaPrivateKey =
$alipay_config
[
'merchant_private_key'
];
$aop
->format =
"json"
;
$aop
->charset =
"UTF-8"
;
$aop
->signType =
"RSA"
;
$aop
->alipayrsaPublicKey =
$alipay_config
[
'alipay_public_key'
];
$request
=
new
AlipayTradeAppPayRequest();
$request
->setNotifyUrl(
$return_url
);
$request
->setBizContent(
$bizcontent
);
$response
=
$aop
->sdkExecute(
$request
);
$json
[
'msg'
] =
'1'
;
$json
[
'state'
] =
'1'
;
$json
[
'text'
] =
$response
;
$json
[
'return_url'
] =
$return_url
;
echo
json_encode(
$json
);
exit
;
}
public
function
notify_alipay(){
$alipay_config
= C(
'ALIPAY_CONFIG'
);
$_post_data
=
$_POST
;
$_sign_type
=
$_post_data
[
'sign_type'
];
$_sign
=
$_post_data
[
'sign'
];
S(
'zfbpost'
.time(),
$_POST
);
M(
'log'
)->add(
array
(
'title'
=>
'支付宝'
,
'content'
=>json_encode(
$_POST
)));
Vendor(
'alipay-appsdk.aop.AopClient'
);
$aop
=
new
AopClient();
$aop
->alipayrsaPublicKey =
$alipay_config
[
'alipay_public_key'
];
$result
=
$aop
->rsaCheckV1(
$_post_data
, NULL,
"RSA"
);
if
(
$result
){
$_type
=
$_post_data
[
'passback_params'
];
$out_trade_no
=
$_post_data
[
'out_trade_no'
];
$trade_no
=
$_post_data
[
'trade_no'
];
$trade_status
=
$_post_data
[
'trade_status'
];
echo
"success"
;
}
else
{
echo
"fail"
.json_encode(
$result
);
}
}