新しいバージョンの Alipay 署名検証はすべてパッケージ化されており、設定して呼び出すだけで済みます
public function pay(){ //商户订单号,商户网站订单系统中唯一订单号,必填 $out_trade_no = '27201'.date('YmdHis',time()); //订单名称,必填 $proName = trim($_POST['WIDsubject']); //付款金额,必填 $total_amount = '0.01';//trim($_POST['WIDtotal_amount']); //商品描述,可空 $body = '27201';//trim($_POST['WIDbody']); Vendor('Alipay.aop.AopClient'); Vendor('Alipay.aop.request.AlipayTradePagePayRequest'); //请求 $c = new \AopClient(); $config = C('alipay'); $c->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $c->appId = $config['app_id']; $c->rsaPrivateKey = $config['merchant_private_key']; $c->format = "json"; $c->charset= "UTF-8"; $c->signType= "RSA2"; $c->alipayrsaPublicKey = $config['alipay_public_key']; $request = new \AlipayTradePagePayRequest(); $request->setReturnUrl($config['return_url']); $request->setNotifyUrl($config['notify_url']); $request->setBizContent("{" . " \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," . " \"subject\":\"$proName\"," . " \"out_trade_no\":\"$out_trade_no\"," . " \"total_amount\":$total_amount," . " \"body\":\"$body\"" . " }"); $result = $c->pageExecute ($request); $model = M('c_house_order'); $data = array( 'product_name'=>$proName, 'order_num'=>$out_trade_no, 'total_amount'=>$total_amount, 'description'=>$body, 'user_id'=>1, 'add_time'=>NOW_TIME, 'up_time'=>NOW_TIME ); $model->add($data); //输出 echo $result; }
rrreee
非同期通知。非同期通知メソッドにロジックを直接記述し、$_POST を使用して Alipay から渡されたパラメータを受け取り、対応するデータベースの挿入または更新を実行します。
以上がthinkphp3.2.3 が新しいバージョンの Alipay に接続する方法に関するサンプル コードの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。