使用前,请进入src/目录下,复制Configuration.php.example并重命名为Configuration.php,配置好参数。
所有属性值支持以下方式进行set/get:
$this->setParameter('key', $value);
$this->getParameter('key');
另外,微信支付支持将参数名转换成大驼峰,前面加get/set的方法名获取,如
$request->getOutTradeNo();
$request->setOutTradeNo();
微信扫码支付
$order = [
'body' => '商品描述',
'detail' => '商品详情',
'out_trade_no' => createOrderNumber(),
'product_id' => 1,
'total_fee' => 1,
'spbill_create_ip' => getClientIp(),
'notify_url' => 'http://test.com',
];
$context = new PaymentContext('Strategy\WechatPay\WechatUnifiedPay');
$context->execute($order);
$result = $context->getResult();
$result->getCodeUrl();
微信公众号内支付
$order = [
'body' => '商品描述',
'detail' => '商品详情',
'out_trade_no' => createOrderNumber(),
'total_fee' => 1,
'spbill_create_ip' => getClientIp(),
'notify_url' => 'http://test.com',
'openid' => 'openid'
];
$context = new PaymentContext('Strategy\WechatPay\WechatJsPay');
$context->execute($order);
$result = $context->getResult();
$result->createWebPaymentPackage();
微信APP支付
$order = [
'body' => '商品描述',
'detail' => '商品详情',
'out_trade_no' => createOrderNumber(),
'total_fee' => 1,
'spbill_create_ip' => getClientIp(),
'notify_url' => 'http://test.com',
'openid' => 'openid'
];
$context = new PaymentContext('Strategy\WechatPay\WechatAppPay');
$context->execute($order);
$result = $context->getResult();
微信支付结果回调
use \ChengFang\EasyPay\Traits\WechatPayNotify;
$body = file_get_contents('php://input');
$context = new PaymentContext('Strategy\WechatPay\WechatPayNotify');
$context->execute($body);
try{
$result = $context->getResult();
/**
* result是CompleteOrderResponse的对象
* 可以根据微信支付文档,将参数转化成驼峰的形式获取返回值
*/
// $result->getTransactionId();
// $result->getOutTradeNo();
// $this->success($message = null);
$this->success('信息可以不需要');
}catch(Exception $e){
// $this->fail($message = null);
$this->fail('信息可以不需要');
}
微信红包
$redPack = [
'send_name' => '广州乘方',
're_openid' => 'o6FwguKysTyj3zlikp8U8DwHk4XA',
'total_amount' => 100,
'total_num' => 1,
'wishing' => '祝福语',
'client_ip' => getClientIp(),
'act_name' => '活动名称',
'remark' => '备注'
];
$context = new PaymentContext('Strategy\WechatPay\WechatRedPack');
$context->execute($redPack);
$result = $context->getResult();
echo $result->getSendListid();
支付宝PC即时到账
$order = [
'subject' => '商品描述',
'body' => '商品详情',
'out_trade_no' => createOrderNumber(),
'total_fee' => 0.01,
'notify_url' => '',
'return_url' => ''
];
$context = new PaymentContext('Strategy\Alipay\AlipayPcExpress');
$context->execute($order);
echo $context->getResult()->getRedirectUrl();
支付宝手机即时到账
$order = [
'subject' => '商品描述',
'body' => '商品详情',
'out_trade_no' => createOrderNumber(),
'total_fee' => 0.01,
'notify_url' => '',
'return_url' => ''
];
$context = new PaymentContext('Strategy\Alipay\AlipayWapExpress');
$context->execute($order);
echo $context->getResult()->getRedirectUrl();
支付宝支付结果回调
use \ChengFang\EasyPay\Traits\AlipayNotify;
$body = Input::get();
$context = new PaymentContext('Strategy\WechatPay\WechatPayNotify');
$context->execute($body);
try{
$result = $context->getResult();
// $result->getRequest()->getRequestParam('trade_no');
// $result->getRequest()->getRequestParam('out_trade_no');
$this->success();
}catch(Exception $e){
$this->fail();
}