thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,这里有详细的代码和教程,具体看这里:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
//实现的Wxpay钩子方法 public function Wxpay( $param ){ require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php' ; $jsApi = new \JsApi_pub(); //=========步骤1:网页授权获取用户openid============ if (!isset( $_GET [ 'code' ])) { //触发微信返回code码 $url = $jsApi ->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL. '/order_id/' . $param [ 'order_id' ]); Header( "Location: $url" ); } else { $order_id = $param [ 'order_id' ]; $info = M( 'Order' )->where( 'id=' . $order_id )->find(); if ( empty ( $info ) || $info [ 'is_pay' ] == 1){ dump( '该订单不存在或已支付' . $order_id ); exit (); } $this ->assign( 'info' , $info ); $a = $info [ 'money' ]; $b = 100; $c = $a * $b ; //获取code码,以获取openid $code = $_GET [ 'code' ]; $jsApi ->setCode( $code ); $openid = $jsApi ->getOpenId(); } //=========步骤2:使用统一支付接口,获取prepay_id============ //使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); $unifiedOrder ->setParameter( "openid" , "$openid" ); //商品描述 $unifiedOrder ->setParameter( "body" , "在线预订" ); //商品描述 //自定义订单号,此处仅作举例 $timeStamp = time(); // $out_trade_no = \WxPayConf_pub::APPID."$timeStamp"; $out_trade_no = $info [ 'ordersn' ]; $unifiedOrder ->setParameter( "out_trade_no" , "$out_trade_no" ); //商户订单号 $unifiedOrder ->setParameter( "total_fee" , "$c" ); //总金额 $unifiedOrder ->setParameter( "notify_url" ,\WxPayConf_pub::NOTIFY_URL. '/order_id/' . $param [ 'order_id' ]); //通知地址 $unifiedOrder ->setParameter( "trade_type" , "JSAPI" ); //交易类型 $prepay_id = $unifiedOrder ->getPrepayId(); //=========步骤3:使用jsapi调起支付============ $jsApi ->setPrepayId( $prepay_id ); $jsApiParameters = $jsApi ->getParameters(); $this ->assign( 'jsApiParameters' , $jsApiParameters ); $this ->display( 'pay' ); } |
以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。