برنامج تشغيل WechatPay لمكتبة معالجة الدفع Omnipay PHP
Omnipay عبارة عن مكتبة معالجة دفع متعددة البوابات غير محددة الإطار لـ PHP 5.3+. تطبق هذه الحزمة دعم WechatPay لـ Omnipay.
يتم تثبيت Omnipay عبر Composer للتثبيت:
composer require lokielse/omnipay-wechatpay
يتم توفير البوابات التالية بواسطة هذه الحزمة:
//gateways: WechatPay_App, WechatPay_Native, WechatPay_Js, WechatPay_Pos, WechatPay_Mweb
$ gateway = Omnipay:: create ( ' WechatPay_App ' );
$ gateway -> setAppId ( $ config [ ' app_id ' ]);
$ gateway -> setMchId ( $ config [ ' mch_id ' ]);
$ gateway -> setApiKey ( $ config [ ' api_key ' ]);
$ order = [
' body ' => ' The test order ' ,
' out_trade_no ' => date ( ' YmdHis ' ). mt_rand ( 1000 , 9999 ),
' total_fee ' => 1 , //=0.01
' spbill_create_ip ' => ' ip_address ' ,
' fee_type ' => ' CNY '
];
/**
* @var OmnipayWechatPayMessageCreateOrderRequest $request
* @var OmnipayWechatPayMessageCreateOrderResponse $response
*/
$ request = $ gateway -> purchase ( $ order );
$ response = $ request -> send ();
//available methods
$ response -> isSuccessful ();
$ response -> getData (); //For debug
$ response -> getAppOrderData (); //For WechatPay_App
$ response -> getJsOrderData (); //For WechatPay_Js
$ response -> getCodeUrl (); //For Native Trade Type
$ gateway = Omnipay:: create ( ' WechatPay ' );
$ gateway -> setAppId ( $ config [ ' app_id ' ]);
$ gateway -> setMchId ( $ config [ ' mch_id ' ]);
$ gateway -> setApiKey ( $ config [ ' api_key ' ]);
$ response = $ gateway -> completePurchase ([
' request_params ' => file_get_contents ( ' php://input ' )
])-> send ();
if ( $ response -> isPaid ()) {
//pay success
var_dump ( $ response -> getRequestData ());
} else {
//pay fail
}
$ response = $ gateway -> query ([
' transaction_id ' => ' 1217752501201407033233368018 ' , //The wechat trade no
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ response = $ gateway -> close ([
' out_trade_no ' => ' 201602011315231245 ' , //The merchant trade no
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ gateway -> setCertPath ( $ certPath );
$ gateway -> setKeyPath ( $ keyPath );
$ response = $ gateway -> refund ([
' transaction_id ' => ' 1217752501201407033233368018 ' , //The wechat trade no
' out_refund_no ' => $ outRefundNo ,
' total_fee ' => 1 , //=0.01
' refund_fee ' => 1 , //=0.01
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
$ response = $ gateway -> queryRefund ([
' refund_id ' => ' 1217752501201407033233368018 ' , //Your site trade no, not union tn.
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
WechatPay_Native
) مستند $ response = $ gateway -> shortenUrl ([
' long_url ' => $ longUrl
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
var_dump ( $ response -> getShortUrl ());
WechatPay_Pos
) مستند $ response = $ gateway -> queryOpenId ([
' auth_code ' => $ authCode
])-> send ();
var_dump ( $ response -> isSuccessful ());
var_dump ( $ response -> getData ());
var_dump ( $ response -> getOpenId ());
للحصول على تعليمات الاستخدام العامة، يرجى مراجعة مستودع Omnipay الرئيسي.
إذا كنت تواجه مشكلات عامة مع Omnipay، فنقترح عليك النشر على Stack Overflow وتأكد من إضافة علامة omnipay حتى يمكن العثور عليها بسهولة.
إذا كنت تريد مواكبة إعلانات الإصدار، أو مناقشة أفكار المشروع، أو طرح أسئلة أكثر تفصيلاً، فهناك أيضًا قائمة بريدية يمكنك الاشتراك فيها.
إذا كنت تعتقد أنك عثرت على خطأ ما، فيرجى الإبلاغ عنه باستخدام أداة تعقب مشكلات GitHub، أو الأفضل من ذلك، الخروج من المكتبة وإرسال طلب سحب.