|
8月22日成都培训 商城案例分享(支付模块ping++)
[复制链接]
本帖最后由 流浪男 于 2015-8-24 17:49 编辑
8月25日成都培训 商城案例分享(支付模块ping++)
包含功能:
服务器端获取商品列表
商品浏览
下单支付
php端实现
- public function order(){
- $product_id = new_htmlentities($_POST['product_id']);//商品id
- //根据商品id获取基本信息,根据自己的实际情况修改数据库查询
- $productInfo = $this->product_db->get_one(array('id'=>$product_id));
- $money = new_htmlentities($_POST['money'])*100;//商品价格
- $quantity = new_htmlentities($_POST['quantity']);//商品数量
- $subject = $productInfo['title'];
- $body = $productInfo['title'];//订单描述
- $payment = new_htmlentities($_POST['payment']);//支付方式
- $trade_sn = createSn();//订单号
- $ip = ip();//ip
- //写入订单的数据
-
- $data['product_id'] = $product_id;
- $data['trade_sn'] = $trade_sn;
- $data['name'] = $_POST['name'];
- $data['address'] = $_POST['address'];
- $data['mobile'] = $_POST['mobile'];
- $data['money'] = $_POST['money'];
- $data['quantity'] = $quantity;
- $data['payment'] = $payment;
- $data['status'] = 'waitting';
- $data['inputtime'] = time();
- $data['ip'] = $ip;
- /*写入订单数据表操作*/
- $this->order_db->insert($data);
- require_once dirname(__FILE__).'/pingpp_init.php';
- if (empty($payment) || empty($money)) {
- exit();
- }
- \Pingpp\Pingpp::setApiKey('key,在ping++后台查看');
- try {
- $ch = \Pingpp\Charge::create(
- array(
- "subject" => $subject,
- "body" => $subject,
- "amount" => $money,
- "order_no" => $trade_sn,
- "currency" => "cny",
- "channel" => $payment,
- "client_ip" => $ip,
- "app" => array("id" => "appkey"),
- 'metadata' => array('type' => 'demo')
- )
- );
- echo $ch;
- } catch (\Pingpp\Error\Base $e) {
- header('Status: ' . $e->getHttpStatus());
- echo($e->getHttpBody());
- }
- }
复制代码
在ping++后台webhooks配置回调地址
回调地址的处理操作
- public function success(){
- $input_data = json_decode(file_get_contents('php://input'), true);
- if($input_data['type'] == 'charge.succeeded'&& $input_data['data']['object']['paid'] == true){
- $trade_sn = $input_data['data']['object']['order_no'];
- $paytype = $input_data['data']['object']['metadata']['type'];
- //支付成功
- /*
- *根据实际情况写一个支付成功后的处理
- */
-
- }else if($input_data['type'] == 'refund.succeeded'&& $input_data['data']['object']['succeed'] == true){
- }
- }
复制代码
图片
|
本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册
X
|