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 );
}
}
|