京东钱包在线支付

开源中国连接http://www.oschina.net/question/565065_68123
本文档因为没有信用卡和网银,所以没测试,但是基本思路实现了,可以参考下,支付宝用燕十八老师视频里面的。
路由如下:

Route::get('pay',function(){
  //$row为用户提交过来的内容
  $row=[];
  $row['v_amount'] = '0.01';//用户提交的金额
  $row['v_moneytype'] = 'CNY';//人民币
  $row['v_oid'] = '201608221111'.rand(1000,9999);//订单编号
  $row['v_mid'] = '20272562';//商户编号,需要和第三方申请的
  $row['v_url'] = 'yzj.com/finishpay';//支付完成跳转到该url
  $row['key'] = '%()#QOKFDLS:1*&U';//与第三方申请返回的salt,一般放在.env文件中
  //校验串加密算法,将订单中的v_amount,v_moneytype,v_oid,v_mid,v_url,key,拼接成无间隔字符串
  //顺序不变,md5加密,在转换成大写
  $row['v_md5info'] = strtoupper(md5(implode('',$row)));
  return view('pay',$row);
});
  //支付完成跳转路由,这里面需要做些判断,支付成功需要修改订单状态,如果第一次第三方提交过来信息服务器没有接受到,
//这种情况下不用担心,因为第三方平台会隔断时间继续发送信息再次访问,知道成功
  Route::post('finishpay',function(){
    //在接受之前要修改下全局中间件csrftoken,设置当前路由除外
    //在Middleware/VerifyCsrfToken.php,设置$except=['finishpay']
    //检测是否成功(可以使用Request对象),按下列顺序进行拼加密转成大写
    $md5 = $_POST['v_oid'].$_POST['v_pstatus'].$_POST['v_amount'].$_POST['moneytype'].'%()#QOKFDLS:1*&U';
    $md5 = strtoupper( md5($md5) );
    if($md5 == $_POST['v_md5str']){
      return view('finishpay',['msg' => '支付成功']);
    }else{
      return view('finishpay',['msg' => '支付失败']);
    }
  });

blade模板demo:

#pay.blade.php
#商户>>>>>>网银在线支付:
//提交第三方京东钱包支付接口 //商户编号 //订单号 //订单金额 //金额种类 //返回的路径 支付动作完成后返回到该url,支付结果以POST方式发送 //加密字符串
#finishpay.blade.php

{{$msg}}

你可能感兴趣的:(京东钱包在线支付)