帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
53
帖子
0
勋章
564
Y币

8月22日成都培训 商城案例分享(支付模块ping++)

[复制链接]
发表于 2015-8-24 16:17:29
本帖最后由 流浪男 于 2015-8-24 17:49 编辑

8月25日成都培训  商城案例分享(支付模块ping++)


包含功能:
服务器端获取商品列表
商品浏览
下单支付





php端实现
  1. public function order(){
  2.                 $product_id = new_htmlentities($_POST['product_id']);//商品id

  3.                 //根据商品id获取基本信息,根据自己的实际情况修改数据库查询
  4.                 $productInfo = $this->product_db->get_one(array('id'=>$product_id));

  5.                 $money = new_htmlentities($_POST['money'])*100;//商品价格
  6.                 $quantity = new_htmlentities($_POST['quantity']);//商品数量
  7.                 $subject = $productInfo['title'];
  8.                 $body = $productInfo['title'];//订单描述
  9.                 $payment = new_htmlentities($_POST['payment']);//支付方式
  10.                 $trade_sn = createSn();//订单号
  11.                 $ip = ip();//ip

  12.                 //写入订单的数据
  13.                
  14.                 $data['product_id'] = $product_id;
  15.                 $data['trade_sn'] = $trade_sn;

  16.                 $data['name'] = $_POST['name'];
  17.                 $data['address'] = $_POST['address'];
  18.                 $data['mobile'] = $_POST['mobile'];

  19.                 $data['money'] = $_POST['money'];
  20.                 $data['quantity'] = $quantity;
  21.                 $data['payment'] = $payment;
  22.                 $data['status'] = 'waitting';
  23.                 $data['inputtime'] = time();
  24.                 $data['ip'] = $ip;

  25.                 /*写入订单数据表操作*/
  26.                 $this->order_db->insert($data);

  27.                 require_once dirname(__FILE__).'/pingpp_init.php';
  28.                 if (empty($payment) || empty($money)) {
  29.                     exit();
  30.                 }
  31.                 \Pingpp\Pingpp::setApiKey('key,在ping++后台查看');
  32.                 try {
  33.                     $ch = \Pingpp\Charge::create(
  34.                         array(
  35.                             "subject"   => $subject,
  36.                             "body"      => $subject,
  37.                             "amount"    => $money,
  38.                             "order_no"  => $trade_sn,
  39.                             "currency"  => "cny",
  40.                             "channel"   => $payment,
  41.                             "client_ip" => $ip,
  42.                             "app"       => array("id" => "appkey"),
  43.                             'metadata'  => array('type' => 'demo')
  44.                         )
  45.                     );
  46.                     echo $ch;
  47.                 } catch (\Pingpp\Error\Base $e) {
  48.                     header('Status: ' . $e->getHttpStatus());
  49.                     echo($e->getHttpBody());

  50.                 }
  51.         }
复制代码

在ping++后台webhooks配置回调地址

回调地址的处理操作
  1. public function success(){
  2.         $input_data = json_decode(file_get_contents('php://input'), true);
  3.         if($input_data['type'] == 'charge.succeeded'&& $input_data['data']['object']['paid'] == true){
  4.                 $trade_sn = $input_data['data']['object']['order_no'];
  5.                 $paytype = $input_data['data']['object']['metadata']['type'];
  6.             //支付成功
  7.             /*
  8.             *根据实际情况写一个支付成功后的处理
  9.             */
  10.             

  11.         }else if($input_data['type'] == 'refund.succeeded'&& $input_data['data']['object']['succeed'] == true){

  12.         }
  13. }
复制代码



图片



本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
8
帖子
0
勋章
1万+
Y币
感谢分享
1682
帖子
10
勋章
1万+
Y币
这次是支付模块,给力
4
帖子
1
勋章
1479
Y币
版主给力啊,每次都分享源码
10
帖子
0
勋章
118
Y币
支持哇!~~~
3
帖子
0
勋章
14
Y币
mark需要的时候就有用了
20
帖子
0
勋章
145
Y币
如果培训课程能视频录制保存下来,对推广可能更有利吧...总之,感谢分享
6
帖子
0
勋章
53
Y币
感谢分享,   
53
帖子
0
勋章
564
Y币
时代小召唤 发表于 2015-8-24 16:28
如果培训课程能视频录制保存下来,对推广可能更有利吧...总之,感谢分享

谢谢,后面争取录一下
0
帖子
0
勋章
11
Y币
楼主真是棒棒哒,感谢分享,这个是我需要的
12下一页
您需要登录后才可以回帖 登录

本版积分规则