Talking about the process of developing payment using PHP, talking about the PHP payment process
The following is an example of the PHP language, the payment of the development process to explain.
1. Get Order Information
2. Generate sign based on order information and payment related accounts, and generate payment parameters
3. Post the payment parameter information to the server for return information
4. Generate the corresponding payment code (internal) or pay the QR code (non-internal) according to the return information to complete the payment.
Here are a few steps to talk about:
1. The necessary order parameters related to the payment are three, namely: Body (product name or order description), Out_trade_no (usually order number) and Total_fee (order amount, unit "cent", pay attention to unit problem), in different applications, The first thing to do is to get the relevant information in the order to prepare for the payment parameter generation.
2. Other required payment parameters are AppID (AppID), mch_id (notify after successful application), Device_info (web side and end of this parameter are unified, uppercase "Web"), Trade_type (depending on the use of the scene, this value is also different, external for "NATIVE", Internal for "JSAPI"), Nonce_str (32-bit random string), SPBILL_CREATE_IP (initiating payment of the terminal IP, i.e. server IP), Notify_url (Payment callback address, server notifies the site that payment is complete or not, Modify order status), sign (signature), there is a need to explain where, if Trade_type is Jsapi, OpenID is required parameters.
Signature algorithm is more prone to error, in the signature step is cumbersome, in fact, it is crucial that sign does not participate in the signature
A: The parameters mentioned in 1, 2, except for the parameter assignment, placed in an array of arrays, sorted by dictionary order, in fact, the key values in a-Z order.
B: Convert the array to a string, formatted as K1=V1&K2=V2&...KN=VN
C: After this string, add the key value (set by the user in the payment merchant backend) Now string = K1=v1&k2=v2&...kn=vn&key=key.
d:string = MD5 (string)
E:sign = Strtoupper (String)
At this point, sign generation is complete.
Add sign to array to create a new array. Converts the array to XML. At this point, the parameter preparation for the payment is completed.
3. Generate the XML in 2, send the request to (Https://api.mch.weixin.qq.com/pay/unifiedorder) using post, get the returned XML information, convert the information into an array format to facilitate operation. The XML information returned is as follows:
SUCCESS
OK
wx2421b1c4370ec43b
10000100
IITRi8Iabbblz1Jc
7921E432F65EB8ED0CE9755F0E86D72F
SUCCESS
wx201411101639507cbf6ffd8b0779950874
JSAPI
If it is trade_type==native payment, there will be one more parameter code_url, the URL is the address of the sweep code payment.
4. Here is the process of payment.
If trade_type==native, then use some way to convert Code_url to two-dimensional code, using a sweep code, if the internal click to pay, you need to call JS-SDK in the relevant things, this step is the most important to generate a JSON format string.
The first step is to generate an array array_jsapi that transforms the JSON string.
A: The parameters of the array include: Appid,timestamp,noncestr,package,signtype (default = "MD5"), note that the case is not the same as the above array.
B: Use this array to generate the Paysign parameter, the same way as the signature.
C: Append the paysign parameter to the ARRAY_JSAPI array.
D: Format the array with Json_encode as a string js_string.
By completing the work above, you can pay in-house.
The following is an example code for a related payment:
The js_string in the code is the string we generate.
The Callpay () function is called in the HTML code to initiate the payment.
The payment of this payment is completed.
The following is the callback work, which ensures that after the order is paid successfully, the correct status is displayed to the user.
After the payment is completed, the POST request is used to feedback the payment result to the website server, the website server obtains post information and determines whether to modify the order information according to the success of the payment.
A: Remove sign from the post parameter and record the value.
B: Sign the remaining parameters
C: Match the signature result with sign in post, the same description is correct and the order status is modified according to the payment result.
E: Return the XML message to make sure that the site has received the notification and avoid pushing the post again, as shown in the following example:
SUCCESS
OK
If it fails, it returns
FAIL
失败原因
At this point, the entire development of the payment is complete.
http://www.bkjia.com/PHPjc/1058152.html www.bkjia.com true http://www.bkjia.com/PHPjc/1058152.html techarticle talking about the process of developing payment using PHP, talking about the PHP payment process the following PHP language as an example, the payment of the development process to explain. 1. Get order Information 2. According to the order letter ...